OSID Logo
OSID Specifications
checklist package
Version 3.0.0
Release Candidate Preview
Interfaceosid.checklist.TodoHierarchySession
Implementsosid.OsidSession
Description

This session defines methods for traversing a hierarchy of Todo objects. Each todo in the hierarchy is a unique Todo. The hierarchy may be traversed recursively to establish the tree structure through getParentTodos() and getChildTodos(). To relate these Ids to another OSID, getTodoNodes() can be used for retrievals that can be used for bulk lookups in other OSIDs. Any Todo available in the Course 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 getParentTodos() or getChildTodos() 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: todo elements may be silently omitted or re-ordered
  • plenary view: provides a complete set or is an error condition
MethodgetTodoHierarchyId
Description

Gets the hierarchy Id associated with this session.

Returnosid.id.Idthe hierarchy Id associated with this session
CompliancemandatoryThis method must be implemented.
MethodgetTodoHierarchy
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.
MethodcanAccessTodoHierarchy
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.
MethoduseComparativeTodoView
Description

The returns from the todo 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.
MethodusePlenaryTodoView
Description

A complete view of the Todos 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.
MethodgetRootTodoIds
Description

Gets the root todo Ids in this hierarchy.

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

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

Returnosid.checklist.TodoListthe root todos
ErrorsOPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method is must be implemented.
MethodhasParentTodos
Description

Tests if the Todo has any parents.

Parametersosid.id.IdtodoIda todo Id
Returnboolean true if the todo has parents, false otherwise
ErrorsNOT_FOUND todoId is not found
NULL_ARGUMENT todoId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodisParentOfTodo
Description

Tests if an Id is a direct parent of todo.

Parametersosid.id.Ididan Id
osid.id.IdtodoIdthe Id of a todo
Returnboolean true if this id is a parent of todoId, false otherwise
ErrorsNOT_FOUND todoId is not found
NULL_ARGUMENT id or todoId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
Provider Notes

If id not found return false.

MethodgetParentTodoIds
Description

Gets the parent Ids of the given todo.

Parametersosid.id.IdtodoIda todo Id
Returnosid.id.IdListthe parent Ids of the todo
ErrorsNOT_FOUND todoId is not found
NULL_ARGUMENT todoId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodgetParentTodos
Description

Gets the parents of the given todo.

Parametersosid.id.IdtodoIdthe Id to query
Returnosid.checklist.TodoListthe parents of the todo
ErrorsNOT_FOUND todoId not found
NULL_ARGUMENT todoId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodisAncestorOfTodo
Description

Tests if an Id is an ancestor of a todo.

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

If id not found return false.

MethodhasChildTodos
Description

Tests if a todo has any children.

Parametersosid.id.IdtodoIda todo Id
Returnboolean true if the todoId has children, false otherwise
ErrorsNOT_FOUND todoId not found
NULL_ARGUMENT todoId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodisChildOfTodo
Description

Tests if a node is a direct child of another.

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

If id not found return false.

MethodgetChildTodoIds
Description

Gets the child Ids of the given todo.

Parametersosid.id.IdtodoIda todo Id
Returnosid.id.IdListthe child Ids of the todo
ErrorsNOT_FOUND todoId is not found
NULL_ARGUMENT todoId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodgetChildTodos
Description

Gets the children of the given todo.

Parametersosid.id.IdtodoIdthe Id to query
Returnosid.checklist.TodoListthe children of the todo
ErrorsNOT_FOUND todoId not found
NULL_ARGUMENT todoId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodisDescendantOfTodo
Description

Tests if an Id is a descendant of a todo.

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

If id is not found return false.

MethodgetTodoNodeIds
Description

Gets a portion of the hierarchy for the given todo.

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

Gets a portion of the hierarchy for the given todo.

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