org.gcube.informationsystem.publisher
Interface RegistryPublisher

All Known Implementing Classes:
AdvancedPublisher, RegistryPublisherImpl

public interface RegistryPublisher


Method Summary
<T extends org.gcube.common.resources.gcore.Resource>
T
create(T resource)
          The resource is created in the current scope and it is updated in the other scopes that are presents in the resource.
<T extends org.gcube.common.resources.gcore.Resource>
T
remove(T resource)
          The resource will be removed from current scope.
<T extends org.gcube.common.resources.gcore.Resource>
T
update(T resource)
          The resource will be updated on all the scopes that are defined in the resource.
 

Method Detail

create

<T extends org.gcube.common.resources.gcore.Resource> T create(T resource)
The resource is created in the current scope and it is updated in the other scopes that are presents in the resource. If is a VRE scope then in the resource will be added also the VO and INFRA scopes if they are not already presents in the resource If is a VO scope then in the resource will be added also the INFRA scope if it is not already present in the resource

Throws:
IllegalStateException - if the current scope is incompatible with the scope defined in the resource or if the scope is already defined in the resource
IllegalArgumentException - if there are problems to contact the Registry service or the resource is not a valid resource

update

<T extends org.gcube.common.resources.gcore.Resource> T update(T resource)
The resource will be updated on all the scopes that are defined in the resource. If an updating operation fail. It will be repeated with best-effort delivery approach

Throws:
IllegalStateException - if the current scope is not defined in the resource.
IllegalArgumentException - if there are problems with the registry service or the resource is not a valid resource

remove

<T extends org.gcube.common.resources.gcore.Resource> T remove(T resource)
The resource will be removed from current scope. if the scope is the last scope in the resource, the profile will be deleted from IS else: if it is a VRE scope then the profile will be updated without the VRE scope; if it is a VO scope but there is another VRE scope, belong to the VO, defined in the resource then throw IllegalArgumentException; if it is a INFRA scope but there is another VRE or VO scope , belong to the INFRA, defined in the resource then throw IllegalArgumentException.

Returns:
the resource without the current scope if the remove operation has been successfully completed
Throws:
IllegalArgumentException - if the current scope is not defined in the resource or if there is another VRE scope defined in the resource


Copyright © 2013. All Rights Reserved.