TenantId factory method fromUUID added to reduce optimize TenantId instances count in heap memory. Factory as default @JsonCreator

This commit is contained in:
Sergey Matvienko 2022-01-10 13:39:54 +02:00
parent 6f19efd539
commit 48ac1a256e

View File

@ -15,23 +15,31 @@
*/
package org.thingsboard.server.common.data.id;
import java.util.UUID;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.util.ConcurrentReferenceHashMap;
import org.springframework.util.ConcurrentReferenceHashMap.ReferenceType;
import org.thingsboard.server.common.data.EntityType;
import java.util.UUID;
public final class TenantId extends UUIDBased implements EntityId {
@JsonIgnore
public static final TenantId SYS_TENANT_ID = new TenantId(EntityId.NULL_UUID);
static final ConcurrentReferenceHashMap<UUID, TenantId> tenants = new ConcurrentReferenceHashMap<>(16, ReferenceType.SOFT);
private static final long serialVersionUID = 1L;
@JsonCreator
public TenantId(@JsonProperty("id") UUID id) {
public static TenantId fromUUID(@JsonProperty("id") UUID id) {
return tenants.computeIfAbsent(id, TenantId::new);
}
public TenantId(UUID id) {
super(id);
}