Interface ResourceAdminSession

All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession
All Known Subinterfaces:
ResourceBatchAdminSession

public interface ResourceAdminSession extends OsidSession

This session creates, updates, and deletes Resources . The data for create and update is provided by the consumer via the form object. OsidForms are requested for each create or update and may not be reused.

Create and update operations differ in their usage. To create a Resource , a ResourceForm is requested using getResourceFormForCreate() specifying desired record Types or none if no record Types are needed. The returned ResourceForm will indicate that it is to be used with a create operation and can be used to examine metdata or validate data prior to creation. Once the ResourceForm is submiited to a create operation, it cannot be reused with another create operation unless the first operation was unsuccessful. Each ResourceForm corresponds to an attempted transaction.

For updates, ResourceForms are requested to the Resource Id that is to be updated using getResourceFormForUpdate() . Similarly, the ResourceForm has metadata about the data that can be updated and it can perform validation before submitting the update. The ResourceForm can only be used once for a successful update and cannot be reused.

The delete operations delete Resources . To unmap a Resource from the current Bin , the ResourceBinAssignmentSession should be used. These delete operations attempt to remove the Resource itself thus removing it from all known Bin catalogs.

This session includes an Id aliasing mechanism to assign an external Id to an internally assigned Id.

  • Method Details

    • getBinId

      Id getBinId()
      Gets the Bin Id associated with this session.
      Returns:
      the Bin Id associated with this session
      Compliance:
      mandatory - This method must be implemented.
    • getBin

      Gets the Bin associated with this session.
      Returns:
      the Bin associated with this session
      Throws:
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • canCreateResources

      boolean canCreateResources()
      Tests if this user can create Resources . A return of true does not guarantee successful authorization. A return of false indicates that it is known creating a Resource will result in a PERMISSION_DENIED . This is intended as a hint to an application that may opt not to offer create operations to an unauthorized user.
      Returns:
      false if Resource creation is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • canCreateResourceWithRecordTypes

      boolean canCreateResourceWithRecordTypes(Type[] resourceRecordTypes)
      Tests if this user can create a single Resource using the desired record types. While ResourceManager.getResourceRecordTypes() can be used to examine which records are supported, this method tests which record(s) are required for creating a specific Resource . Providing an empty array tests if a Resource can be created with no records.
      Parameters:
      resourceRecordTypes - array of resource record types
      Returns:
      true if Resource creation using the specified Types is supported, false otherwise
      Throws:
      NullArgumentException - resourceRecordTypes is null
      Compliance:
      mandatory - This method must be implemented.
    • getResourceFormForCreate

      ResourceForm getResourceFormForCreate(Type[] resourceRecordTypes) throws OperationFailedException, PermissionDeniedException
      Gets the resource form for creating new resources. A new form should be requested for each create transaction.
      Parameters:
      resourceRecordTypes - array of resource record types
      Returns:
      the resource form
      Throws:
      NullArgumentException - resourceRecordTypes is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      UnsupportedException - unable to get form with requested record types
      Compliance:
      mandatory - This method must be implemented.
    • createResource

      Creates a new Resource .
      Parameters:
      resourceForm - the form for this Resource
      Returns:
      the new Resource
      Throws:
      IllegalStateException - resourceForm already used in a create transaction
      InvalidArgumentException - one or more of the form elements is invalid
      NullArgumentException - resourceForm is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      UnsupportedException - resourceForm did not originate from getResourceFormForCreate()
      Compliance:
      mandatory - This method must be implemented.
    • canUpdateResources

      boolean canUpdateResources()
      Tests if this user can update Resources . A return of true does not guarantee successful authorization. A return of false indicates that it is known updating a Resource will result in a PERMISSION_DENIED . This is intended as a hint to an application that may opt not to offer update operations to an unauthorized user.
      Returns:
      false if Resource modification is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • getResourceFormForUpdate

      Gets the resource form for updating an existing resource. A new resource form should be requested for each update transaction.
      Parameters:
      resourceId - the Id of the Resource
      Returns:
      the resource form
      Throws:
      NotFoundException - resourceId is not found
      NullArgumentException - resourceId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • updateResource

      void updateResource(ResourceForm resourceForm) throws OperationFailedException, PermissionDeniedException
      Updates an existing resource.
      Parameters:
      resourceForm - the form containing the elements to be updated
      Throws:
      IllegalStateException - resourceForm already used in an update transaction
      InvalidArgumentException - the form contains an invalid value
      NullArgumentException - resourceForm is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      UnsupportedException - resourceForm did not originate from getResourceFormForUpdate()
      Compliance:
      mandatory - This method must be implemented.
    • canDeleteResources

      boolean canDeleteResources()
      Tests if this user can delete Resources . A return of true does not guarantee successful authorization. A return of false indicates that it is known deleting a Resource will result in a PERMISSION_DENIED . This is intended as a hint to an application that may opt not to offer delete operations to an unauthorized user.
      Returns:
      false if Resource deletion is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • deleteResource

      void deleteResource(Id resourceId) throws NotFoundException, OperationFailedException, PermissionDeniedException
      Deletes a Resource .
      Parameters:
      resourceId - the Id of the Resource to remove
      Throws:
      NotFoundException - resourceId not found
      NullArgumentException - resourceId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.
    • canManageResourceAliases

      boolean canManageResourceAliases()
      Tests if this user can manage Id aliases for Resources . A return of true does not guarantee successful authorization. A return of false indicates that it is known changing an alias will result in a PERMISSION_DENIED . This is intended as a hint to an application that may opt not to offer alias operations to an unauthorized user.
      Returns:
      false if Resource aliasing is not authorized, true otherwise
      Compliance:
      mandatory - This method must be implemented.
    • aliasResource

      Adds an Id to a Resource for the purpose of creating compatibility. The primary Id of the Resource is determined by the provider. The new Id performs as an alias to the primary Id . If the alias is a pointer to another resource it is reassigned to the given resource Id .
      Parameters:
      resourceId - the Id of a Resource
      aliasId - the alias Id
      Throws:
      AlreadyExistsException - aliasId is already assigned
      NotFoundException - resourceId not found
      NullArgumentException - aliasId or resourceId is null
      OperationFailedException - unable to complete request
      PermissionDeniedException - authorization failure
      Compliance:
      mandatory - This method must be implemented.