public class ChildrenCollectorFilter extends TraversingItemVisitor.Default
ChildrenCollectorFilter is a utility class
which can be used to 'collect' child items of a
node whose names match a certain pattern. It implements the
ItemVisitor interface.TraversingItemVisitor.DefaultbreadthFirst, maxLevel| Constructor and Description |
|---|
ChildrenCollectorFilter(String[] nameGlobs,
Collection<Item> children,
boolean collectNodes,
boolean collectProperties,
int maxLevel)
Constructs a
ChildrenCollectorFilter |
ChildrenCollectorFilter(String namePattern,
Collection<Item> children,
boolean collectNodes,
boolean collectProperties,
int maxLevel)
Constructs a
ChildrenCollectorFilter |
| Modifier and Type | Method and Description |
|---|---|
static NodeIterator |
collectChildNodes(Node node,
String namePattern) |
static NodeIterator |
collectChildNodes(Node node,
String[] nameGlobs) |
static PropertyIterator |
collectProperties(Node node,
String namePattern) |
static PropertyIterator |
collectProperties(Node node,
String[] nameGlobs) |
protected void |
entering(Node node,
int level) |
protected void |
entering(Property property,
int level) |
static boolean |
matches(String name,
String pattern)
Matches the name pattern against the specified name.
|
static boolean |
matches(String name,
String[] nameGlobs)
Matches the
nameGlob strings in the passed array against
the specified name. |
leaving, leavingvisit, visitpublic ChildrenCollectorFilter(String namePattern, Collection<Item> children, boolean collectNodes, boolean collectProperties, int maxLevel)
ChildrenCollectorFilternamePattern - the pattern which should be applied to the names
of the childrenchildren - where the matching children should be addedcollectNodes - true, if child nodes should be collected; otherwise falsecollectProperties - true, if child properties should be collected; otherwise falsemaxLevel - number of hierarchy levels to traverse
(e.g. 1 for direct children only, 2 for children and their children, and so on)public ChildrenCollectorFilter(String[] nameGlobs, Collection<Item> children, boolean collectNodes, boolean collectProperties, int maxLevel)
ChildrenCollectorFilternameGlobs - an array of globbing strings which should be
applied to the names of the childrenchildren - where the matching children should be addedcollectNodes - true, if child nodes should be collected; otherwise falsecollectProperties - true, if child properties should be collected; otherwise falsemaxLevel - number of hierarchy levels to traverse
(e.g. 1 for direct children only, 2 for children and their children, and so on)public static NodeIterator collectChildNodes(Node node, String namePattern) throws RepositoryException
RepositoryExceptionpublic static NodeIterator collectChildNodes(Node node, String[] nameGlobs) throws RepositoryException
RepositoryExceptionpublic static PropertyIterator collectProperties(Node node, String namePattern) throws RepositoryException
RepositoryExceptionpublic static PropertyIterator collectProperties(Node node, String[] nameGlobs) throws RepositoryException
RepositoryExceptionprotected void entering(Node node, int level) throws RepositoryException
entering in class TraversingItemVisitor.DefaultRepositoryExceptionprotected void entering(Property property, int level) throws RepositoryException
entering in class TraversingItemVisitor.DefaultRepositoryExceptionpublic static boolean matches(String name, String pattern)
"jcr:*|foo:bar"
would match
"foo:bar", but also "jcr:whatever".
The EBNF for pattern is:
namePattern ::= disjunct {'|' disjunct}
disjunct ::= name [':' name]
name ::= '*' |
['*'] fragment {'*' fragment}['*']
fragment ::= char {char}
char ::= nonspace | ' '
nonspace ::= (* Any Unicode character except:
'/', ':', '[', ']', '*',
''', '"', '|' or any whitespace
character *)
Note that leading and trailing whitespace around a pattern is ignored.name - the name to test the pattern withpattern - the pattern to be matched against the nameNode.getNodes(String)public static boolean matches(String name, String[] nameGlobs)
nameGlob strings in the passed array against
the specified name.
A glob may be a full name or a partial name with one or more
wildcard characters ("*").
Note that unlike in the case of the matches(String, String)
leading and trailing whitespace around a glob is not ignored.
name - the name to test the pattern withnameGlobs - an array of globbing stringsNode.getNodes(String[])Copyright © 2004-2011 The Apache Software Foundation. All Rights Reserved.