public abstract class AbstractNode extends java.lang.Object implements INode, BidiTreeIterable<INode>
| Constructor and Description |
|---|
AbstractNode() |
| Modifier and Type | Method and Description |
|---|---|
protected java.lang.Object |
basicGetGrammarElement() |
protected int |
basicGetLineOfOffset(INode rootNode,
int offset) |
protected AbstractNode |
basicGetNextSibling() |
protected CompositeNode |
basicGetParent() |
protected AbstractNode |
basicGetPreviousSibling() |
protected org.eclipse.emf.ecore.EObject |
basicGetSemanticElement() |
protected boolean |
basicHasNextSibling() |
protected boolean |
basicHasPreviousSibling() |
protected boolean |
basicHasSiblings() |
BidiTreeIterator<AbstractNode> |
basicIterator() |
protected void |
basicSetGrammarElement(java.lang.Object grammarElementOrArray) |
protected void |
basicSetNextSibling(AbstractNode next) |
protected void |
basicSetParent(CompositeNode parent) |
protected void |
basicSetPreviousSibling(AbstractNode prev) |
BidiTreeIterable<INode> |
getAsTreeIterable()
Returns a tree iterable that uses this node as its origin and root instance.
|
int |
getEndLine()
Returns the line number relative to the complete input where the node ends
(one based, excluding hidden tokens).
|
org.eclipse.emf.ecore.EObject |
getGrammarElement()
Returns the grammar element that created this node.
|
java.lang.Iterable<ILeafNode> |
getLeafNodes()
Returns an iterable for all contained leaf nodes.
|
int |
getLength()
Returns the length of this node excluding hidden tokens.
|
INode |
getNextSibling()
Returns the next sibling or
null. |
int |
getOffset()
Returns the offset of this node excluding hidden tokens.
|
ICompositeNode |
getParent()
Returns the parent of the node or
null if and only if this is the root node. |
INode |
getPreviousSibling()
Returns the previous sibling or
null. |
ICompositeNode |
getRootNode()
Returns the root node of this parse tree.
|
org.eclipse.emf.ecore.EObject |
getSemanticElement()
Returns the nearest semantic object that is associated with the subtree of this node.
|
int |
getStartLine()
Returns the line number relative to the complete input where the node begins
(one based, excluding hidden tokens).
|
SyntaxErrorMessage |
getSyntaxErrorMessage()
Returns the directly associated syntax error message or
null if none. |
java.lang.String |
getText()
Returns the parsed text that is covered by this node (including hidden tokens).
|
int |
getTotalEndLine()
Returns the line number relative to the complete input where the node ends
(one based, including hidden tokens).
|
int |
getTotalEndOffset()
Returns the end offset (exclusive) of this node including hidden tokens.
|
int |
getTotalStartLine()
Returns the line number relative to the complete input where the node begins
(one based, including hidden tokens).
|
boolean |
hasDirectSemanticElement()
Returns
true if this node as a directly associated semantic element. |
boolean |
hasNextSibling()
Returns
true if this node is not the last child of its parent. |
boolean |
hasPreviousSibling()
Returns
true if this node is not the first child of its parent. |
boolean |
hasSiblings()
Returns
true if this node has any siblings. |
BidiTreeIterator<INode> |
iterator()
Returns a tree iterator that can be used forwards and backwards.
|
BidiTreeIterable<INode> |
reverse()
Returns a reverse version of this iterable that can be used
forwards and backwards.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetTotalLength, getTotalOffsetpublic ICompositeNode getParent()
INodenull if and only if this is the root node.protected CompositeNode basicGetParent()
protected void basicSetParent(CompositeNode parent)
public BidiTreeIterable<INode> getAsTreeIterable()
INodeBidiTreeIterator.previous()
or BidiTreeIterator.next() will be this instance.getAsTreeIterable in interface INodepublic BidiTreeIterator<INode> iterator()
BidiTreeIterableiterator in interface java.lang.Iterable<INode>iterator in interface BidiIterable<INode>iterator in interface BidiTreeIterable<INode>null.public BidiTreeIterable<INode> reverse()
BidiTreeIterableReturns a reverse version of this iterable that can be used
forwards and backwards. In other words, an iterator provided by
the reverse iterable will delegate its hasNext()
and next() invocations to
BidiIterator.hasPrevious() and BidiIterator.previous()
respectively.
This allows clients to iterate backwards by means of the enhanced for-loop:
for(T t: iterable.reverse()) {
// do something with t
}
reverse in interface BidiIterable<INode>reverse in interface BidiTreeIterable<INode>null.public java.lang.Iterable<ILeafNode> getLeafNodes()
INodenull.getLeafNodes in interface INodenull.public BidiTreeIterator<AbstractNode> basicIterator()
public java.lang.String getText()
INodenull
but may be empty.public int getTotalStartLine()
INodegetTotalStartLine in interface INodeprotected int basicGetLineOfOffset(INode rootNode, int offset)
public int getStartLine()
INodegetStartLine in interface INodepublic int getEndLine()
INodegetEndLine in interface INodepublic int getTotalEndLine()
INodegetTotalEndLine in interface INodepublic int getOffset()
INodepublic int getLength()
INodepublic int getTotalEndOffset()
INodeoffset + length
but may be more efficient.getTotalEndOffset in interface INodepublic ICompositeNode getRootNode()
INodenull in a consistent tree.getRootNode in interface INodenull in a consistent tree.public org.eclipse.emf.ecore.EObject getSemanticElement()
INodenull whenever
the parser refused to create any objects due to unrecoverable errors. Implementations will usually walk up the
node tree to find the semantic object. As the node model structure does not reflect the containment structure of
the semantic object graph, clients should usually use the utilities in
NodeModelUtils to
obtain the semantic instance.getSemanticElement in interface INodenull.INode.hasDirectSemanticElement(),
NodeModelUtils.findActualSemanticObjectFor(INode)protected org.eclipse.emf.ecore.EObject basicGetSemanticElement()
public boolean hasDirectSemanticElement()
INodetrue if this node as a directly associated semantic element.hasDirectSemanticElement in interface INodetrue if this node as a directly associated semantic element.INode.getSemanticElement()public org.eclipse.emf.ecore.EObject getGrammarElement()
INodenull in case of unrecoverable syntax
errors. This happens usually when a keyword occurred at an unexpected offset.getGrammarElement in interface INodenull.protected java.lang.Object basicGetGrammarElement()
protected void basicSetGrammarElement(java.lang.Object grammarElementOrArray)
public SyntaxErrorMessage getSyntaxErrorMessage()
INodenull if none.getSyntaxErrorMessage in interface INodenull.public INode getPreviousSibling()
INodenull. The result has the same parent
as this node if it is not null.getPreviousSibling in interface INodenull.INode.hasPreviousSibling(),
INode.hasSiblings()protected AbstractNode basicGetPreviousSibling()
protected void basicSetPreviousSibling(AbstractNode prev)
public INode getNextSibling()
INodegetNextSibling in interface INodenull.INode.hasNextSibling(),
INode.hasSiblings()protected AbstractNode basicGetNextSibling()
protected void basicSetNextSibling(AbstractNode next)
public boolean hasPreviousSibling()
INodetrue if this node is not the first child of its parent.hasPreviousSibling in interface INodetrue if this node has a previous sibling thus INode.getPreviousSibling() will
not return null.protected boolean basicHasPreviousSibling()
public boolean hasNextSibling()
INodetrue if this node is not the last child of its parent.hasNextSibling in interface INodetrue if this node has a next sibling thus INode.getNextSibling() will
not return null.protected boolean basicHasNextSibling()
public boolean hasSiblings()
INodetrue if this node has any siblings.hasSiblings in interface INodetrue if this node has any siblings.INode.hasPreviousSibling(),
INode.hasNextSibling()protected boolean basicHasSiblings()