Class ReadOnlyNodeTypeManager
- java.lang.Object
-
- org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager
-
- All Implemented Interfaces:
NodeTypeManager,DefinitionProvider,EffectiveNodeTypeProvider
- Direct Known Subclasses:
ReadWriteNodeTypeManager
public abstract class ReadOnlyNodeTypeManager extends java.lang.Object implements NodeTypeManager, EffectiveNodeTypeProvider, DefinitionProvider
Base implementation of aNodeTypeManagerwith support for reading node types from theTreereturned bygetTypes(). Methods related to node type modifications throwUnsupportedRepositoryOperationException.
-
-
Constructor Summary
Constructors Constructor Description ReadOnlyNodeTypeManager()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description NodeDefinitionTemplatecreateNodeDefinitionTemplate()NodeTypeTemplatecreateNodeTypeTemplate()NodeTypeTemplatecreateNodeTypeTemplate(NodeTypeDefinition ntd)PropertyDefinitionTemplatecreatePropertyDefinitionTemplate()NodeTypeIteratorgetAllNodeTypes()@NotNull NodeDefinitiongetDefinition(@NotNull Tree parent, @NotNull java.lang.String nodeName)Returns the node definition for a child node ofparentnamednodeNamewith a default primary type.@NotNull PropertyDefinitiongetDefinition(@NotNull Tree parent, @NotNull PropertyState property, boolean exactTypeMatch)Calculates the applicable definition for the property state under the given parent tree.@NotNull NodeDefinitiongetDefinition(@NotNull Tree parent, @NotNull Tree targetNode)Calculates the applicable definition for the child node under the given parent node.@NotNull EffectiveNodeTypegetEffectiveNodeType(@NotNull Node node)Returns all the node types of the given node, in a breadth-first traversal order of the type hierarchy.@NotNull EffectiveNodeTypegetEffectiveNodeType(@NotNull Tree tree)Calculates and returns the effective node types of the given tree.static @NotNull ReadOnlyNodeTypeManagergetInstance(Root root, NamePathMapper namePathMapper)Return a new instance ofReadOnlyNodeTypeManagerthat reads node type information from the tree atNodeTypeConstants.NODE_TYPES_PATH.NodeTypeIteratorgetMixinNodeTypes()NodeTypegetNodeType(java.lang.String name)NodeTypeIteratorgetPrimaryNodeTypes()@NotNull NodeDefinitiongetRootDefinition()booleanhasNodeType(java.lang.String name)booleanisNodeType(@NotNull java.lang.String typeName, @NotNull java.lang.String superName)ReturnstrueiftypeNameis of the specified primary node type or mixin type, or a subtype thereof.booleanisNodeType(@NotNull Tree tree, @NotNull java.lang.String oakNtName)Returnstrueif this tree is of the specified primary node type or mixin type, or a subtype thereof respecting the effective node type of thetree.booleanisNodeType(@Nullable java.lang.String primaryTypeName, @NotNull java.lang.Iterable<java.lang.String> mixinTypes, @NotNull java.lang.String nodeTypeName)ReturnstrueiftypeNameis of the specified primary node type or mixin type, or a subtype thereof.NodeTyperegisterNodeType(NodeTypeDefinition ntd, boolean allowUpdate)This implementation always throws aUnsupportedRepositoryOperationException.NodeTypeIteratorregisterNodeTypes(NodeTypeDefinition[] ntds, boolean allowUpdate)This implementation always throws aUnsupportedRepositoryOperationException.voidunregisterNodeType(java.lang.String name)This implementation always throws aUnsupportedRepositoryOperationException.voidunregisterNodeTypes(java.lang.String[] names)This implementation always throws aUnsupportedRepositoryOperationException.-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.jackrabbit.oak.spi.nodetype.EffectiveNodeTypeProvider
isNodeType
-
-
-
-
Method Detail
-
getInstance
@NotNull public static @NotNull ReadOnlyNodeTypeManager getInstance(Root root, NamePathMapper namePathMapper)
Return a new instance ofReadOnlyNodeTypeManagerthat reads node type information from the tree atNodeTypeConstants.NODE_TYPES_PATH.- Parameters:
root- The root to read node types from.namePathMapper- TheNamePathMapperto use.- Returns:
- a new instance of
ReadOnlyNodeTypeManager.
-
hasNodeType
public boolean hasNodeType(java.lang.String name) throws RepositoryException- Specified by:
hasNodeTypein interfaceNodeTypeManager- Throws:
RepositoryException
-
getNodeType
public NodeType getNodeType(java.lang.String name) throws RepositoryException
- Specified by:
getNodeTypein interfaceNodeTypeManager- Throws:
RepositoryException
-
getAllNodeTypes
public NodeTypeIterator getAllNodeTypes() throws RepositoryException
- Specified by:
getAllNodeTypesin interfaceNodeTypeManager- Throws:
RepositoryException
-
getPrimaryNodeTypes
public NodeTypeIterator getPrimaryNodeTypes() throws RepositoryException
- Specified by:
getPrimaryNodeTypesin interfaceNodeTypeManager- Throws:
RepositoryException
-
getMixinNodeTypes
public NodeTypeIterator getMixinNodeTypes() throws RepositoryException
- Specified by:
getMixinNodeTypesin interfaceNodeTypeManager- Throws:
RepositoryException
-
createNodeTypeTemplate
public NodeTypeTemplate createNodeTypeTemplate() throws RepositoryException
- Specified by:
createNodeTypeTemplatein interfaceNodeTypeManager- Throws:
RepositoryException
-
createNodeTypeTemplate
public NodeTypeTemplate createNodeTypeTemplate(NodeTypeDefinition ntd) throws RepositoryException
- Specified by:
createNodeTypeTemplatein interfaceNodeTypeManager- Throws:
RepositoryException
-
createNodeDefinitionTemplate
public NodeDefinitionTemplate createNodeDefinitionTemplate() throws RepositoryException
- Specified by:
createNodeDefinitionTemplatein interfaceNodeTypeManager- Throws:
RepositoryException
-
createPropertyDefinitionTemplate
public PropertyDefinitionTemplate createPropertyDefinitionTemplate() throws RepositoryException
- Specified by:
createPropertyDefinitionTemplatein interfaceNodeTypeManager- Throws:
RepositoryException
-
registerNodeType
public NodeType registerNodeType(NodeTypeDefinition ntd, boolean allowUpdate) throws RepositoryException
This implementation always throws aUnsupportedRepositoryOperationException.- Specified by:
registerNodeTypein interfaceNodeTypeManager- Throws:
RepositoryException
-
registerNodeTypes
public NodeTypeIterator registerNodeTypes(NodeTypeDefinition[] ntds, boolean allowUpdate) throws RepositoryException
This implementation always throws aUnsupportedRepositoryOperationException.- Specified by:
registerNodeTypesin interfaceNodeTypeManager- Throws:
RepositoryException
-
unregisterNodeType
public void unregisterNodeType(java.lang.String name) throws RepositoryExceptionThis implementation always throws aUnsupportedRepositoryOperationException.- Specified by:
unregisterNodeTypein interfaceNodeTypeManager- Throws:
RepositoryException
-
unregisterNodeTypes
public void unregisterNodeTypes(java.lang.String[] names) throws RepositoryExceptionThis implementation always throws aUnsupportedRepositoryOperationException.- Specified by:
unregisterNodeTypesin interfaceNodeTypeManager- Throws:
RepositoryException
-
isNodeType
public boolean isNodeType(@NotNull @NotNull Tree tree, @NotNull @NotNull java.lang.String oakNtName)Description copied from interface:EffectiveNodeTypeProviderReturnstrueif this tree is of the specified primary node type or mixin type, or a subtype thereof respecting the effective node type of thetree. Returnsfalseotherwise. Note: caution must be taken while calling this api because it doesn't offer the same strict guarantees as theNode#isNodeType(String)method in the case where the session doesn't have access to thejcr:mixinTypesproperty.- Specified by:
isNodeTypein interfaceEffectiveNodeTypeProvider- Parameters:
tree- The tree to be tested.oakNtName- The internal oak name of the node type to be tested.- Returns:
- true if the specified node is of the given node type.
-
isNodeType
public boolean isNodeType(@Nullable @Nullable java.lang.String primaryTypeName, @NotNull @NotNull java.lang.Iterable<java.lang.String> mixinTypes, @NotNull @NotNull java.lang.String nodeTypeName)Description copied from interface:EffectiveNodeTypeProviderReturnstrueiftypeNameis of the specified primary node type or mixin type, or a subtype thereof. Returnsfalseotherwise.- Specified by:
isNodeTypein interfaceEffectiveNodeTypeProvider- Parameters:
primaryTypeName- the internal oak name of the node to testmixinTypes- the internal oak names of the node to test.nodeTypeName- The internal oak name of the node type to be tested.- Returns:
trueif the specified node type is of the given node type.
-
isNodeType
public boolean isNodeType(@NotNull @NotNull java.lang.String typeName, @NotNull @NotNull java.lang.String superName)Description copied from interface:EffectiveNodeTypeProviderReturnstrueiftypeNameis of the specified primary node type or mixin type, or a subtype thereof. Returnsfalseotherwise.- Specified by:
isNodeTypein interfaceEffectiveNodeTypeProvider- Parameters:
typeName- the internal oak name of the node type to testsuperName- The internal oak name of the super type to be tested for.- Returns:
trueif the specified node type is of the given node type.
-
getEffectiveNodeType
@NotNull public @NotNull EffectiveNodeType getEffectiveNodeType(@NotNull @NotNull Node node) throws RepositoryException
Returns all the node types of the given node, in a breadth-first traversal order of the type hierarchy.- Specified by:
getEffectiveNodeTypein interfaceEffectiveNodeTypeProvider- Parameters:
node- node instance- Returns:
- all types of the given node
- Throws:
RepositoryException- if the type information can not be accessed- See Also:
- JCR 2.0 Specification, Section 3.7.6.5
-
getEffectiveNodeType
@NotNull public @NotNull EffectiveNodeType getEffectiveNodeType(@NotNull @NotNull Tree tree) throws RepositoryException
Description copied from interface:EffectiveNodeTypeProviderCalculates and returns the effective node types of the given tree. Also see JCR 2.0 Specification, Section 3.7.6.5 for the definition of the effective node type.- Specified by:
getEffectiveNodeTypein interfaceEffectiveNodeTypeProvider- Parameters:
tree- the tree- Returns:
- all node types of the given tree
- Throws:
RepositoryException- if the type information can not be accessed,- See Also:
- JCR 2.0 Specification, Section 3.7.6.5
-
getRootDefinition
@NotNull public @NotNull NodeDefinition getRootDefinition() throws RepositoryException
- Specified by:
getRootDefinitionin interfaceDefinitionProvider- Throws:
RepositoryException
-
getDefinition
@NotNull public @NotNull NodeDefinition getDefinition(@NotNull @NotNull Tree parent, @NotNull @NotNull java.lang.String nodeName) throws RepositoryException
Description copied from interface:DefinitionProviderReturns the node definition for a child node ofparentnamednodeNamewith a default primary type. First the non-residual child node definitions ofparentare checked matching the given node name. Then the residual definitions are checked.- Specified by:
getDefinitionin interfaceDefinitionProvider- Parameters:
parent- the parent node.nodeName- The internal oak name of the child node.- Returns:
- the applicable node definition.
- Throws:
ConstraintViolationException- If no matching definition can be found.RepositoryException- If another error occurs.
-
getDefinition
@NotNull public @NotNull NodeDefinition getDefinition(@NotNull @NotNull Tree parent, @NotNull @NotNull Tree targetNode) throws RepositoryException
Description copied from interface:DefinitionProviderCalculates the applicable definition for the child node under the given parent node.- Specified by:
getDefinitionin interfaceDefinitionProvider- Parameters:
parent- The parent node.targetNode- The child node for which the definition is calculated.- Returns:
- the definition of the target node.
- Throws:
ConstraintViolationException- If no matching definition can be found.RepositoryException- If another error occurs.
-
getDefinition
@NotNull public @NotNull PropertyDefinition getDefinition(@NotNull @NotNull Tree parent, @NotNull @NotNull PropertyState property, boolean exactTypeMatch) throws RepositoryException
Description copied from interface:DefinitionProviderCalculates the applicable definition for the property state under the given parent tree.- Specified by:
getDefinitionin interfaceDefinitionProvider- Parameters:
parent- The parent tree.property- The target property.- Returns:
- the definition for the target property.
- Throws:
ConstraintViolationException- If no matching definition can be found.RepositoryException- If another error occurs.
-
-