Interface RepositoryHierarchySession
- All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession
This session defines methods for traversing a hierarchy of
Repository objects. Each node in the hierarchy is a unique
Repository . The hierarchy may be traversed recursively to establish the
tree structure through getParents() and getChildren() . To
relate these Ids to another OSID, getAncestors() and
getDescendants() can be used for retrievals that can be used for
bulk lookups in other OSIDs. Any Repository available in the
Repository OSID is known to this hierarchy but does not appear in the
hierarchy traversal until added as a root node or a child of another node.
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 getParents() or getChildren() 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: repository 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.getChildRepositories(Id repositoryId) Gets the children of the given repository.getChildRepositoryIds(Id repositoryId) Gets theIdsof the children of the given repository.getParentRepositories(Id repositoryId) Gets the parents of the given repository.getParentRepositoryIds(Id repositoryId) Gets the parentIdsof the given repository.Gets the hierarchy associated with this session.Gets the hierarchyIdassociated with this session.getRepositoryNodeIds(Id repositoryId, long ancestorLevels, long descendantLevels, boolean includeSiblings) Gets a portion of the hierarchy for the given repository.getRepositoryNodes(Id repositoryId, long ancestorLevels, long descendantLevels, boolean includeSiblings) Gets a portion of the hierarchy for the given repository.Gets the root repositories in the repository hierarchy.Gets the root repositoryIdsin this hierarchy.booleanhasChildRepositories(Id repositoryId) Tests if a repository has any children.booleanhasParentRepositories(Id repositoryId) Tests if theRepositoryhas any parents.booleanisAncestorOfRepository(Id id, Id repositoryId) Tests if anIdis an ancestor of a repository.booleanisChildOfRepository(Id id, Id repositoryId) Tests if a node is a direct child of another.booleanisDescendantOfRepository(Id id, Id repositoryId) Tests if anIdis a descendant of a repository.booleanisParentOfRepository(Id id, Id repositoryId) Tests if anIdis a direct parent of a repository.voidThe returns from the repository methods may omit or translate elements based on this session, such as authorization, and not result in an error.voidA complete view of theRepositoryreturns 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
-
getRepositoryHierarchyId
Id getRepositoryHierarchyId()Gets the hierarchyIdassociated with this session.- Returns:
- the hierarchy
Idassociated with this session - Compliance:
mandatory- This method must be implemented.
-
getRepositoryHierarchy
Gets the hierarchy associated with this session.- Returns:
- the hierarchy associated with this session
- Throws:
OperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
canAccessRepositoryHierarchy
boolean canAccessRepositoryHierarchy()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.
-
useComparativeRepositoryView
void useComparativeRepositoryView()The returns from the repository 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.
-
usePlenaryRepositoryView
void usePlenaryRepositoryView()A complete view of theRepositoryreturns 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.
-
getRootRepositoryIds
Gets the root repositoryIdsin this hierarchy.- Returns:
- the root repository
Ids - Throws:
OperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
getRootRepositories
Gets the root repositories in the repository hierarchy. A node with no parents is an orphan. While all repositoryIdsare known to the hierarchy, an orphan does not appear in the hierarchy unless explicitly added as a root node or child of another node.- Returns:
- the root repositories
- Throws:
OperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method is must be implemented.
-
hasParentRepositories
boolean hasParentRepositories(Id repositoryId) throws NotFoundException, OperationFailedException, PermissionDeniedException Tests if theRepositoryhas any parents.- Parameters:
repositoryId- a repositoryId- Returns:
trueif the repository has parents,falseotherwise- Throws:
NotFoundException-repositoryIdis not foundNullArgumentException-repositoryIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
isParentOfRepository
boolean isParentOfRepository(Id id, Id repositoryId) throws NotFoundException, OperationFailedException, PermissionDeniedException Tests if anIdis a direct parent of a repository.- Parameters:
id- anIdrepositoryId- theIdof a repository- Returns:
trueif thisidis a parent ofrepositoryId,falseotherwise- Throws:
NotFoundException-repositoryIdis not foundNullArgumentException-idorrepositoryIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.- Notes:
If- {@code id} not found return {@code false} .
-
getParentRepositoryIds
IdList getParentRepositoryIds(Id repositoryId) throws NotFoundException, OperationFailedException, PermissionDeniedException Gets the parentIdsof the given repository.- Parameters:
repositoryId- a repositoryId- Returns:
- the parent
Idsof the repository - Throws:
NotFoundException-repositoryIdis not foundNullArgumentException-repositoryIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
getParentRepositories
RepositoryList getParentRepositories(Id repositoryId) throws NotFoundException, OperationFailedException, PermissionDeniedException Gets the parents of the given repository.- Parameters:
repositoryId- theIdto query- Returns:
- the parents of the repository
- Throws:
NotFoundException-repositoryIdnot foundNullArgumentException-repositoryIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
isAncestorOfRepository
boolean isAncestorOfRepository(Id id, Id repositoryId) throws NotFoundException, OperationFailedException, PermissionDeniedException Tests if anIdis an ancestor of a repository.- Parameters:
id- anIdrepositoryId- the Id of a repository- Returns:
trueif thisidis an ancestor ofrepositoryId,falseotherwise- Throws:
NotFoundException-repositoryIdnot foundNullArgumentException-repositoryIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.- Notes:
If- {@code id} not found return {@code false} .
-
hasChildRepositories
boolean hasChildRepositories(Id repositoryId) throws NotFoundException, OperationFailedException, PermissionDeniedException Tests if a repository has any children.- Parameters:
repositoryId- a repositoryId- Returns:
trueif therepositoryIdhas children,falseotherwise- Throws:
NotFoundException-repositoryIdnot foundNullArgumentException-repositoryIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
isChildOfRepository
boolean isChildOfRepository(Id id, Id repositoryId) throws NotFoundException, OperationFailedException, PermissionDeniedException Tests if a node is a direct child of another.- Parameters:
id- anIdrepositoryId- theIdof a repository- Returns:
trueif theidis a child ofrepositoryId,falseotherwise- Throws:
NotFoundException-repositoryIdnot foundNullArgumentException-repositoryIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.- Notes:
If- {@code id} not found return {@code false} .
-
getChildRepositoryIds
IdList getChildRepositoryIds(Id repositoryId) throws NotFoundException, OperationFailedException, PermissionDeniedException Gets theIdsof the children of the given repository.- Parameters:
repositoryId- theIdto query- Returns:
- the children of the repository
- Throws:
NotFoundException-repositoryIdnot foundNullArgumentException-repositoryIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
getChildRepositories
RepositoryList getChildRepositories(Id repositoryId) throws NotFoundException, OperationFailedException, PermissionDeniedException Gets the children of the given repository.- Parameters:
repositoryId- theIdto query- Returns:
- the children of the repository
- Throws:
NotFoundException-repositoryIdnot foundNullArgumentException-repositoryIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
isDescendantOfRepository
boolean isDescendantOfRepository(Id id, Id repositoryId) throws NotFoundException, OperationFailedException, PermissionDeniedException Tests if anIdis a descendant of a repository.- Parameters:
id- anIdrepositoryId- theIdof a repository- Returns:
trueif theidis a descendant of therepositoryId,falseotherwise- Throws:
NotFoundException-repositoryIdnot foundNullArgumentException-repositoryIdoridisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.- Notes:
If- {@code id} is not found return {@code false} .
-
getRepositoryNodeIds
IdList getRepositoryNodeIds(Id repositoryId, long ancestorLevels, long descendantLevels, boolean includeSiblings) throws NotFoundException, OperationFailedException, PermissionDeniedException Gets a portion of the hierarchy for the given repository.- Parameters:
repositoryId- 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:
- the specified repository node
- Throws:
NotFoundException-repositoryIdnot foundNullArgumentException-repositoryIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
getRepositoryNodes
RepositoryNode getRepositoryNodes(Id repositoryId, long ancestorLevels, long descendantLevels, boolean includeSiblings) throws NotFoundException, OperationFailedException, PermissionDeniedException Gets a portion of the hierarchy for the given repository.- Parameters:
repositoryId- 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:
- the specified repository node
- Throws:
NotFoundException-repositoryIdnot foundNullArgumentException-repositoryIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-