2017-04-03 18:44:47 +02:00
|
|
|
package org.gcube.informationsystem.resourceregistry.publisher;
|
2016-09-14 18:08:46 +02:00
|
|
|
|
2016-11-14 16:36:13 +01:00
|
|
|
import java.util.UUID;
|
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
import org.gcube.informationsystem.model.ER;
|
2016-09-14 18:08:46 +02:00
|
|
|
import org.gcube.informationsystem.model.entity.Facet;
|
|
|
|
import org.gcube.informationsystem.model.entity.Resource;
|
|
|
|
import org.gcube.informationsystem.model.relation.ConsistsOf;
|
|
|
|
import org.gcube.informationsystem.model.relation.IsRelatedTo;
|
2018-06-11 19:47:40 +02:00
|
|
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.AlreadyPresentException;
|
|
|
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.NotFoundException;
|
2016-11-14 16:36:13 +01:00
|
|
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
|
|
|
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextNotFoundException;
|
2017-02-24 12:46:18 +01:00
|
|
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.facet.FacetAlreadyPresentException;
|
2016-11-29 08:27:30 +01:00
|
|
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.facet.FacetNotFoundException;
|
2017-02-24 12:46:18 +01:00
|
|
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.resource.ResourceAlreadyPresentException;
|
2016-11-29 08:27:30 +01:00
|
|
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.resource.ResourceNotFoundException;
|
2016-09-14 18:08:46 +02:00
|
|
|
|
2016-10-12 14:36:27 +02:00
|
|
|
/**
|
|
|
|
* @author Luca Frosini (ISTI - CNR)
|
|
|
|
*/
|
2016-09-14 18:08:46 +02:00
|
|
|
public interface ResourceRegistryPublisher {
|
2016-11-14 16:36:13 +01:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public <E extends ER> E create(E er)
|
|
|
|
throws AlreadyPresentException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public String create(String er) throws AlreadyPresentException, ResourceRegistryException;
|
|
|
|
|
|
|
|
|
|
|
|
public <E extends ER> E read(E er) throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public String read(String erType, UUID uuid) throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
|
|
|
|
public <E extends ER> E update(E er)
|
|
|
|
throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public String update(String erType, String er) throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public String update(String er) throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
|
|
|
|
public <E extends ER> boolean delete(E er) throws NotFoundException, ResourceRegistryException;
|
2017-10-03 15:49:47 +02:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public boolean delete(String erType, UUID uuid) throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
|
|
|
|
/* ----- */
|
|
|
|
|
|
|
|
|
2017-10-03 17:44:13 +02:00
|
|
|
public <F extends Facet> F createFacet(F facet)
|
|
|
|
throws FacetAlreadyPresentException, ResourceRegistryException;
|
|
|
|
|
2017-10-03 15:49:47 +02:00
|
|
|
public String createFacet(String facet) throws FacetAlreadyPresentException, ResourceRegistryException;
|
2018-06-11 19:47:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
public <F extends Facet> F readFacet(F facet) throws FacetNotFoundException, ResourceRegistryException;
|
2017-10-03 15:49:47 +02:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public String readFacet(String facetType, UUID uuid) throws FacetNotFoundException, ResourceRegistryException;
|
|
|
|
|
2017-10-03 17:44:13 +02:00
|
|
|
|
|
|
|
public <F extends Facet> F updateFacet(F facet)
|
|
|
|
throws FacetNotFoundException, ResourceRegistryException;
|
2017-10-03 15:49:47 +02:00
|
|
|
|
|
|
|
public String updateFacet(String facet) throws FacetNotFoundException, ResourceRegistryException;
|
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
|
2017-02-24 12:46:18 +01:00
|
|
|
public <F extends Facet> boolean deleteFacet(F facet) throws FacetNotFoundException, ResourceRegistryException;
|
2016-11-14 16:36:13 +01:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public boolean deleteFacet(String facetType, UUID uuid) throws FacetNotFoundException, ResourceRegistryException;
|
2017-10-03 15:49:47 +02:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
|
|
|
|
/* ----- */
|
|
|
|
|
|
|
|
|
2017-10-03 17:44:13 +02:00
|
|
|
public <R extends Resource> R createResource(R resource)
|
|
|
|
throws ResourceAlreadyPresentException, ResourceRegistryException;
|
2017-10-03 15:49:47 +02:00
|
|
|
|
|
|
|
public String createResource(String resource) throws ResourceAlreadyPresentException, ResourceRegistryException;
|
2018-06-11 19:47:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
public <R extends Resource> R readResource(R resource)
|
2017-10-03 15:49:47 +02:00
|
|
|
throws ResourceNotFoundException, ResourceRegistryException;
|
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public String readResource(String resourceType, UUID uuid) throws ResourceNotFoundException, ResourceRegistryException;
|
2017-10-03 17:44:13 +02:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
|
|
|
|
public <R extends Resource> R updateResource(R resource)
|
2017-10-03 15:49:47 +02:00
|
|
|
throws ResourceNotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public String updateResource(String resource)
|
|
|
|
throws ResourceNotFoundException, ResourceRegistryException;
|
2017-02-24 12:46:18 +01:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
|
2017-10-03 15:49:47 +02:00
|
|
|
public <R extends Resource> boolean deleteResource(R resource)
|
|
|
|
throws ResourceNotFoundException, ResourceRegistryException;
|
2016-09-14 18:08:46 +02:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public boolean deleteResource(String resourceType, UUID uuid) throws ResourceNotFoundException, ResourceRegistryException;
|
2016-11-14 16:36:13 +01:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
|
|
|
|
/* ----- */
|
|
|
|
|
2017-10-03 17:44:13 +02:00
|
|
|
|
|
|
|
public <C extends ConsistsOf<? extends Resource, ? extends Facet>> C createConsistsOf(
|
2018-06-11 19:47:40 +02:00
|
|
|
C consistsOf) throws NotFoundException, ResourceRegistryException;
|
2017-10-03 15:49:47 +02:00
|
|
|
|
|
|
|
public String createConsistsOf(String consistsOf)
|
2018-06-11 19:47:40 +02:00
|
|
|
throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
|
|
|
|
public <C extends ConsistsOf<? extends Resource, ? extends Facet>> C readConsistsOf(
|
|
|
|
C consistsOf) throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public String readConsistsOf(String consistsOfType, UUID uuid) throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
|
|
|
|
public <C extends ConsistsOf<? extends Resource, ? extends Facet>> C updateConsistsOf(C consistsOf)
|
|
|
|
throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public String updateConsistsOf(String consistsOf)
|
|
|
|
throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
2017-02-24 12:46:18 +01:00
|
|
|
|
2017-10-03 15:49:47 +02:00
|
|
|
public <C extends ConsistsOf<? extends Resource, ? extends Facet>> boolean deleteConsistsOf(C consistsOf)
|
|
|
|
throws ResourceRegistryException;
|
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public boolean deleteConsistsOf(String consistsOfType, UUID uuid) throws ResourceRegistryException;
|
2017-10-03 15:49:47 +02:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
|
|
|
|
/* ----- */
|
|
|
|
|
|
|
|
|
2017-10-03 17:44:13 +02:00
|
|
|
public <I extends IsRelatedTo<? extends Resource, ? extends Resource>> I createIsRelatedTo(
|
|
|
|
I isRelatedTo) throws ResourceNotFoundException, ResourceRegistryException;
|
2017-10-03 15:49:47 +02:00
|
|
|
|
|
|
|
public String createIsRelatedTo(String isRelatedTo)
|
|
|
|
throws ResourceNotFoundException, ResourceRegistryException;
|
2017-10-02 18:28:47 +02:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
|
|
|
|
public <I extends IsRelatedTo<? extends Resource, ? extends Resource>> I readIsRelatedTo(
|
|
|
|
I isRelatedTo) throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public String readIsRelatedTo(String isRelatedToType, UUID uuid) throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
|
|
|
|
public <I extends IsRelatedTo<? extends Resource, ? extends Resource>> I updateIsRelatedTo(I isRelatedTo)
|
|
|
|
throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public String updateIsRelatedTo(String isRelatedTo)
|
|
|
|
throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
|
2017-10-03 15:49:47 +02:00
|
|
|
public <I extends IsRelatedTo<? extends Resource, ? extends Resource>> boolean deleteIsRelatedTo(I isRelatedTo)
|
|
|
|
throws ResourceRegistryException;
|
2016-11-14 16:36:13 +01:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public boolean deleteIsRelatedTo(String isRelatedToType, UUID uuid) throws ResourceRegistryException;
|
|
|
|
|
|
|
|
|
|
|
|
/* ----- */
|
|
|
|
|
|
|
|
|
|
|
|
public boolean addToContext(UUID contextUUID, String erType, UUID instanceUUID)
|
|
|
|
throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public <E extends ER> boolean addToContext(UUID contextUUID, E er)
|
|
|
|
throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public boolean addToCurrentContext(String erType, UUID instanceUUID)
|
|
|
|
throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public <E extends ER> boolean addToCurrentContext(E er)
|
|
|
|
throws NotFoundException, ResourceRegistryException;
|
2017-10-03 15:49:47 +02:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public boolean removeFromContext(UUID contextUUID, String erType, UUID instanceUUID)
|
|
|
|
throws NotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public <E extends ER> boolean removeFromContext(UUID contextUUID, E er)
|
|
|
|
throws ResourceNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public boolean removeFromCurrentContext(String erType, UUID instanceUUID)
|
2017-10-03 15:49:47 +02:00
|
|
|
throws ResourceNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
2016-11-14 16:36:13 +01:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public <E extends ER> boolean removeFromCurrentContext(E er)
|
|
|
|
throws ResourceNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
|
|
|
|
/* ----- */
|
|
|
|
|
|
|
|
|
|
|
|
public boolean addResourceToContext(UUID contextUUID, String resourceType, UUID resourceUUID)
|
2017-10-03 15:49:47 +02:00
|
|
|
throws ResourceNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
2016-11-14 16:36:13 +01:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public <R extends Resource> boolean addResourceToContext(UUID contextUUID, R resource)
|
|
|
|
throws ResourceNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public boolean addResourceToCurrentContext(String resourceType, UUID resourceUUID)
|
|
|
|
throws ResourceNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
2016-11-14 16:36:13 +01:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public <R extends Resource> boolean addResourceToCurrentContext(R resource)
|
|
|
|
throws ResourceNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public boolean removeResourceFromContext(UUID contextUUID, String resourceType, UUID resourceUUID)
|
|
|
|
throws ResourceNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
2017-10-03 15:49:47 +02:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public <R extends Resource> boolean removeResourceFromContext(UUID contextUUID, R resource)
|
|
|
|
throws ResourceNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public boolean removeResourceFromCurrentContext(String resourceType, UUID resourceUUID)
|
2017-10-03 15:49:47 +02:00
|
|
|
throws ResourceNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
2016-12-21 16:29:37 +01:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public <R extends Resource> boolean removeResourceFromCurrentContext(R resource)
|
2017-10-03 15:49:47 +02:00
|
|
|
throws ResourceNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
2018-06-11 19:47:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
/* ----- */
|
|
|
|
|
|
|
|
|
|
|
|
public boolean addFacetToContext(UUID contextUUID, String facetType, UUID facetUUID)
|
|
|
|
throws FacetNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public <F extends Facet> boolean addFacetToContext(UUID contextUUID, F facet)
|
|
|
|
throws FacetNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public boolean addFacetToCurrentContext(String facetType, UUID facetUUID)
|
|
|
|
throws FacetNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
2016-12-21 16:29:37 +01:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public <F extends Facet> boolean addFacetToCurrentContext(F facet)
|
|
|
|
throws FacetNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public boolean removeFacetFromContext(UUID contextUUID, String facetType, UUID facetUUID)
|
|
|
|
throws FacetNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public <F extends Facet> boolean removeFacetFromContext(UUID contextUUID, F facet)
|
|
|
|
throws FacetNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
|
|
|
|
|
|
|
public boolean removeFacetFromCurrentContext(String facetType, UUID facetUUID)
|
2017-10-03 15:49:47 +02:00
|
|
|
throws FacetNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
2016-12-21 16:29:37 +01:00
|
|
|
|
2018-06-11 19:47:40 +02:00
|
|
|
public <F extends Facet> boolean removeFacetFromCurrentContext(F facet)
|
2017-10-03 15:49:47 +02:00
|
|
|
throws FacetNotFoundException, ContextNotFoundException, ResourceRegistryException;
|
2016-09-14 18:08:46 +02:00
|
|
|
}
|