Class ReadOnlyNodeTypeManager
- java.lang.Object
-
- org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager
-
- All Implemented Interfaces:
javax.jcr.nodetype.NodeTypeManager,DefinitionProvider,EffectiveNodeTypeProvider
- Direct Known Subclasses:
ReadWriteNodeTypeManager
public abstract class ReadOnlyNodeTypeManager extends java.lang.Object implements javax.jcr.nodetype.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 javax.jcr.nodetype.NodeDefinitionTemplatecreateNodeDefinitionTemplate()javax.jcr.nodetype.NodeTypeTemplatecreateNodeTypeTemplate()javax.jcr.nodetype.NodeTypeTemplatecreateNodeTypeTemplate(javax.jcr.nodetype.NodeTypeDefinition ntd)javax.jcr.nodetype.PropertyDefinitionTemplatecreatePropertyDefinitionTemplate()javax.jcr.nodetype.NodeTypeIteratorgetAllNodeTypes()@NotNull javax.jcr.nodetype.NodeDefinitiongetDefinition(@NotNull Tree parent, @NotNull java.lang.String nodeName)Returns the node definition for a child node ofparentnamednodeNamewith a default primary type.@NotNull javax.jcr.nodetype.PropertyDefinitiongetDefinition(@NotNull Tree parent, @NotNull PropertyState property, boolean exactTypeMatch)Calculates the applicable definition for the property state under the given parent tree.@NotNull javax.jcr.nodetype.NodeDefinitiongetDefinition(@NotNull Tree parent, @NotNull Tree targetNode)Calculates the applicable definition for the child node under the given parent node.@NotNull EffectiveNodeTypegetEffectiveNodeType(@NotNull javax.jcr.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.javax.jcr.nodetype.NodeTypeIteratorgetMixinNodeTypes()javax.jcr.nodetype.NodeTypegetNodeType(java.lang.String name)javax.jcr.nodetype.NodeTypeIteratorgetPrimaryNodeTypes()@NotNull javax.jcr.nodetype.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.util.function.Supplier<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.javax.jcr.nodetype.NodeTyperegisterNodeType(javax.jcr.nodetype.NodeTypeDefinition ntd, boolean allowUpdate)This implementation always throws aUnsupportedRepositoryOperationException.javax.jcr.nodetype.NodeTypeIteratorregisterNodeTypes(javax.jcr.nodetype.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, 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 javax.jcr.RepositoryException- Specified by:
hasNodeTypein interfacejavax.jcr.nodetype.NodeTypeManager- Throws:
javax.jcr.RepositoryException
-
getNodeType
public javax.jcr.nodetype.NodeType getNodeType(java.lang.String name) throws javax.jcr.RepositoryException- Specified by:
getNodeTypein interfacejavax.jcr.nodetype.NodeTypeManager- Throws:
javax.jcr.RepositoryException
-
getAllNodeTypes
public javax.jcr.nodetype.NodeTypeIterator getAllNodeTypes() throws javax.jcr.RepositoryException- Specified by:
getAllNodeTypesin interfacejavax.jcr.nodetype.NodeTypeManager- Throws:
javax.jcr.RepositoryException
-
getPrimaryNodeTypes
public javax.jcr.nodetype.NodeTypeIterator getPrimaryNodeTypes() throws javax.jcr.RepositoryException- Specified by:
getPrimaryNodeTypesin interfacejavax.jcr.nodetype.NodeTypeManager- Throws:
javax.jcr.RepositoryException
-
getMixinNodeTypes
public javax.jcr.nodetype.NodeTypeIterator getMixinNodeTypes() throws javax.jcr.RepositoryException- Specified by:
getMixinNodeTypesin interfacejavax.jcr.nodetype.NodeTypeManager- Throws:
javax.jcr.RepositoryException
-
createNodeTypeTemplate
public javax.jcr.nodetype.NodeTypeTemplate createNodeTypeTemplate() throws javax.jcr.RepositoryException- Specified by:
createNodeTypeTemplatein interfacejavax.jcr.nodetype.NodeTypeManager- Throws:
javax.jcr.RepositoryException
-
createNodeTypeTemplate
public javax.jcr.nodetype.NodeTypeTemplate createNodeTypeTemplate(javax.jcr.nodetype.NodeTypeDefinition ntd) throws javax.jcr.RepositoryException- Specified by:
createNodeTypeTemplatein interfacejavax.jcr.nodetype.NodeTypeManager- Throws:
javax.jcr.RepositoryException
-
createNodeDefinitionTemplate
public javax.jcr.nodetype.NodeDefinitionTemplate createNodeDefinitionTemplate() throws javax.jcr.RepositoryException- Specified by:
createNodeDefinitionTemplatein interfacejavax.jcr.nodetype.NodeTypeManager- Throws:
javax.jcr.RepositoryException
-
createPropertyDefinitionTemplate
public javax.jcr.nodetype.PropertyDefinitionTemplate createPropertyDefinitionTemplate() throws javax.jcr.RepositoryException- Specified by:
createPropertyDefinitionTemplatein interfacejavax.jcr.nodetype.NodeTypeManager- Throws:
javax.jcr.RepositoryException
-
registerNodeType
public javax.jcr.nodetype.NodeType registerNodeType(javax.jcr.nodetype.NodeTypeDefinition ntd, boolean allowUpdate) throws javax.jcr.RepositoryExceptionThis implementation always throws aUnsupportedRepositoryOperationException.- Specified by:
registerNodeTypein interfacejavax.jcr.nodetype.NodeTypeManager- Throws:
javax.jcr.RepositoryException
-
registerNodeTypes
public javax.jcr.nodetype.NodeTypeIterator registerNodeTypes(javax.jcr.nodetype.NodeTypeDefinition[] ntds, boolean allowUpdate) throws javax.jcr.RepositoryExceptionThis implementation always throws aUnsupportedRepositoryOperationException.- Specified by:
registerNodeTypesin interfacejavax.jcr.nodetype.NodeTypeManager- Throws:
javax.jcr.RepositoryException
-
unregisterNodeType
public void unregisterNodeType(java.lang.String name) throws javax.jcr.RepositoryExceptionThis implementation always throws aUnsupportedRepositoryOperationException.- Specified by:
unregisterNodeTypein interfacejavax.jcr.nodetype.NodeTypeManager- Throws:
javax.jcr.RepositoryException
-
unregisterNodeTypes
public void unregisterNodeTypes(java.lang.String[] names) throws javax.jcr.RepositoryExceptionThis implementation always throws aUnsupportedRepositoryOperationException.- Specified by:
unregisterNodeTypesin interfacejavax.jcr.nodetype.NodeTypeManager- Throws:
javax.jcr.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.util.function.Supplier<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 javax.jcr.Node node) throws javax.jcr.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:
javax.jcr.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 javax.jcr.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:
javax.jcr.RepositoryException- if the type information can not be accessed,- See Also:
- JCR 2.0 Specification, Section 3.7.6.5
-
getRootDefinition
@NotNull public @NotNull javax.jcr.nodetype.NodeDefinition getRootDefinition() throws javax.jcr.RepositoryException- Specified by:
getRootDefinitionin interfaceDefinitionProvider- Throws:
javax.jcr.RepositoryException
-
getDefinition
@NotNull public @NotNull javax.jcr.nodetype.NodeDefinition getDefinition(@NotNull @NotNull Tree parent, @NotNull @NotNull java.lang.String nodeName) throws javax.jcr.RepositoryExceptionDescription 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:
javax.jcr.nodetype.ConstraintViolationException- If no matching definition can be found.javax.jcr.RepositoryException- If another error occurs.
-
getDefinition
@NotNull public @NotNull javax.jcr.nodetype.NodeDefinition getDefinition(@NotNull @NotNull Tree parent, @NotNull @NotNull Tree targetNode) throws javax.jcr.RepositoryExceptionDescription 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:
javax.jcr.nodetype.ConstraintViolationException- If no matching definition can be found.javax.jcr.RepositoryException- If another error occurs.
-
getDefinition
@NotNull public @NotNull javax.jcr.nodetype.PropertyDefinition getDefinition(@NotNull @NotNull Tree parent, @NotNull @NotNull PropertyState property, boolean exactTypeMatch) throws javax.jcr.RepositoryExceptionDescription 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:
javax.jcr.nodetype.ConstraintViolationException- If no matching definition can be found.javax.jcr.RepositoryException- If another error occurs.
-
-