public final class SourcePath extends Object
Modifier and Type | Method and Description |
---|---|
static SourceElement |
getElement(SourceElement sourceElement,
String path,
boolean acceptEmpty)
Gets a single source element which can be reached from the start element
by a given path.
|
static List<SourceElement> |
getElements(SourceElement sourceElement,
String path)
Gets the elements which can be reached from the start element by a given
path.
|
static List<SourceElement> |
getElementsFromRoot(SourceElement rootElement,
String path)
Gets the elements which can be reached from the root element by a given
path.
|
static List<SourceElement> |
getFollowing(SourceElement sourceElement,
String name)
Returns all the following elements in the child list
of the default parent which appear after this element
with the given name.
|
static Object |
getObject(SourceElement root,
String pathToBase,
SourceElement sourceElement,
String path,
boolean acceptEmpty)
Gets a single source element which can be reached from the start element
by a given path.
|
static String |
getPathAsString(SourceElement sourceElement)
Returns the path from the root element to the source element.
|
static List<SourceElement> |
getPreceding(SourceElement sourceElement,
String name)
Returns all the preceding elements in the child list
of the default parent which appear before this element
with the given name.
|
protected static ListIterator<SourceElement> |
getSiblingIteratorPositionedOnSelf(SourceElement sourceElement,
SourceElement parent)
Returns a ListIterator of the siblings of the input source element.
|
static boolean |
hasChild(SourceElement sourceElement,
String name)
Returns whether children with the given name exist.
|
static boolean |
hasFollowing(SourceElement sourceElement)
Returns whether a following element exists as a child of the parent of
this element.
|
static boolean |
hasFollowingSibling(SourceElement sourceElement)
Returns whether a following element exists as a child of the parent of
this element, which has the same name as this source element.
|
static boolean |
hasPreceding(SourceElement sourceElement)
Returns whether an preceding exists as a child of the parent of
this element.
|
static boolean |
hasPrecedingSibling(SourceElement sourceElement)
Returns whether an preceding exists as a child of the parent of
this element, which has the same name as this source element.
|
static Iterator<SourcePathPointer> |
iteratePointer(Object root,
String pathToBase,
Object base,
String path)
Gets the elements which can be reached from the start element by a given
path.
|
public static boolean hasChild(SourceElement sourceElement, String name)
sourceElement
- the start element, not null.name
- the name of the child element, not null.NullPointerException
- if name is null.public static boolean hasFollowing(SourceElement sourceElement)
sourceElement
- the start element, not null.public static boolean hasPreceding(SourceElement sourceElement)
sourceElement
- the start element, not null.public static boolean hasFollowingSibling(SourceElement sourceElement)
sourceElement
- the start element, not null.public static boolean hasPrecedingSibling(SourceElement sourceElement)
sourceElement
- the start element, not null.public static List<SourceElement> getPreceding(SourceElement sourceElement, String name)
sourceElement
- the start element, not null.name
- the name of the preceding elements to select,
or null to select all preceding elements.public static List<SourceElement> getFollowing(SourceElement sourceElement, String name)
sourceElement
- the start element, not null.name
- the name of the following elements to select,
or null to select all following elements.protected static ListIterator<SourceElement> getSiblingIteratorPositionedOnSelf(SourceElement sourceElement, SourceElement parent)
sourceElement
- the source element for which the sibling iterator
should be created, not null.parent
- the parent for the source element.IllegalArgumentException
- if the element cannot be found in the
list of children of its parent.public static Iterator<SourcePathPointer> iteratePointer(Object root, String pathToBase, Object base, String path)
root
- the model root, or null if no model root exists
(in the latter case, no elements only reachable via base's parent
can be accessed)pathToBase
- the path from root to base, must be not null
if root is not null, is disregarded if root is null.base
- the base object, not null.path
- the path to use, or null (which refers base).public static List<SourceElement> getElements(SourceElement sourceElement, String path)
sourceElement
- the start element, not null.path
- the path to use, not null.public static List<SourceElement> getElementsFromRoot(SourceElement rootElement, String path)
rootElement
- the root element of the source tree, not null.path
- the path to use, null selects the root element.public static Object getObject(SourceElement root, String pathToBase, SourceElement sourceElement, String path, boolean acceptEmpty) throws GeneratorException
root
- the model root, or null if no model root exists
(in the latter case, no elements only reachable via base's parent
can be accessed)pathToBase
- the path from root to base, must be not null
if root is not null, is disregarded if root is null.sourceElement
- the start element, not null.path
- the path to use, not null.acceptEmpty
- whether no match is an error(acceptEmpty=false)
or not (acceptEmpty=true)GeneratorException
- if more than one source element matches,
or if no source element matches and acceptEmpty=falsepublic static SourceElement getElement(SourceElement sourceElement, String path, boolean acceptEmpty) throws GeneratorException
sourceElement
- the start element, not null.path
- the path to use, not null.acceptEmpty
- whether no match is an error(acceptEmpty=false)
or not (acceptEmpty=true)GeneratorException
- if more than one source element matches,
or if no source element matches and acceptEmpty=falsepublic static String getPathAsString(SourceElement sourceElement) throws GeneratorException
sourceElement
- the element to output, not null.GeneratorException
- if the parent chain contains a closed loop.Copyright © 2000–2020 The Apache Software Foundation. All rights reserved.