Interface GroupHierarchySession
- All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession
This session provides a hierarchical view of resource groups. Each node
in the hierarchy is a unique Resource . The hierarchy may be
traversed recursively to establish the tree structure through
getParentResources() and getChildResources() . To relate these
Ids to another OSID, getResourceNodes() can be used for
retrievals that can be used for bulk lookups in other OSIDs.
A user may not be authorized to traverse the entire hierarchy. Parts
of the hierarchy may be made invisible through omission from the returns
of getParentResources() or getChildResources() in lieu of
a PERMISSION_DENIED error that may disrupt the traversal through
authorized pathways.
This session defines views that offer differing behaviors when retrieving multiple objects.
- comparative view: resource elements may be silently omitted or re-ordered
- plenary view: provides a complete set or is an error condition
-
Method Summary
Modifier and TypeMethodDescriptionbooleanTests if this user can perform hierarchy queries.getBin()Gets theBinassociated with this session.getBinId()Gets theBinIdassociated with this session.getResourceNodeIds(Id resourceId, long ancestorLevels, long descendantLevels, boolean includeSiblings) Gets a portion of the hierarchy for the given resource group.getResourceNodes(Id resourceId, long ancestorLevels, long descendantLevels, boolean includeSiblings) Gets a portion of the hierarchy for the given resource group.booleanisMemberOfGroup(Id groupId, Id resourceId) Tests if a resourceIdis a member of a group either directly or indirectly through nested groups.voidThe returns from the group methods may omit or translate elements based on this session, such as authorization, and not result in an error.voidFederates the view for methods in this session.voidIsolates the view for methods in this session.voidA complete view of theResourcereturns is desired.Methods inherited from interface OsidSession
closeMethods inherited from interface OsidSession
getAuthenticatedAgent, getAuthenticatedAgentId, getClockRate, getDate, getEffectiveAgent, getEffectiveAgentId, getFormatType, getLocale, isAuthenticated, startTransaction, supportsTransactionsModifier and TypeMethodDescriptionGets the agent authenticated to this session.Gets theIdof the agent authenticated to this session.Gets the rate of the service clock.getDate()Gets the service date which may be the current date or the effective date in which this session exists.Gets the effective agent in use by this session.Gets theIdof the effective agent in use by this session.Gets theDisplayTextformatTypepreference in effect for this session.Gets the locale indicating the localization preferences in effect for this session.booleanTests if an agent is authenticated to this session.Starts a new transaction for this sesson.booleanTests for the availability of transactions.
-
Method Details
-
getBinId
Id getBinId()Gets theBinIdassociated with this session.- Returns:
- the
Bin Idassociated with this session - Compliance:
mandatory- This method must be implemented.
-
getBin
Gets theBinassociated with this session.- Returns:
- the
Binassociated with this session - Throws:
OperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
canAccessGroupHierarchy
boolean canAccessGroupHierarchy()Tests if this user can perform hierarchy queries. A return of true does not guarantee successful authorization. A return of false indicates that it is known all methods in this session will result in aPERMISSION_DENIED. This is intended as a hint to an application that may opt not to offer lookup operations.- Returns:
falseif hierarchy traversal methods are not authorized,trueotherwise- Compliance:
mandatory- This method must be implemented.
-
useComparativeResourceView
void useComparativeResourceView()The returns from the group methods may omit or translate elements based on this session, such as authorization, and not result in an error. This view is used when greater interoperability is desired at the expense of precision.- Compliance:
mandatory- This method is must be implemented.
-
usePlenaryResourceView
void usePlenaryResourceView()A complete view of theResourcereturns is desired. Methods will return what is requested or result in an error. This view is used when greater precision is desired at the expense of interoperability.- Compliance:
mandatory- This method is must be implemented.
-
useFederatedBinView
void useFederatedBinView()Federates the view for methods in this session. A federated view will include resources in bins which are children of this bin in the bin hierarchy.- Compliance:
mandatory- This method is must be implemented.
-
useIsolatedBinView
void useIsolatedBinView()Isolates the view for methods in this session. An isolated view restricts lookups to this bin only.- Compliance:
mandatory- This method is must be implemented.
-
isMemberOfGroup
boolean isMemberOfGroup(Id groupId, Id resourceId) throws NotFoundException, OperationFailedException, PermissionDeniedException Tests if a resourceIdis a member of a group either directly or indirectly through nested groups.- Parameters:
groupId- a resource groupIdresourceId- theIdof a resource- Returns:
trueif thisresourceIdis a member ofgroupId, falseotherwise- Throws:
NotFoundException-groupIdis not foundNullArgumentException-groupIdorresourceIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.- Notes:
If- {@code resourceId} not found return {@code false} .
-
getResourceNodeIds
Node getResourceNodeIds(Id resourceId, long ancestorLevels, long descendantLevels, boolean includeSiblings) throws NotFoundException, OperationFailedException, PermissionDeniedException Gets a portion of the hierarchy for the given resource group.- Parameters:
resourceId- theIdto queryancestorLevels- the maximum number of ancestor levels to include. A value of 0 returns no parents in the node.descendantLevels- the maximum number of descendant levels to include. A value of 0 returns no children in the node.includeSiblings-trueto include the siblings of the given node,falseto omit the siblings- Returns:
- a resource node
- Throws:
NotFoundException-resourceIdis not foundNullArgumentException-resourceIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
getResourceNodes
ResourceNode getResourceNodes(Id resourceId, long ancestorLevels, long descendantLevels, boolean includeSiblings) throws NotFoundException, OperationFailedException, PermissionDeniedException Gets a portion of the hierarchy for the given resource group.- Parameters:
resourceId- theIdto queryancestorLevels- the maximum number of ancestor levels to include. A value of 0 returns no parents in the node.descendantLevels- the maximum number of descendant levels to include. A value of 0 returns no children in the node.includeSiblings-trueto include the siblings of the given node,falseto omit the siblings- Returns:
- a resource node
- Throws:
NotFoundException-resourceIdis not foundNullArgumentException-resourceIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-