package com.netifera.platform.net.model; import com.netifera.platform.api.model.AbstractEntity; import com.netifera.platform.api.model.IEntity; import com.netifera.platform.api.model.IEntityReference; import com.netifera.platform.api.model.IWorkspace; public class ClientEntity extends AbstractEntity { private static final long serialVersionUID = -1611903324378815778L; public final static String ENTITY_NAME = "client"; private final IEntityReference host; private final String serviceType; public ClientEntity(IWorkspace workspace, HostEntity host, String serviceType) { super(ENTITY_NAME, workspace, host.getRealmId()); this.host = host.createReference(); this.serviceType = serviceType; } ClientEntity() { this.host = null; this.serviceType = null; } public HostEntity getHost() { return (HostEntity) referenceToEntity(host); } public String getServiceType() { return serviceType; } public String getBanner() { return getNamedAttribute("banner"); } public String getProduct() { return getNamedAttribute("product"); } public String getVersion() { return getNamedAttribute("version"); } public void setBanner(String banner) { setNamedAttribute("banner", banner); } public void setProduct(String product) { setNamedAttribute("product", product); } public void setVersion(String version) { setNamedAttribute("version", version); } private ClientEntity(IWorkspace workspace, long realm, IEntityReference hostReference, String serviceType) { super(ENTITY_NAME, workspace, realm); this.host = hostReference.createClone(); this.serviceType = serviceType; } protected IEntity cloneEntity() { return new ClientEntity(getWorkspace(), getRealmId(), host, serviceType); } public static String createQueryKey(long realmId, long hostId, String serviceType, String product) { String answer = ENTITY_NAME + ":" + realmId + ":" + hostId + ":" + serviceType; if (product != null) answer += ":" + product; return answer; } protected String generateQueryKey() { return createQueryKey(getRealmId(), getHost().getId(), serviceType, getProduct()); } }