AbstractResourceManager (Resource Management Library 1.2.0-2.15.0 API)
Date: 2013-06-18

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.gcube.resourcemanagement.support.server.managers.resources
Class AbstractResourceManager

    java.lang.Object
      org.gcube.resourcemanagement.support.server.managers.resources.AbstractResourceManager

Direct Known Subclasses:
  CollectionManager, GenericResourceManager, GHNManager, RunningInstanceManager, RuntimeResourceManager, ServiceManager, ViewManager

    public abstract class AbstractResourceManager

extends Object

The minimal interface all the resource managers must implement. Here is implemented the greatest part of the operations exposed in the official wiki.

Author:
  Daniele Strollo (ISTI-CNR)

Constructor Summary
`AbstractResourceManager(AllowedResourceTypes type)` Deprecated. discouraged use. With no ID some operations cannot be accessed. For internal use only.
`AbstractResourceManager(String id, AllowedResourceTypes type)` Instantiate the handler of a resource given its identifier and its type.
`AbstractResourceManager(String id, String name, AllowedResourceTypes type)`
`AbstractResourceManager(String id, String name, AllowedResourceTypes type, String subtype)`

Method Summary
`String` | `addToExistingScope(org.gcube.common.core.scope.GCUBEScope sourceScope, org.gcube.common.core.scope.GCUBEScope targetScope)` Add a scope to a gHN and the related Service Map is already available on the gHN.
`protected abstract org.gcube.common.core.resources.GCUBEResource` | `buildGCUBEResource(String xmlRepresentation)` Given the XML profile representation of a gcube resource, its GCUBEResource is built.
`String` | `copyFromToVO(org.gcube.common.core.scope.GCUBEScope sourceScope, org.gcube.common.core.scope.GCUBEScope targetScope)` Similar to the `addToExistingScope(org.gcube.common.core.scope.GCUBEScope, org.gcube.common.core.scope.GCUBEScope)` method but involves two scopes of type VO.
`void` | `delete(org.gcube.common.core.scope.GCUBEScope scope)` Removes a resource.
`void` | `forceDelete(org.gcube.common.core.scope.GCUBEScope scope)` Deprecated. you must be sure before requiring this operation... take care
`org.gcube.common.core.resources.GCUBEResource` | `getGCUBEResource(org.gcube.common.core.scope.GCUBEScope scope)` From a resource retrieves its GCUBEResource depending on the scope in which it is published.
`String` | `getID()` All resources must be identifiable through an unique ID.
`protected org.gcube.common.core.informationsystem.client.ISClient` | `getISClient()` The singleton ISClient instance is preferred.
`org.gcube.common.core.informationsystem.publisher.ISPublisher` | `getISPublisher()` The singleton ISPublisher instance is preferred.
`String` | `getName()` All resources must have a valid name.
`org.gcube.vremanagement.resourcemanager.stubs.reporting.ReportingPortType` | `getReportResourceManager(org.gcube.common.core.scope.GCUBEScope scope)` The report resource manager needed to handle the resource in a given scope.
`org.gcube.vremanagement.resourcemanager.stubs.binder.ResourceBinderPortType` | `getResourceManager(org.gcube.common.core.scope.GCUBEScope scope)` The resource manager needed to handle the resource in a given scope.
`List<org.gcube.vremanagement.resourcemanager.stubs.binder.ResourceBinderPortType>` | `getResourceManagers(org.gcube.common.core.scope.GCUBEScope scope)` The the list of resource managers able to handle the resource in a given scope.
`List<org.gcube.vremanagement.resourcemanager.stubs.reporting.ReportingPortType>` | `getResourceReportManagers(org.gcube.common.core.scope.GCUBEScope scope)` The the list of resource report managers able to handle the resource in a given scope.
`org.gcube.common.core.security.GCUBESecurityManagerImpl` | `getSecurityManager()` The security manager is initially instantiated with empty permissions.
`String` | `getSubType()` Resources can have a subtype (e.g.
`AllowedResourceTypes` | `getType()` All resources have a type.
`protected String` | `getXMLDescription(org.gcube.common.core.scope.GCUBEScope scope)` Returns the XML profile of a resource (given its ID that is encapsulated inside the resource manager).
`String` | `removeFromScope(org.gcube.common.core.scope.GCUBEScope scope)` Removes the current resource from the scope.
`void` | `setID(String id)`
`void` | `setSecurityManager(org.gcube.common.core.security.GCUBESecurityManagerImpl securityManager)`
`protected List<org.gcube.common.core.scope.GCUBEScope>` | `validateScopes(org.gcube.common.core.scope.GCUBEScope[] scopes)` Adds to scopes the required maps (if needed).

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AbstractResourceManager

    public AbstractResourceManager(AllowedResourceTypes type)
                            throws ResourceParameterException,
                                   ResourceAccessException

  Deprecated. discouraged use. With no ID some operations cannot be accessed. For internal use only.

  Throws:
    `ResourceParameterException`
    `ResourceAccessException`

### AbstractResourceManager

    public AbstractResourceManager(String id,
                                   AllowedResourceTypes type)
                            throws ResourceParameterException,
                                   ResourceAccessException

  Instantiate the handler of a resource given its identifier and its type. Notice that this constructor is implicitly invoked when instantiating the concrete resource manager (e.g. new GHNManager(id)).

  Parameters:
    `id` - the identifier of the resource the manage
    `type` - the type (GHN, RI, ...).
  Throws:
    `ResourceParameterException`
    `ResourceAccessException`

### AbstractResourceManager

    public AbstractResourceManager(String id,
                                   String name,
                                   AllowedResourceTypes type)
                            throws ResourceParameterException,
                                   ResourceAccessException

Throws:
  `ResourceParameterException`
  `ResourceAccessException`

### AbstractResourceManager

    public AbstractResourceManager(String id,
                                   String name,
                                   AllowedResourceTypes type,
                                   String subtype)
                            throws ResourceParameterException,
                                   ResourceAccessException

Throws:
  `ResourceParameterException`
  `ResourceAccessException`

Method Detail

### getISClient

    protected final org.gcube.common.core.informationsystem.client.ISClient getISClient()

  The singleton ISClient instance is preferred. All resource managers can internally access this instance to make queries to the IS.

  Returns:

### getISPublisher

    public final org.gcube.common.core.informationsystem.publisher.ISPublisher getISPublisher()

  The singleton ISPublisher instance is preferred. All resource managers can internally access this instance to interact with ISPublisher to handle resources.

  Returns:

### setSecurityManager

    public final void setSecurityManager(org.gcube.common.core.security.GCUBESecurityManagerImpl securityManager)

### getSecurityManager

    public final org.gcube.common.core.security.GCUBESecurityManagerImpl getSecurityManager()

  The security manager is initially instantiated with empty permissions. The `setSecurityManager(org.gcube.common.core.security.GCUBESecurityManagerImpl)` can be used to change it.

  Returns:

### getID

    public final String getID()

  All resources must be identifiable through an unique ID.
  This field is mandatory

  Returns:

### setID

    public final void setID(String id)

### getName

    public final String getName()

  All resources must have a valid name. This field is mandatory

  Returns:

### getType

    public final AllowedResourceTypes getType()

  All resources have a type. This field is mandatory

  Returns:

### getSubType

    public final String getSubType()

  Resources can have a subtype (e.g. for GHNs is the domain). This field is optional

  Returns:

### getResourceManagers

    public final List<org.gcube.vremanagement.resourcemanager.stubs.binder.ResourceBinderPortType> getResourceManagers(org.gcube.common.core.scope.GCUBEScope scope)
                                                                                                                throws ResourceAccessException,
                                                                                                                       ResourceParameterException

  The the list of resource managers able to handle the resource in a given scope.

  Parameters:
    `scope` - the scope in which to operate
  Returns:
    all the available managers
  Throws:
    `ResourceAccessException` - if no manager can be instantiated
    `ResourceParameterException` - if the parameters are invalid

### getResourceReportManagers

    public final List<org.gcube.vremanagement.resourcemanager.stubs.reporting.ReportingPortType> getResourceReportManagers(org.gcube.common.core.scope.GCUBEScope scope)
                                                                                                                    throws ResourceAccessException,
                                                                                                                           ResourceParameterException

  The the list of resource report managers able to handle the resource in a given scope.

  Parameters:
    `scope` - the scope in which to operate
  Returns:
    all the available managers
  Throws:
    `ResourceAccessException` - if no manager can be instantiated
    `ResourceParameterException` - if the parameters are invalid

### getResourceManager

    public final org.gcube.vremanagement.resourcemanager.stubs.binder.ResourceBinderPortType getResourceManager(org.gcube.common.core.scope.GCUBEScope scope)
                                                                                                         throws AbstractResourceException

  The resource manager needed to handle the resource in a given scope.

  Parameters:
    `scope` - the scope in which to operate
  Returns:
    a random chosen manager from the avaiable ones
  Throws:
    `ResourceAccessException` - if no manager can be instantiated
    `ResourceParameterException` - if the parameters are invalid
    `AbstractResourceException`

### getReportResourceManager

    public final org.gcube.vremanagement.resourcemanager.stubs.reporting.ReportingPortType getReportResourceManager(org.gcube.common.core.scope.GCUBEScope scope)
                                                                                                             throws AbstractResourceException

  The report resource manager needed to handle the resource in a given scope.

  Parameters:
    `scope` - the scope in which to operate
  Returns:
    a random chosen manager from the avaiable ones
  Throws:
    `ResourceAccessException` - if no manager can be instantiated
    `ResourceParameterException` - if the parameters are invalid
    `AbstractResourceException`

### addToExistingScope

    public final String addToExistingScope(org.gcube.common.core.scope.GCUBEScope sourceScope,
                                           org.gcube.common.core.scope.GCUBEScope targetScope)
                                    throws AbstractResourceException

  Add a scope to a gHN and the related Service Map is already available on the gHN.

  Parameters:
    `nestingPublication` - true for resources different from gHN and RI.
  Returns:
    the reportID generated
  Throws:
    `AbstractResourceException`

### copyFromToVO

    public final String copyFromToVO(org.gcube.common.core.scope.GCUBEScope sourceScope,
                                     org.gcube.common.core.scope.GCUBEScope targetScope)
                              throws AbstractResourceException

  Similar to the `addToExistingScope(org.gcube.common.core.scope.GCUBEScope, org.gcube.common.core.scope.GCUBEScope)` method but involves two scopes of type VO. Notice that this operation in reserved for resources different from gHN and RI. See here for further details.

  Parameters:
    `sourceScope` -
    `targetScope` -
  Returns:
  Throws:
    `AbstractResourceException`

### buildGCUBEResource

    protected abstract org.gcube.common.core.resources.GCUBEResource buildGCUBEResource(String xmlRepresentation)
                                                                                 throws AbstractResourceException

  Given the XML profile representation of a gcube resource, its GCUBEResource is built. Since it depends on the type of the resource, each concrete implementation of resource managers must implement it.

  Parameters:
    `xmlRepresentation` -
  Returns:
  Throws:
    `AbstractResourceException`

### getGCUBEResource

    public final org.gcube.common.core.resources.GCUBEResource getGCUBEResource(org.gcube.common.core.scope.GCUBEScope scope)
                                                                         throws AbstractResourceException

  From a resource retrieves its GCUBEResource depending on the scope in which it is published.

  Parameters:
    `scope` -
  Returns:
  Throws:
    `AbstractResourceException`

### getXMLDescription

    protected final String getXMLDescription(org.gcube.common.core.scope.GCUBEScope scope)
                                      throws AbstractResourceException

  Returns the XML profile of a resource (given its ID that is encapsulated inside the resource manager).

  Parameters:
    `scope` -
  Returns:
  Throws:
    `AbstractResourceException`

### removeFromScope

    public final String removeFromScope(org.gcube.common.core.scope.GCUBEScope scope)
                                 throws AbstractResourceException

  Removes the current resource from the scope.

  Parameters:
    `nestingRemoval` - true for resources different from gHN and RI
  Throws:
    `AbstractResourceException`

### validateScopes

    protected List<org.gcube.common.core.scope.GCUBEScope> validateScopes(org.gcube.common.core.scope.GCUBEScope[] scopes)

  Adds to scopes the required maps (if needed). Internally used to ensure that the scopes at Infrastructure or VO level have correctly setup the maps.

  Parameters:
    `scopes` -
  Returns:

### forceDelete

    public final void forceDelete(org.gcube.common.core.scope.GCUBEScope scope)
                           throws AbstractResourceException

  Deprecated. you must be sure before requiring this operation... take care

  Parameters:
    `scope` - where the resource is bound
  Throws:
    `AbstractResourceException`

### delete

    public final void delete(org.gcube.common.core.scope.GCUBEScope scope)
                      throws AbstractResourceException

  Removes a resource. According to the official wiki the resource is deleted only if is not bound in other scopes. Otherwise this operation simply corresponds to the in deep remove from scope.

  Parameters:
    `scope` -
  Throws:
    `ResourceOperationException`
    `AbstractResourceException`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2013. All Rights Reserved.