Interface NodeAdminSession
- All Superinterfaces:
AutoCloseable, Closeable, OsidSession, OsidSession
- All Known Subinterfaces:
NodeBatchAdminSession
This session creates, updates, and deletes Nodes . 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
Node , a NodeForm is requested using
getNodeFormForCreate() specifying desired record Types or none if
no record Types are needed. The returned NodeForm 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
NodeForm is submiited to a create operation, it cannot be reused with
another create operation unless the first operation was unsuccessful. Each
NodeForm corresponds to an attempted transaction.
For updates, NodeForms are requested to the Node
Id that is to be updated using getNodeFormForUpdate() .
Similarly, the NodeForm has metadata about the data that can be
updated and it can perform validation before submitting the update. The
NodeForm can only be used once for a successful update and cannot
be reused.
The delete operations delete Nodes . To unmap a Node
from the current Graph , the NodeGraphAssignmentSession
should be used. These delete operations attempt to remove the Node
itself thus removing it from all known Graph catalogs.
This session includes an Id aliasing mechanism to assign an
external Id to an internally assigned Id.
-
Method Summary
Modifier and TypeMethodDescriptionvoidAdds anIdto aNodefor the purpose of creating compatibility.booleanTests if this user can createNodes.booleancanCreateNodeWithRecordTypes(Type[] nodeRecordTypes) Tests if this user can create a singleNodeusing the desired record types.booleanTests if this user can deleteNodes.booleanTests if this user can manageIdaliases for node entries.booleanTests if this user can updateNodes.createNode(NodeForm nodeForm) Creates a newNode.voiddeleteNode(Id nodeId) Deletes aNode.getGraph()Gets theGraphassociated with this session.Gets theGraphIdassociated with this session.getNodeFormForCreate(Type[] nodeRecordTypes) Gets the node form for creating new nodes.getNodeFormForUpdate(Id nodeId) Gets the node form for updating an existing node.voidupdateNode(NodeForm nodeForm) Updates an existing node.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
-
getGraphId
Id getGraphId()Gets theGraphIdassociated with this session.- Returns:
- the
Graph Idassociated with this session - Compliance:
mandatory- This method must be implemented.
-
getGraph
Gets theGraphassociated with this session.- Returns:
- the graph
- Throws:
OperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
canCreateNodes
boolean canCreateNodes()Tests if this user can createNodes. A return of true does not guarantee successful authorization. A return of false indicates that it is known creating aNodewill result in aPERMISSION_DENIED. This is intended as a hint to an application that may opt not to offer create operations to an unauthorized user.- Returns:
falseifNodecreation is not authorized,trueotherwise- Compliance:
mandatory- This method must be implemented.
-
canCreateNodeWithRecordTypes
Tests if this user can create a singleNodeusing the desired record types. WhileTopologyManager.getNodeRecordTypes()can be used to examine which records are supported, this method tests which record(s) are required for creating a specificNode. Providing an empty array tests if aNodecan be created with no records.- Parameters:
nodeRecordTypes- array of node record types- Returns:
trueifNodecreation using the specified recordTypesis supported,falseotherwise- Throws:
NullArgumentException-nodeRecordTypesisnull- Compliance:
mandatory- This method must be implemented.
-
getNodeFormForCreate
NodeForm getNodeFormForCreate(Type[] nodeRecordTypes) throws OperationFailedException, PermissionDeniedException Gets the node form for creating new nodes. A new form should be requested for each create transaction.- Parameters:
nodeRecordTypes- array of node record types- Returns:
- the node form
- Throws:
NullArgumentException-nodeRecordTypesisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failureUnsupportedException- unable to get form for requested record types- Compliance:
mandatory- This method must be implemented.
-
createNode
Creates a newNode.- Parameters:
nodeForm- the form for thisNode- Returns:
- the new
Node - Throws:
IllegalStateException- nodeForm already used in a create transactionInvalidArgumentException- one or more of the form elements is invalidNullArgumentException-nodeFormisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failureUnsupportedException-nodeFormdid not originate fromgetNodeFormForCreate()- Compliance:
mandatory- This method must be implemented.
-
canUpdateNodes
boolean canUpdateNodes()Tests if this user can updateNodes. A return of true does not guarantee successful authorization. A return of false indicates that it is known updating aNodewill result in aPERMISSION_DENIED. This is intended as a hint to an application that may opt not to offer update operations to an unauthorized user.- Returns:
falseifNodemodification is not authorized,trueotherwise- Compliance:
mandatory- This method must be implemented.
-
getNodeFormForUpdate
NodeForm getNodeFormForUpdate(Id nodeId) throws NotFoundException, OperationFailedException, PermissionDeniedException Gets the node form for updating an existing node. A new node form should be requested for each update transaction.- Parameters:
nodeId- theIdof theNode- Returns:
- the node form
- Throws:
NotFoundException-nodeIdis not foundNullArgumentException-nodeIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
updateNode
Updates an existing node.- Parameters:
nodeForm- the form containing the elements to be updated- Throws:
IllegalStateException-nodeFormalready used in an update transactionInvalidArgumentException- the form contains an invalid valueNullArgumentException-nodeFormisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failureUnsupportedException-nodeFormdid not originate fromgetNodeFormForUpdate()- Compliance:
mandatory- This method must be implemented.
-
canDeleteNodes
boolean canDeleteNodes()Tests if this user can deleteNodes. A return of true does not guarantee successful authorization. A return of false indicates that it is known deleting aNodewill result in aPERMISSION_DENIED. This is intended as a hint to an application that may opt not to offer delete operations to an unauthorized user.- Returns:
falseifNodedeletion is not authorized,trueotherwise- Compliance:
mandatory- This method must be implemented.
-
deleteNode
void deleteNode(Id nodeId) throws NotFoundException, OperationFailedException, PermissionDeniedException Deletes aNode.- Parameters:
nodeId- theIdof theNodeto remove- Throws:
NotFoundException-nodeIdnot foundNullArgumentException-nodeIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-
canManageNodeAliases
boolean canManageNodeAliases()Tests if this user can manageIdaliases for node entries. A return of true does not guarantee successful authorization. A return of false indicates that it is known changing an alias will result in aPERMISSION_DENIED. This is intended as a hint to an application that may opt not to offer alias operations to an unauthorized user.- Returns:
falseifNodealiasing is not authorized,trueotherwise- Compliance:
mandatory- This method must be implemented.
-
aliasNode
void aliasNode(Id nodeId, Id aliasId) throws AlreadyExistsException, NotFoundException, OperationFailedException, PermissionDeniedException Adds anIdto aNodefor the purpose of creating compatibility. The primaryIdof theNodeis determined by the provider. The newIdperforms as an alias to the primaryId. If the alias is a pointer to another node, it is reassigned to the given nodeId.- Parameters:
nodeId- theIdof aNodealiasId- the aliasId- Throws:
AlreadyExistsException-aliasIdis already assignedNotFoundException-nodeIdnot foundNullArgumentException-nodeIdoraliasIdisnullOperationFailedException- unable to complete requestPermissionDeniedException- authorization failure- Compliance:
mandatory- This method must be implemented.
-