public final class ExprRootNode extends AbstractParentExprNode
Important: Do not use outside of Soy code (treat as superpackage-private).
This node should always have exactly one child.
ExprNode.ConstantNode, ExprNode.Kind, ExprNode.OperatorNode, ExprNode.ParentExprNode, ExprNode.PrimitiveNodeSPACES| Constructor and Description |
|---|
ExprRootNode(ExprNode child)
Creates a new instance with the given node as the child.
|
| Modifier and Type | Method and Description |
|---|---|
ExprRootNode |
clone()
Copies this node.
|
ExprNode |
getChild(int index)
Gets the child at the given index.
|
ExprNode.Kind |
getKind()
Gets this node's kind (corresponding to this node's specific type).
|
String |
toSourceString()
Builds a Soy source string that could be the source for this node.
|
static List<ExprNode> |
unwrap(Iterable<ExprRootNode> exprs) |
static List<ExprRootNode> |
wrap(Iterable<? extends ExprNode> exprs) |
addChild, addChild, addChildren, addChildren, appendSourceStringForChildren, appendTreeStringForChildren, clearChildren, getChildIndex, getChildren, getType, numChildren, removeChild, removeChild, replaceChild, replaceChild, setType, toTreeStringgetParent, getSourceLocationcouldHaveSyntaxVersionAtLeast, getNearestAncestor, getSyntaxVersionBound, hasAncestor, maybeSetSyntaxVersionBound, setParent, toStringequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcouldHaveSyntaxVersionAtLeast, getNearestAncestor, getSourceLocation, getSyntaxVersionBound, hasAncestor, maybeSetSyntaxVersionBound, setParentpublic ExprRootNode(ExprNode child)
child - The child to add to the new node.public static List<ExprNode> unwrap(Iterable<ExprRootNode> exprs)
public static List<ExprRootNode> wrap(Iterable<? extends ExprNode> exprs)
public ExprNode.Kind getKind()
ExprNodepublic ExprNode getChild(int index)
ParentNodegetChild in interface ParentNode<ExprNode>getChild in class AbstractParentExprNodeindex - The index of the child to get.public String toSourceString()
Nodepublic ExprRootNode clone()
NodeAll clone() overrides should follow this contract:
{@literal @}Override public T clone() {
return new T(this);
}
NOTE: this means we do not ultimately delegate to Object.clone(), ever.
TODO(lukes): The usecases for a clone method are few and far between. Making the AST nodes immutable (or at least unmodifiable) would be preferable to maintaining our clone() methods.