OSID Logo
OSID Specifications
mapping package
Version 3.0.0
Release Candidate Preview
Interfaceosid.mapping.LocationHierarchySession
Implementsosid.OsidSession
Description

This session defines methods for traversing a hierarchy of Location objects. Each node in the hierarchy is a unique Location. The hierarchy may be traversed recursively to establish the tree structure through getParentLocations() and getChildLocations(). To relate these Ids to another OSID, getLocationNodes() can be used for retrievals that can be used for bulk lookups in other OSIDs. Any Location available in the Mapping OSID is known to this hierarchy but does not appear in the hierarchy traversal until added as a root location or a child of another location.

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 getParentMLocations() or getChildLocations() 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 location view: location elements may be silently omitted or re-ordered
  • plenary location view: provides a complete set or is an error condition
MethodgetLocationHierarchyId
Description

Gets the hierarchy Id associated with this session.

Returnosid.id.Idthe hierarchy Id associated with this session
CompliancemandatoryThis method must be implemented.
MethodgetLocationHierarchy
Description

Gets the hierarchy associated with this session.

Returnosid.hierarchy.Hierarchythe hierarchy associated with this session
ErrorsOPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodcanAccessLocationHierarchy
Description

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 a PERMISSION_DENIED. This is intended as a hint to an application that may opt not to offer lookup operations.

Returnboolean false if hierarchy traversal methods are not authorized, true otherwise
CompliancemandatoryThis method must be implemented.
MethoduseComparativeLocationView
Description

The returns from the location 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.

CompliancemandatoryThis method is must be implemented.
MethodusePlenaryLocationView
Description

A complete view of the Locations returns 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.

CompliancemandatoryThis method is must be implemented.
MethodgetRootLocationIds
Description

Gets the root location Ids in this hierarchy.

Returnosid.id.IdListthe root location Ids
ErrorsOPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodgetRootLocations
Description

Gets the root location in the location hierarchy. A location with no parents is an orphan. While all location Ids are known to the hierarchy, an orphan does not appear in the hierarchy unless explicitly added as a root location or child of another location.

Returnosid.mapping.LocationListthe root locations
ErrorsOPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method is must be implemented.
MethodhasParentLocations
Description

Tests if the Location has any parents.

Parametersosid.id.IdlocationIda location Id
Returnboolean true if the location has parents, f alse otherwise
ErrorsNOT_FOUND locationId is not found
NULL_ARGUMENT locationId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodisParentOfLocation
Description

Tests if an Id is a direct parent of location.

Parametersosid.id.Ididan Id
osid.id.IdlocationIdthe Id of a location
Returnboolean true if this id is a parent of locationId, f alse otherwise
ErrorsNOT_FOUND locationId is not found
NULL_ARGUMENT id or locationId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
Provider Notes

If id not found return false.

MethodgetParentLocationIds
Description

Gets the parent Ids of the given location.

Parametersosid.id.IdlocationIda location Id
Returnosid.id.IdListthe parent Ids of the location
ErrorsNOT_FOUND locationId is not found
NULL_ARGUMENT locationId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodgetParentLocations
Description

Gets the parents of the given location.

Parametersosid.id.IdlocationIda location Id
Returnosid.mapping.LocationListthe parents of the location
ErrorsNOT_FOUND locationId is not found
NULL_ARGUMENT locationId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodisAncestorOfLocation
Description

Tests if an Id is an ancestor of a location.

Parametersosid.id.Ididan Id
osid.id.IdlocationIdthe Id of a location
Returnboolean tru e if this id is an ancestor of locationId, false otherwise
ErrorsNOT_FOUND locationId is not found
NULL_ARGUMENT id or locationId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
Provider Notes

If id not found return false.

MethodhasChildLocations
Description

Tests if a location has any children.

Parametersosid.id.IdlocationIda location Id
Returnboolean true if the locationId has children, false otherwise
ErrorsNOT_FOUND locationId is not found
NULL_ARGUMENT locationId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodisChildOfLocation
Description

Tests if a location is a direct child of another.

Parametersosid.id.Ididan Id
osid.id.IdlocationIda location Id
Returnboolean true if the id is a child of locationId, false otherwise
ErrorsNOT_FOUND locationId is not found
NULL_ARGUMENT id or locationId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
Provider Notes

If id not found return false.

MethodgetChildLocationIds
Description

Gets the child Ids of the given location.

Parametersosid.id.IdlocationIda location Id
Returnosid.id.IdListthe children of the location
ErrorsNOT_FOUND locationId is not found
NULL_ARGUMENT locationId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodgetChildLocations
Description

Gets the children of the given location.

Parametersosid.id.IdlocationIda location Id
Returnosid.mapping.LocationListthe children of the location
ErrorsNOT_FOUND locationId is not found
NULL_ARGUMENT locationId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodisDescendantOfLocation
Description

Tests if an Id is a descendant of a location.

Parametersosid.id.Ididan Id
osid.id.IdlocationIdthe Id of a location
Returnboolean true if the id is a descendant of the locationId, false otherwise
ErrorsNOT_FOUND locationId not found
NULL_ARGUMENT id or locationId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
Provider Notes

If id is not found return false.

MethodgetLocationNodeIds
Description

Gets a portion of the hierarchy for the given location.

Parametersosid.id.IdlocationIdthe Id to query
cardinalancestorLevelsthe maximum number of ancestor levels to include. A value of 0 returns no parents in the location.
cardinaldescendantLevelsthe maximum number of descendant levels to include. A value of 0 returns no children in the location.
booleanincludeSiblings true to include the siblings of the given location, false to omit the siblings
Returnosid.hierarchy.Nodea location node
ErrorsNOT_FOUND locationId is not found
NULL_ARGUMENT locationId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodgetLocationNodes
Description

Gets a portion of the hierarchy for the given location.

Parametersosid.id.IdlocationIdthe Id to query
cardinalancestorLevelsthe maximum number of ancestor levels to include. A value of 0 returns no parents in the location.
cardinaldescendantLevelsthe maximum number of descendant levels to include. A value of 0 returns no children in the location.
booleanincludeSiblings true to include the siblings of the given location, false to omit the siblings
Returnosid.mapping.LocationNodea location node
ErrorsNOT_FOUND locationId is not found
NULL_ARGUMENT locationId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.