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 ClientServiceConnectionEntity extends AbstractEntity { private static final long serialVersionUID = -7226430086566787932L; public final static String ENTITY_NAME = "service-connection"; private final IEntityReference client; private final IEntityReference service; private final String identity; public ClientServiceConnectionEntity(IWorkspace workspace, ClientEntity client, ServiceEntity service, String identity) { super(ENTITY_NAME, workspace, client.getRealmId()); this.client = client.createReference(); this.service = service.createReference(); this.identity = identity; } ClientServiceConnectionEntity() { client = null; service = null; identity = null; } public ClientEntity getClient() { return (ClientEntity) referenceToEntity(client); } public ServiceEntity getService() { return (ServiceEntity) referenceToEntity(service); } public String getIdentity() { return identity; } private ClientServiceConnectionEntity(IWorkspace workspace, long realm, IEntityReference clientReference, IEntityReference serviceReference, String identity) { super(ENTITY_NAME, workspace, realm); this.client = clientReference.createClone(); this.service = serviceReference.createClone(); this.identity = identity; } protected IEntity cloneEntity() { ClientServiceConnectionEntity clone = new ClientServiceConnectionEntity(getWorkspace(), getRealmId(), client, service, identity); return clone; } public static String createQueryKey(long realmId, long clientId, long serviceId, String identity) { return ENTITY_NAME + ":" + realmId + ":" + clientId + ":" + serviceId + ((identity == null) ? "" : (":" + identity)); } protected String generateQueryKey() { return createQueryKey(getRealmId(), getClient().getId(), getService().getId(), identity); } }