OSID Logo
OSID Specifications
hold package
Version 3.0.0
Release Candidate Preview
Interfaceosid.hold.BlockAdminSession
Implementsosid.OsidSession
Description

This session creates, updates, and deletes Blocks. 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 Block, a BlockForm is requested using getBlockFormForCreate() specifying the desired relationship peers and record Types or none if no record Types are needed. The returned BlockForm 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 BlockForm is submiited to a create operation, it cannot be reused with another create operation unless the first operation was unsuccessful. Each BlockForm corresponds to an attempted transaction.

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

The delete operations delete Blocks. To unmap a Block from the current Oubliette, the BlockOublietteAssignmentSession should be used. These delete operations attempt to remove the Block itself thus removing it from all known Oubliette catalogs.

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

MethodgetOublietteId
Description

Gets the Oubliette Id associated with this session.

Returnosid.id.Idthe Oubliette Id associated with this session
CompliancemandatoryThis method must be implemented.
MethodgetOubliette
Description

Gets the Oubliette associated with this session.

Returnosid.hold.Oubliettethe oubliette
ErrorsOPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodcanCreateBlocks
Description

Tests if this user can create Blocks. A return of true does not guarantee successful authorization. A return of false indicates that it is known creating a Block 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.

Returnboolean false if Block creation is not authorized, true otherwise
CompliancemandatoryThis method must be implemented.
MethodcanCreateBlockWithRecordTypes
Description

Tests if this user can create a single Block using the desired record types. While HoldManager.getBlockRecordTypes() can be used to examine which records are supported, this method tests which record(s) are required for creating a specific Block. Providing an empty array tests if a Block can be created with no records.

Parametersosid.type.Type[]blockRecordTypesarray of block record types
Returnboolean true if Block creation using the specified record Types is supported, false otherwise
ErrorsNULL_ARGUMENT blockRecordTypes is null
CompliancemandatoryThis method must be implemented.
MethodgetBlockFormForCreate
Description

Gets the block form for creating new blocks. A new form should be requested for each create transaction.

Parametersosid.type.Type[]blockRecordTypesarray of block record types
Returnosid.hold.BlockFormthe block form
ErrorsNULL_ARGUMENT blockRecordTypes is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
UNSUPPORTEDunable to get form for requested record types
CompliancemandatoryThis method must be implemented.
MethodcreateBlock
Description

Creates a new Block.

Parametersosid.hold.BlockFormblockFormthe form for this Block
Returnosid.hold.Blockthe new Block
ErrorsILLEGAL_STATE blockForm already used in a create transaction
INVALID_ARGUMENTone or more of the form elements is invalid
NULL_ARGUMENT blockForm is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
UNSUPPORTED blockForm did not originate from getBlockFormForCreate()
CompliancemandatoryThis method must be implemented.
MethodcanUpdateBlocks
Description

Tests if this user can update Blocks. A return of true does not guarantee successful authorization. A return of false indicates that it is known updating a Block 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.

Returnboolean false if Block modification is not authorized, true otherwise
CompliancemandatoryThis method must be implemented.
MethodgetBlockFormForUpdate
Description

Gets the block form for updating an existing block. A new block form should be requested for each update transaction.

Parametersosid.id.IdblockIdthe Id of the Block
Returnosid.hold.BlockFormthe block form
ErrorsNOT_FOUND blockId is not found
NULL_ARGUMENT blockId is null
OPERATION_FAILEDunable to complete request
CompliancemandatoryThis method must be implemented.
MethodupdateBlock
Description

Updates an existing block.

Parametersosid.hold.BlockFormblockFormthe form containing the elements to be updated
ErrorsILLEGAL_STATE blockForm already used in an update transaction
INVALID_ARGUMENTthe form contains an invalid value
NULL_ARGUMENT blockId or blockForm is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
UNSUPPORTED blockForm did not originate from getBlockFormForUpdate()
CompliancemandatoryThis method must be implemented.
MethodcanDeleteBlocks
Description

Tests if this user can delete Blocks. A return of true does not guarantee successful authorization. A return of false indicates that it is known deleting a Block 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.

Returnboolean false if Block deletion is not authorized, true otherwise
CompliancemandatoryThis method must be implemented.
MethoddeleteBlock
Description

Deletes a Block.

Parametersosid.id.IdblockIdthe Id of the Block to remove
ErrorsNOT_FOUND blockId not found
NULL_ARGUMENT blockId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodcanManageBlockAliases
Description

Tests if this user can manage Id aliases for Blocks. 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.

Returnboolean false if Block aliasing is not authorized, true otherwise
CompliancemandatoryThis method must be implemented.
MethodaliasBlock
Description

Adds an Id to a Block for the purpose of creating compatibility. The primary Id of the Block is determined by the provider. The new Id performs as an alias to the primary Id. If the alias is a pointer to another block, it is reassigned to the given block Id.

Parametersosid.id.IdblockIdthe Id of a Block
osid.id.IdaliasIdthe alias Id
ErrorsALREADY_EXISTS aliasId is already assigned
NOT_FOUND blockId not found
NULL_ARGUMENT blockId or aliasId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.