AbstractResourceManager (Resource Management Library 2.0.0-2.17.1 API)
Date: 2014-01-09

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

    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.scope.impl.ScopeBean sourceScope, org.gcube.common.scope.impl.ScopeBean targetScope)` Add a scope to a Resource
`protected abstract org.gcube.common.resources.gcore.Resource` | `buildResource(String xmlRepresentation)` Given the XML profile representation of a gcube resource, its GCUBEResource is built.
`String` | `copyFromToVO(org.gcube.common.scope.impl.ScopeBean sourceScope, org.gcube.common.scope.impl.ScopeBean targetScope)` Similar to the `addToExistingScope(org.gcube.common.scope.impl.ScopeBean, org.gcube.common.scope.impl.ScopeBean)` method but involves two scopes of type VO.
`void` | `delete(org.gcube.common.scope.impl.ScopeBean scope)` Removes a resource.
`void` | `forceDelete(org.gcube.common.scope.impl.ScopeBean scope)` Deprecated. you must be sure before requiring this operation... take care
`String` | `getID()` All resources must be identifiable through an unique ID.
`String` | `getName()` All resources must have a valid name.
`org.gcube.informationsystem.publisher.RegistryPublisher` | `getRegistryPublisher()` The singleton ISPublisher instance is preferred.
`org.gcube.vremanagement.resourcemanager.client.RMReportingLibrary` | `getReportResourceManager(String scope)` The report resource manager needed to handle the resource in a given scope.
`org.gcube.common.resources.gcore.Resource` | `getResource(org.gcube.common.scope.impl.ScopeBean scope)` From a resource retrieves its GCUBEResource depending on the scope in which it is published.
`org.gcube.vremanagement.resourcemanager.client.RMBinderLibrary` | `getResourceManager(String scope)` The resource manager needed to handle the resource in a given scope.
`String` | `getSubType()` Resources can have a subtype (e.g.
`AllowedResourceTypes` | `getType()` All resources have a type.
`protected String` | `getXMLDescription(org.gcube.common.scope.impl.ScopeBean scope)` Returns the XML profile of a resource (given its ID that is encapsulated inside the resource manager).
`String` | `removeFromScope(org.gcube.common.scope.impl.ScopeBean scope)` Removes the current resource from the scope.
`void` | `setID(String id)`
`protected List<org.gcube.common.scope.impl.ScopeBean>` | `validateScopes(String[] 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

### getRegistryPublisher

    public final org.gcube.informationsystem.publisher.RegistryPublisher getRegistryPublisher()

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

  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:

### getResourceManager

    public final org.gcube.vremanagement.resourcemanager.client.RMBinderLibrary getResourceManager(String 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.client.RMReportingLibrary getReportResourceManager(String 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.scope.impl.ScopeBean sourceScope,
                                           org.gcube.common.scope.impl.ScopeBean targetScope)
                                    throws AbstractResourceException

  Add a scope to a Resource

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

### copyFromToVO

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

  Similar to the `addToExistingScope(org.gcube.common.scope.impl.ScopeBean, org.gcube.common.scope.impl.ScopeBean)` 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`

### buildResource

    protected abstract org.gcube.common.resources.gcore.Resource buildResource(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`

### getResource

    public final org.gcube.common.resources.gcore.Resource getResource(org.gcube.common.scope.impl.ScopeBean 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.scope.impl.ScopeBean 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.scope.impl.ScopeBean 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.scope.impl.ScopeBean> validateScopes(String[] 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.scope.impl.ScopeBean 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.scope.impl.ScopeBean 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 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 © 2014. All Rights Reserved.