Class AbstractNode
- java.lang.Object
-
- org.apache.jackrabbit.commons.AbstractItem
-
- org.apache.jackrabbit.commons.AbstractNode
-
- All Implemented Interfaces:
javax.jcr.Item,javax.jcr.Node
public abstract class AbstractNode extends AbstractItem implements javax.jcr.Node
Abstract base class for implementing the JCRNodeinterface.Itemmethods without a default implementation:Item.accept(javax.jcr.ItemVisitor)Item.getName()Item.getParent()Item.getSession()Item.isModified()Item.isNew()Item.isSame(Item)Item.refresh(boolean)Item.remove()Item.save()
Nodemethods without a default implementation:Node.addMixin(String)Node.addNode(String)Node.addNode(String, String)Node.canAddMixin(String)Node.cancelMerge(Version)Node.checkin()Node.checkout()Node.doneMerge(Version)Node.getBaseVersion()Node.getCorrespondingNodePath(String)Node.getDefinition()Node.getIndex()Node.getLock()Node.getNode(String)Node.getNodes()Node.getNodes(String)Node.getPrimaryItem()Node.getProperties()Node.getProperties(String)Node.getReferences()Node.lock(boolean, boolean)Node.merge(String, boolean)Node.orderBefore(String, String)Node.removeMixin(String)Node.restore(Version, String, boolean)Node.setProperty(String, Value)Node.setProperty(String, Value[])Node.unlock()Node.update(String)
-
-
Constructor Summary
Constructors Constructor Description AbstractNode()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(javax.jcr.ItemVisitor visitor)Accepts the given item visitor.javax.jcr.nodetype.NodeType[]getMixinNodeTypes()Returns the declared mixin node types of this node.java.lang.StringgetPath()Returns the path of this node.javax.jcr.nodetype.NodeTypegetPrimaryNodeType()Returns the primary node type of this node.javax.jcr.PropertygetProperty(java.lang.String relPath)Returns the property at the given relative path from this node.java.lang.StringgetUUID()Returns the UUID of this node.javax.jcr.version.VersionHistorygetVersionHistory()Returns the version history of this node.booleanhasNode(java.lang.String relPath)Checks whether a node at the given relative path exists.booleanhasNodes()Checks if this node has one or more properties.booleanhasProperties()Checks if this node has one or more properties.booleanhasProperty(java.lang.String relPath)Checks whether a property at the given relative path exists.booleanholdsLock()Checks if this node holds a lock.booleanisCheckedOut()Checks whether this node is checked out.booleanisLocked()Checks if this node is locked.booleanisNode()Returnstrue.booleanisNodeType(java.lang.String name)Checks whether this node is of the given type.voidrestore(java.lang.String versionName, boolean removeExisting)Restores this node to the version with the given name.voidrestore(javax.jcr.version.Version version, boolean removeExisting)Restores this node to the given version.voidrestoreByLabel(java.lang.String versionLabel, boolean removeExisting)Restores this node to the version with the given label.javax.jcr.PropertysetProperty(java.lang.String name, boolean value)Sets the value of the named property.javax.jcr.PropertysetProperty(java.lang.String name, double value)Sets the value of the named property.javax.jcr.PropertysetProperty(java.lang.String name, long value)Sets the value of the named property.javax.jcr.PropertysetProperty(java.lang.String name, java.io.InputStream value)Sets the value of the named property.javax.jcr.PropertysetProperty(java.lang.String name, java.lang.String value)Sets the value of the named property.javax.jcr.PropertysetProperty(java.lang.String name, java.lang.String[] strings)Sets the value of the named property.javax.jcr.PropertysetProperty(java.lang.String name, java.lang.String[] strings, int type)Sets the value of the named property.javax.jcr.PropertysetProperty(java.lang.String name, java.lang.String value, int type)Sets the value of the named property.javax.jcr.PropertysetProperty(java.lang.String name, java.util.Calendar value)Sets the value of the named property.javax.jcr.PropertysetProperty(java.lang.String name, javax.jcr.Node value)Sets the value of the named property.javax.jcr.PropertysetProperty(java.lang.String name, javax.jcr.Value[] values, int type)Sets the value of the named property.javax.jcr.PropertysetProperty(java.lang.String name, javax.jcr.Value value, int type)Sets the value of the named property.-
Methods inherited from class org.apache.jackrabbit.commons.AbstractItem
getAncestor, getDepth, toString
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface javax.jcr.Item
getAncestor, getDepth, getName, getParent, getSession, isModified, isNew, isSame, refresh, remove, save
-
Methods inherited from interface javax.jcr.Node
addMixin, addNode, addNode, canAddMixin, cancelMerge, checkin, checkout, doneMerge, followLifecycleTransition, getAllowedLifecycleTransistions, getBaseVersion, getCorrespondingNodePath, getDefinition, getIdentifier, getIndex, getLock, getNode, getNodes, getNodes, getNodes, getPrimaryItem, getProperties, getProperties, getProperties, getReferences, getReferences, getSharedSet, getWeakReferences, getWeakReferences, lock, merge, orderBefore, removeMixin, removeShare, removeSharedSet, restore, setPrimaryType, setProperty, setProperty, setProperty, setProperty, unlock, update
-
-
-
-
Method Detail
-
accept
public void accept(javax.jcr.ItemVisitor visitor) throws javax.jcr.RepositoryExceptionAccepts the given item visitor.The default implementation calls
ItemVisitor.visit(Node)on the given visitor with this node as the argument.- Specified by:
acceptin interfacejavax.jcr.Item- Parameters:
visitor- item visitor- Throws:
javax.jcr.RepositoryException- if an error occurs
-
getPath
public java.lang.String getPath() throws javax.jcr.RepositoryExceptionReturns the path of this node.The default implementation recursively calls this method on the parent node and appends the name and optionally the index of this node to construct the full path. Returns "/" if the parent node is not available (i.e. this is the root node).
- Specified by:
getPathin interfacejavax.jcr.Item- Returns:
- node path
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
isNode
public boolean isNode()
Returnstrue.- Specified by:
isNodein interfacejavax.jcr.Item- Returns:
true
-
getMixinNodeTypes
public javax.jcr.nodetype.NodeType[] getMixinNodeTypes() throws javax.jcr.RepositoryExceptionReturns the declared mixin node types of this node.The default implementation uses the values of the
jcr:mixinTypesproperty to look up the mixin node types from theNodeTypeManagerof the current workspace.- Specified by:
getMixinNodeTypesin interfacejavax.jcr.Node- Returns:
- mixin node types
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
getPrimaryNodeType
public javax.jcr.nodetype.NodeType getPrimaryNodeType() throws javax.jcr.RepositoryExceptionReturns the primary node type of this node.The default implementation uses the value of the
jcr:primaryTypeproperty to look up the primary node type from theNodeTypeManagerof the current workspace.- Specified by:
getPrimaryNodeTypein interfacejavax.jcr.Node- Returns:
- primary node type
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
getProperty
public javax.jcr.Property getProperty(java.lang.String relPath) throws javax.jcr.PathNotFoundException, javax.jcr.RepositoryExceptionReturns the property at the given relative path from this node.The default implementation looks up the parent node of the given relative path and iterates through the properties of that node to find and return the identified property.
- Specified by:
getPropertyin interfacejavax.jcr.Node- Parameters:
relPath- relative path of the property- Returns:
- property
- Throws:
javax.jcr.PathNotFoundException- if the property is not foundjavax.jcr.RepositoryException- if an error occurs
-
getUUID
public java.lang.String getUUID() throws javax.jcr.UnsupportedRepositoryOperationException, javax.jcr.RepositoryExceptionReturns the UUID of this node.The default implementation checks if this node is referenceable (i.e. of type
mix:referenceable) and returns the contents of thejcr:uuidproperty if it is.- Specified by:
getUUIDin interfacejavax.jcr.Node- Returns:
- node UUID
- Throws:
javax.jcr.UnsupportedRepositoryOperationException- if this node is not referenceablejavax.jcr.RepositoryException- if an error occurs
-
getVersionHistory
public javax.jcr.version.VersionHistory getVersionHistory() throws javax.jcr.RepositoryExceptionReturns the version history of this node.The default implementation returns the containing version history of the base version of this node.
- Specified by:
getVersionHistoryin interfacejavax.jcr.Node- Returns:
- version history
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
hasNode
public boolean hasNode(java.lang.String relPath) throws javax.jcr.RepositoryExceptionChecks whether a node at the given relative path exists.The default implementation looks up the node using
Node.getNode(String)and returnstrueif aPathNotFoundExceptionis not thrown.- Specified by:
hasNodein interfacejavax.jcr.Node- Parameters:
relPath- relative path- Returns:
trueif a node exists at the given path,falseotherwise- Throws:
javax.jcr.RepositoryException- if an error occurs
-
hasNodes
public boolean hasNodes() throws javax.jcr.RepositoryExceptionChecks if this node has one or more properties.The default implementation calls
Node.getNodes()and returnstrueiff returned iterator has at least one element.- Specified by:
hasNodesin interfacejavax.jcr.Node- Returns:
trueif this node has child nodes,falseotherwise- Throws:
javax.jcr.RepositoryException- if an error occurs
-
hasProperties
public boolean hasProperties() throws javax.jcr.RepositoryExceptionChecks if this node has one or more properties.The default implementation calls
Node.getProperties()and returnstrueiff returned iterator has at least one element.Note that in normal circumstances (i.e. no weird access controls) this method will always return
truesince all nodes always have at least thejcr:primaryTypeproperty.- Specified by:
hasPropertiesin interfacejavax.jcr.Node- Returns:
trueif this node has properties,falseotherwise- Throws:
javax.jcr.RepositoryException- if an error occurs
-
hasProperty
public boolean hasProperty(java.lang.String relPath) throws javax.jcr.RepositoryExceptionChecks whether a property at the given relative path exists.The default implementation looks up the property using
Node.getProperty(String)and returnstrueif aPathNotFoundExceptionis not thrown.- Specified by:
hasPropertyin interfacejavax.jcr.Node- Parameters:
relPath- relative path- Returns:
trueif a property exists at the given path,falseotherwise- Throws:
javax.jcr.RepositoryException- if an error occurs
-
holdsLock
public boolean holdsLock() throws javax.jcr.RepositoryExceptionChecks if this node holds a lock.The default implementation calls
Node.getLock()and returnstrueiff the holding node of the lock is the same as this node.- Specified by:
holdsLockin interfacejavax.jcr.Node- Returns:
trueif this node holds a lock,falseotherwise- Throws:
javax.jcr.RepositoryException- if an error occurs
-
isCheckedOut
public boolean isCheckedOut() throws javax.jcr.RepositoryExceptionChecks whether this node is checked out.The default implementation checks the
jcr:isCheckedOutproperty if this node is versionable, and recursively calls this method on the parent node if this node is not versionable. A non-versionable root node always returnstruefrom this method.- Specified by:
isCheckedOutin interfacejavax.jcr.Node- Returns:
trueif this node is checked out,falseotherwise- Throws:
javax.jcr.RepositoryException- if an error occurs
-
isLocked
public boolean isLocked() throws javax.jcr.RepositoryExceptionChecks if this node is locked.The default implementation calls
Node.getLock()and returnstrueiff aLockExceptionis not thrown.- Specified by:
isLockedin interfacejavax.jcr.Node- Returns:
trueif this node is locked,falseotherwise- Throws:
javax.jcr.RepositoryException- if an error occurs
-
isNodeType
public boolean isNodeType(java.lang.String name) throws javax.jcr.RepositoryExceptionChecks whether this node is of the given type.The default implementation iterates through the primary and mixin types and all the supertypes of this node, returning
trueif a type with the given name is encountered. Returnsfalseif none of the types matches.- Specified by:
isNodeTypein interfacejavax.jcr.Node- Parameters:
name- type name- Returns:
trueif this node is of the given type,falseotherwise- Throws:
javax.jcr.RepositoryException- if an error occurs
-
restore
public void restore(java.lang.String versionName, boolean removeExisting) throws javax.jcr.RepositoryExceptionRestores this node to the version with the given name.The default implement retrieves the named
Versionfrom the associatedVersionHistoryand forwards the call to theNode.restore(Version, boolean)method.- Specified by:
restorein interfacejavax.jcr.Node- Parameters:
versionName- version nameremoveExisting- passed through- Throws:
javax.jcr.RepositoryException- if an error occurs
-
restore
public void restore(javax.jcr.version.Version version, boolean removeExisting) throws javax.jcr.RepositoryExceptionRestores this node to the given version.The default implementation forwards the call to the
Node.restore(Version, String, boolean)method using the relative path ".".- Specified by:
restorein interfacejavax.jcr.Node- Parameters:
version- passed throughremoveExisting- passed through- Throws:
javax.jcr.RepositoryException- if an error occurs
-
restoreByLabel
public void restoreByLabel(java.lang.String versionLabel, boolean removeExisting) throws javax.jcr.RepositoryExceptionRestores this node to the version with the given label.The default implement retrieves the labeled
Versionfrom the associatedVersionHistoryand forwards the call to theNode.restore(Version, boolean)method.- Specified by:
restoreByLabelin interfacejavax.jcr.Node- Parameters:
versionLabel- version labelremoveExisting- passed through- Throws:
javax.jcr.RepositoryException- if an error occurs
-
setProperty
public javax.jcr.Property setProperty(java.lang.String name, java.lang.String[] strings) throws javax.jcr.RepositoryExceptionSets the value of the named property.The default implementation uses the
ValueFactoryof the currentSessionto create aValueinstances from the given string values and forwards the call to theNode.setProperty(String, Value[])method.- Specified by:
setPropertyin interfacejavax.jcr.Node- Parameters:
name- property namestrings- string values- Returns:
- modified property
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
setProperty
public javax.jcr.Property setProperty(java.lang.String name, java.lang.String value) throws javax.jcr.RepositoryExceptionSets the value of the named property.The default implementation uses the
ValueFactoryof the currentSessionto create aValueinstance from the given string value and forwards the call to theNode.setProperty(String, Value)method.- Specified by:
setPropertyin interfacejavax.jcr.Node- Parameters:
name- property namevalue- string value- Returns:
- modified property
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
setProperty
public javax.jcr.Property setProperty(java.lang.String name, java.io.InputStream value) throws javax.jcr.RepositoryExceptionSets the value of the named property.The default implementation uses the
ValueFactoryof the currentSessionto create aValueinstance from the given binary value and forwards the call to theNode.setProperty(String, Value)method.- Specified by:
setPropertyin interfacejavax.jcr.Node- Parameters:
name- property namevalue- binary value- Returns:
- modified property
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
setProperty
public javax.jcr.Property setProperty(java.lang.String name, boolean value) throws javax.jcr.RepositoryExceptionSets the value of the named property.The default implementation uses the
ValueFactoryof the currentSessionto create aValueinstance from the given boolean value and forwards the call to theNode.setProperty(String, Value)method.- Specified by:
setPropertyin interfacejavax.jcr.Node- Parameters:
name- property namevalue- boolean value- Returns:
- modified property
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
setProperty
public javax.jcr.Property setProperty(java.lang.String name, double value) throws javax.jcr.RepositoryExceptionSets the value of the named property.The default implementation uses the
ValueFactoryof the currentSessionto create aValueinstance from the given double value and forwards the call to theNode.setProperty(String, Value)method.- Specified by:
setPropertyin interfacejavax.jcr.Node- Parameters:
name- property namevalue- double value- Returns:
- modified property
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
setProperty
public javax.jcr.Property setProperty(java.lang.String name, long value) throws javax.jcr.RepositoryExceptionSets the value of the named property.The default implementation uses the
ValueFactoryof the currentSessionto create aValueinstance from the given long value and forwards the call to theNode.setProperty(String, Value)method.- Specified by:
setPropertyin interfacejavax.jcr.Node- Parameters:
name- property namevalue- long value- Returns:
- modified property
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
setProperty
public javax.jcr.Property setProperty(java.lang.String name, java.util.Calendar value) throws javax.jcr.RepositoryExceptionSets the value of the named property.The default implementation uses the
ValueFactoryof the currentSessionto create aValueinstance from the given date value and forwards the call to theNode.setProperty(String, Value)method.- Specified by:
setPropertyin interfacejavax.jcr.Node- Parameters:
name- property namevalue- date value- Returns:
- modified property
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
setProperty
public javax.jcr.Property setProperty(java.lang.String name, javax.jcr.Node value) throws javax.jcr.RepositoryExceptionSets the value of the named property.The default implementation uses the
ValueFactoryof the currentSessionto create aValueinstance from the given reference value and forwards the call to theNode.setProperty(String, Value)method.- Specified by:
setPropertyin interfacejavax.jcr.Node- Parameters:
name- property namevalue- reference value- Returns:
- modified property
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
setProperty
public javax.jcr.Property setProperty(java.lang.String name, javax.jcr.Value value, int type) throws javax.jcr.RepositoryExceptionSets the value of the named property.The default implementation uses the
ValueFactoryof the currentSessionto convert the given value to the given type and forwards the call to theNode.setProperty(String, Value)method.- Specified by:
setPropertyin interfacejavax.jcr.Node- Parameters:
name- property namevalue- property valuetype- property type- Returns:
- modified property
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
setProperty
public javax.jcr.Property setProperty(java.lang.String name, javax.jcr.Value[] values, int type) throws javax.jcr.RepositoryExceptionSets the value of the named property.The default implementation uses the
ValueFactoryof the currentSessionto convert the given values to the given type and forwards the call to theNode.setProperty(String, Value[])method.- Specified by:
setPropertyin interfacejavax.jcr.Node- Parameters:
name- property namevalues- property valuestype- property type- Returns:
- modified property
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
setProperty
public javax.jcr.Property setProperty(java.lang.String name, java.lang.String[] strings, int type) throws javax.jcr.RepositoryExceptionSets the value of the named property.The default implementation uses the
ValueFactoryof the currentSessionto createValueinstances of the given type from the given string values and forwards the call to theNode.setProperty(String, Value[])method.- Specified by:
setPropertyin interfacejavax.jcr.Node- Parameters:
name- property namestrings- string valuestype- property type- Returns:
- modified property
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
setProperty
public javax.jcr.Property setProperty(java.lang.String name, java.lang.String value, int type) throws javax.jcr.RepositoryExceptionSets the value of the named property.The default implementation uses the
ValueFactoryof the currentSessionto create aValueinstance of the given type from the given string value and forwards the call to theNode.setProperty(String, Value)method.- Specified by:
setPropertyin interfacejavax.jcr.Node- Parameters:
name- property namevalue- string valuetype- property type- Returns:
- modified property
- Throws:
javax.jcr.RepositoryException- if an error occurs
-
-