Class TreeUtil
- java.lang.Object
-
- org.apache.jackrabbit.oak.plugins.tree.TreeUtil
-
public final class TreeUtil extends java.lang.Object
Utility providing common operations for theTree
that are not provided by the API.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static @NotNull Tree
addChild(@NotNull Tree tree, @NotNull java.lang.String childName, @NotNull java.lang.String primaryTypeName)
Adds a new child tree with the given name and primary type name.static Tree
addChild(@NotNull Tree parent, @NotNull java.lang.String name, @Nullable java.lang.String typeName, @NotNull Tree typeRoot, @Nullable java.lang.String userID)
static void
addMixin(@NotNull Tree tree, @NotNull java.lang.String mixinName, @NotNull Tree typeRoot, @Nullable java.lang.String userID)
static void
autoCreateItems(@NotNull Tree tree, @NotNull Tree type, @NotNull Tree typeRoot, @Nullable java.lang.String userID)
static PropertyState
autoCreateProperty(@NotNull java.lang.String name, @NotNull Tree definition, @Nullable java.lang.String userID)
static java.lang.String
findDefaultPrimaryType(Tree definitions, boolean sns)
static boolean
getBoolean(@NotNull Tree tree, @NotNull java.lang.String propertyName)
Returns the boolean representation of the property with the specifiedpropertyName
.static java.lang.String
getDefaultChildType(Tree typeRoot, Tree parent, java.lang.String childName)
Finds the default primary type for a new child node with the given name.static java.util.List<Tree>
getEffectiveType(Tree tree, Tree typeRoot)
Returns the effective node types of the given node.static long
getLong(@NotNull Tree tree, @NotNull java.lang.String name, long defaultValue)
static @NotNull java.lang.Iterable<java.lang.String>
getMixinTypeNames(@NotNull Tree tree)
static @NotNull java.lang.Iterable<java.lang.String>
getMixinTypeNames(@NotNull Tree tree, @NotNull LazyValue<Tree> readOnlyTree)
static @Nullable java.lang.String
getName(@NotNull Tree tree, @NotNull java.lang.String name)
static @NotNull java.lang.Iterable<java.lang.String>
getNames(@NotNull Tree tree, @NotNull java.lang.String name)
static @NotNull Tree
getOrAddChild(@NotNull Tree tree, @NotNull java.lang.String childName, @NotNull java.lang.String primaryTypeName)
Combination ofTree.getChild(String)
and adding a child including its jcr:primaryType property (i.e.static @Nullable java.lang.String
getPrimaryTypeName(@NotNull Tree tree)
static @Nullable java.lang.String
getPrimaryTypeName(@NotNull Tree tree, @NotNull LazyValue<Tree> readOnlyTree)
static @Nullable java.lang.String
getString(@NotNull Tree tree, @NotNull java.lang.String propertyName)
static @Nullable java.lang.String
getString(@NotNull Tree tree, @NotNull java.lang.String name, @Nullable java.lang.String defaultValue)
static @Nullable java.lang.Iterable<java.lang.String>
getStrings(@NotNull Tree tree, @NotNull java.lang.String propertyName)
static @Nullable Tree
getTree(@NotNull Tree tree, @NotNull java.lang.String path)
Return the possibly non existing tree located at the passedpath
from the location of the starttree
ornull
ifpath
results in a parent of the root.static boolean
isNodeType(Tree tree, java.lang.String typeName, Tree typeRoot)
static boolean
isReadOnlyTree(@NotNull Tree tree)
Returnstrue
if the specifiedtree
is a read-only tree..
-
-
-
Method Detail
-
getPrimaryTypeName
@Nullable public static @Nullable java.lang.String getPrimaryTypeName(@NotNull @NotNull Tree tree)
-
getPrimaryTypeName
@Nullable public static @Nullable java.lang.String getPrimaryTypeName(@NotNull @NotNull Tree tree, @NotNull @NotNull LazyValue<Tree> readOnlyTree)
-
getMixinTypeNames
@NotNull public static @NotNull java.lang.Iterable<java.lang.String> getMixinTypeNames(@NotNull @NotNull Tree tree)
-
getMixinTypeNames
@NotNull public static @NotNull java.lang.Iterable<java.lang.String> getMixinTypeNames(@NotNull @NotNull Tree tree, @NotNull @NotNull LazyValue<Tree> readOnlyTree)
-
getStrings
@Nullable public static @Nullable java.lang.Iterable<java.lang.String> getStrings(@NotNull @NotNull Tree tree, @NotNull @NotNull java.lang.String propertyName)
-
getString
@Nullable public static @Nullable java.lang.String getString(@NotNull @NotNull Tree tree, @NotNull @NotNull java.lang.String propertyName)
-
getString
@Nullable public static @Nullable java.lang.String getString(@NotNull @NotNull Tree tree, @NotNull @NotNull java.lang.String name, @Nullable @Nullable java.lang.String defaultValue)
-
getBoolean
public static boolean getBoolean(@NotNull @NotNull Tree tree, @NotNull @NotNull java.lang.String propertyName)
Returns the boolean representation of the property with the specifiedpropertyName
. If the property does not exist oris an array
this method returnsfalse
.- Parameters:
tree
- The target tree.propertyName
- The name of the property.- Returns:
- the boolean representation of the property state with the given
name. This utility returns
false
if the property does not exist or is an multivalued property.
-
getName
@Nullable public static @Nullable java.lang.String getName(@NotNull @NotNull Tree tree, @NotNull @NotNull java.lang.String name)
-
getNames
@NotNull public static @NotNull java.lang.Iterable<java.lang.String> getNames(@NotNull @NotNull Tree tree, @NotNull @NotNull java.lang.String name)
-
getLong
public static long getLong(@NotNull @NotNull Tree tree, @NotNull @NotNull java.lang.String name, long defaultValue)
-
getTree
@Nullable public static @Nullable Tree getTree(@NotNull @NotNull Tree tree, @NotNull @NotNull java.lang.String path)
Return the possibly non existing tree located at the passedpath
from the location of the starttree
ornull
ifpath
results in a parent of the root.- Parameters:
tree
- start treepath
- path from the start tree- Returns:
- tree located at
path
fromstart
ornull
-
addChild
public static Tree addChild(@NotNull @NotNull Tree parent, @NotNull @NotNull java.lang.String name, @Nullable @Nullable java.lang.String typeName, @NotNull @NotNull Tree typeRoot, @Nullable @Nullable java.lang.String userID) throws RepositoryException
- Throws:
RepositoryException
-
addChild
@NotNull public static @NotNull Tree addChild(@NotNull @NotNull Tree tree, @NotNull @NotNull java.lang.String childName, @NotNull @NotNull java.lang.String primaryTypeName) throws AccessDeniedException
Adds a new child tree with the given name and primary type name. This method is a shortcut for callingTree.addChild(String)
andTree.setProperty(String, Object, org.apache.jackrabbit.oak.api.Type)
where the property name isJcrConstants.JCR_PRIMARYTYPE
. Note, that this method in addition verifies if the created tree exists and is accessible in order to avoidIllegalStateException
upon subsequent modification of the new child.- Parameters:
childName
- The Oak name of the child item.primaryTypeName
- The Oak name of the primary node type.- Returns:
- The new child tree with the specified name and primary type.
- Throws:
AccessDeniedException
- If the child does not exist after creation.
-
getOrAddChild
@NotNull public static @NotNull Tree getOrAddChild(@NotNull @NotNull Tree tree, @NotNull @NotNull java.lang.String childName, @NotNull @NotNull java.lang.String primaryTypeName) throws AccessDeniedException
Combination ofTree.getChild(String)
and adding a child including its jcr:primaryType property (i.e.Tree.addChild(String)
andTree.setProperty(PropertyState)
) in case no tree exists with the specified name.- Parameters:
childName
- The Oak name of the child item.primaryTypeName
- The Oak name of the primary node type.- Returns:
- The new child node with the specified name and primary type.
- Throws:
AccessDeniedException
- If the child does not exist after creation.
-
addMixin
public static void addMixin(@NotNull @NotNull Tree tree, @NotNull @NotNull java.lang.String mixinName, @NotNull @NotNull Tree typeRoot, @Nullable @Nullable java.lang.String userID) throws RepositoryException
- Throws:
RepositoryException
-
autoCreateItems
public static void autoCreateItems(@NotNull @NotNull Tree tree, @NotNull @NotNull Tree type, @NotNull @NotNull Tree typeRoot, @Nullable @Nullable java.lang.String userID) throws RepositoryException
- Throws:
RepositoryException
-
autoCreateProperty
public static PropertyState autoCreateProperty(@NotNull @NotNull java.lang.String name, @NotNull @NotNull Tree definition, @Nullable @Nullable java.lang.String userID)
-
getDefaultChildType
public static java.lang.String getDefaultChildType(Tree typeRoot, Tree parent, java.lang.String childName)
Finds the default primary type for a new child node with the given name.- Parameters:
typeRoot
- root of the/jcr:system/jcr:nodeTypes
treeparent
- parent nodechildName
- name of the new child node- Returns:
- name of the default type, or
null
if not available
-
getEffectiveType
public static java.util.List<Tree> getEffectiveType(Tree tree, Tree typeRoot)
Returns the effective node types of the given node.
-
findDefaultPrimaryType
public static java.lang.String findDefaultPrimaryType(Tree definitions, boolean sns)
-
-