Class NodeBase
java.lang.Object
org.glassfish.pfl.dynamic.codegen.impl.AttributedObjectBase
org.glassfish.pfl.dynamic.codegen.impl.NodeBase
- All Implemented Interfaces:
AttributedObject,Node,CopyInterceptor
- Direct Known Subclasses:
ExpressionFactory.ExpressionBase,StatementBase
Base class for implementing various kinds of Nodes in the AST.
This mainly supports dynamic attributes. It also supports
dynamic delegation to another node. Dynamic attributes not
found in the current node will automatically be searched for
in the delegate.
- Author:
- Ken Cavanaugh
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAccept the visitor and allow it to perform actions on this Node.<T extends Node>
TMake a deep copy of this node.<T extends Node>
TCopy setting a new parent in the result.final <T extends Node>
TgetAncestor(Class<T> type) Return the first ancestor of this node of the given type, if any.intid()Return the unique ID of this node.final Nodeparent()Return the Node that contains (and created) this Node.final voidSet the parent to a new value.voidpostCopy()voidpreCopy()toString()Methods inherited from class org.glassfish.pfl.dynamic.codegen.impl.AttributedObjectBase
attributes, get, setMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.glassfish.pfl.dynamic.codegen.impl.AttributedObject
attributes, get, set
-
Constructor Details
-
NodeBase
-
-
Method Details
-
preCopy
public void preCopy()- Specified by:
preCopyin interfaceCopyInterceptor- Overrides:
preCopyin classAttributedObjectBase
-
postCopy
public void postCopy()- Specified by:
postCopyin interfaceCopyInterceptor- Overrides:
postCopyin classAttributedObjectBase
-
getAncestor
Description copied from interface:NodeReturn the first ancestor of this node of the given type, if any. Throws IllegalArgumentException if not found.- Specified by:
getAncestorin interfaceNode
-
id
public int id()Description copied from interface:NodeReturn the unique ID of this node. This starts at 1 and is incremented for each new Node that is created. -
parent
Description copied from interface:NodeReturn the Node that contains (and created) this Node. -
parent
Description copied from interface:NodeSet the parent to a new value. Should only be called inside NodeBase. -
copy
Description copied from interface:NodeMake a deep copy of this node. If nn = n.copy(), then n.parent() == nn.parent(), which also means that the parent is NOT copied. -
copy
Description copied from interface:NodeCopy setting a new parent in the result. -
toString
-
accept
Description copied from interface:NodeAccept the visitor and allow it to perform actions on this Node.
-