Class ReadWriteNodeTypeManager
- java.lang.Object
-
- org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager
-
- org.apache.jackrabbit.oak.plugins.nodetype.write.ReadWriteNodeTypeManager
-
- All Implemented Interfaces:
NodeTypeManager
,DefinitionProvider
,EffectiveNodeTypeProvider
public abstract class ReadWriteNodeTypeManager extends ReadOnlyNodeTypeManager
ReadWriteNodeTypeManager
extends theReadOnlyNodeTypeManager
with support for operations that modify node types.registerNodeType(NodeTypeDefinition, boolean)
registerNodeTypes(NodeTypeDefinition[], boolean)
unregisterNodeType(String)
unregisterNodeTypes(String[])
- plus related template factory methods
refresh()
callback to e.g. inform an associated session that it should refresh to make the changes visible.Subclass responsibility is to provide an implementation of
ReadOnlyNodeTypeManager.getTypes()
for read only access to the tree where node types are stored in content andgetWriteRoot()
for write access to the repository in order to modify node types stored in content. A subclass may also want to override the default implementation ofReadOnlyNodeTypeManager
for the following methods:
-
-
Constructor Summary
Constructors Constructor Description ReadWriteNodeTypeManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description NodeDefinitionTemplate
createNodeDefinitionTemplate()
Returns an emptyNodeDefinitionTemplate
which can then be used to create a child node definition and attached to aNodeTypeTemplate
.NodeTypeTemplate
createNodeTypeTemplate()
Returns an emptyNodeTypeTemplate
which can then be used to define a node type and passed toNodeTypeManager.registerNodeType
.NodeTypeTemplate
createNodeTypeTemplate(NodeTypeDefinition ntd)
Returns aNodeTypeTemplate
holding the specified node type definition.PropertyDefinitionTemplate
createPropertyDefinitionTemplate()
Returns an emptyPropertyDefinitionTemplate
which can then be used to create a property definition and attached to aNodeTypeTemplate
.NodeType
registerNodeType(NodeTypeDefinition ntd, boolean allowUpdate)
This implementation always throws aUnsupportedRepositoryOperationException
.NodeTypeIterator
registerNodeTypes(NodeTypeDefinition[] ntds, boolean allowUpdate)
This implementation always throws aUnsupportedRepositoryOperationException
.void
unregisterNodeType(String name)
This implementation always throws aUnsupportedRepositoryOperationException
.void
unregisterNodeTypes(String[] names)
This implementation always throws aUnsupportedRepositoryOperationException
.-
Methods inherited from class org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager
getAllNodeTypes, getDefinition, getDefinition, getDefinition, getEffectiveNodeType, getEffectiveNodeType, getInstance, getMixinNodeTypes, getNodeType, getPrimaryNodeTypes, getRootDefinition, hasNodeType, isNodeType, isNodeType, isNodeType
-
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
-
createNodeTypeTemplate
public NodeTypeTemplate createNodeTypeTemplate()
Description copied from interface:NodeTypeManager
Returns an emptyNodeTypeTemplate
which can then be used to define a node type and passed toNodeTypeManager.registerNodeType
.- Specified by:
createNodeTypeTemplate
in interfaceNodeTypeManager
- Overrides:
createNodeTypeTemplate
in classReadOnlyNodeTypeManager
- Returns:
- A
NodeTypeTemplate
.
-
createNodeTypeTemplate
public NodeTypeTemplate createNodeTypeTemplate(NodeTypeDefinition ntd) throws ConstraintViolationException
Description copied from interface:NodeTypeManager
Returns aNodeTypeTemplate
holding the specified node type definition. This template can then be altered and passed toNodeTypeManager.registerNodeType
.- Specified by:
createNodeTypeTemplate
in interfaceNodeTypeManager
- Overrides:
createNodeTypeTemplate
in classReadOnlyNodeTypeManager
- Parameters:
ntd
- aNodeTypeDefinition
.- Returns:
- A
NodeTypeTemplate
. - Throws:
ConstraintViolationException
-
createNodeDefinitionTemplate
public NodeDefinitionTemplate createNodeDefinitionTemplate()
Description copied from interface:NodeTypeManager
Returns an emptyNodeDefinitionTemplate
which can then be used to create a child node definition and attached to aNodeTypeTemplate
.- Specified by:
createNodeDefinitionTemplate
in interfaceNodeTypeManager
- Overrides:
createNodeDefinitionTemplate
in classReadOnlyNodeTypeManager
- Returns:
- A
NodeDefinitionTemplate
.
-
createPropertyDefinitionTemplate
public PropertyDefinitionTemplate createPropertyDefinitionTemplate()
Description copied from interface:NodeTypeManager
Returns an emptyPropertyDefinitionTemplate
which can then be used to create a property definition and attached to aNodeTypeTemplate
.- Specified by:
createPropertyDefinitionTemplate
in interfaceNodeTypeManager
- Overrides:
createPropertyDefinitionTemplate
in classReadOnlyNodeTypeManager
- Returns:
- A
PropertyDefinitionTemplate
.
-
registerNodeType
public NodeType registerNodeType(NodeTypeDefinition ntd, boolean allowUpdate) throws RepositoryException
Description copied from class:ReadOnlyNodeTypeManager
This implementation always throws aUnsupportedRepositoryOperationException
.- Specified by:
registerNodeType
in interfaceNodeTypeManager
- Overrides:
registerNodeType
in classReadOnlyNodeTypeManager
- Parameters:
ntd
- anNodeTypeDefinition
.allowUpdate
- a boolean- Returns:
- the registered node type
- Throws:
InvalidNodeTypeDefinitionException
- if theNodeTypeDefinition
is invalid.NodeTypeExistsException
- ifallowUpdate
isfalse
and theNodeTypeDefinition
specifies a node type name that is already registered.UnsupportedRepositoryOperationException
- if this implementation does not support node type registration.RepositoryException
- if another error occurs.
-
registerNodeTypes
public final NodeTypeIterator registerNodeTypes(NodeTypeDefinition[] ntds, boolean allowUpdate) throws RepositoryException
Description copied from class:ReadOnlyNodeTypeManager
This implementation always throws aUnsupportedRepositoryOperationException
.- Specified by:
registerNodeTypes
in interfaceNodeTypeManager
- Overrides:
registerNodeTypes
in classReadOnlyNodeTypeManager
- Parameters:
ntds
- a collection ofNodeTypeDefinition
sallowUpdate
- a boolean- Returns:
- the registered node types.
- Throws:
InvalidNodeTypeDefinitionException
- if aNodeTypeDefinition
within theCollection
is invalid or if theCollection
contains an object of a type other thanNodeTypeDefinition
.NodeTypeExistsException
- ifallowUpdate
isfalse
and aNodeTypeDefinition
within theCollection
specifies a node type name that is already registered.UnsupportedRepositoryOperationException
- if this implementation does not support node type registration.RepositoryException
- if another error occurs.
-
unregisterNodeType
public void unregisterNodeType(String name) throws RepositoryException
Description copied from class:ReadOnlyNodeTypeManager
This implementation always throws aUnsupportedRepositoryOperationException
.- Specified by:
unregisterNodeType
in interfaceNodeTypeManager
- Overrides:
unregisterNodeType
in classReadOnlyNodeTypeManager
- Parameters:
name
- aString
.- Throws:
UnsupportedRepositoryOperationException
- if this implementation does not support node type registration.NoSuchNodeTypeException
- if no registered node type exists with the specified name.RepositoryException
- if another error occurs.
-
unregisterNodeTypes
public void unregisterNodeTypes(String[] names) throws RepositoryException
Description copied from class:ReadOnlyNodeTypeManager
This implementation always throws aUnsupportedRepositoryOperationException
.- Specified by:
unregisterNodeTypes
in interfaceNodeTypeManager
- Overrides:
unregisterNodeTypes
in classReadOnlyNodeTypeManager
- Parameters:
names
- aString
array- Throws:
UnsupportedRepositoryOperationException
- if this implementation does not support node type registration.NoSuchNodeTypeException
- if one of the names listed is not a registered node type.RepositoryException
- if another error occurs.
-
-