public final class MsgPlaceholderNode extends AbstractParentSoyNode<SoyNode.StandaloneNode> implements SoyNode.MsgSubstUnitNode
Important: Do not use outside of Soy code (treat as superpackage-private).
Note: there is no guarantee that the child of this node is a
SoyNode.MsgPlaceholderInitialNode, the optimizer may inline and replace constant
placeholders as RawTextNodes.
SoyNode.BlockCommandNode, SoyNode.BlockNode, SoyNode.CommandNode, SoyNode.ConditionalBlockNode, SoyNode.ExprHolderNode, SoyNode.Kind, SoyNode.LocalVarBlockNode, SoyNode.LocalVarInlineNode, SoyNode.LocalVarNode, SoyNode.LoopNode, SoyNode.MsgBlockNode, SoyNode.MsgPlaceholderInitialNode, SoyNode.MsgSubstUnitNode, SoyNode.ParentSoyNode<N extends SoyNode>, SoyNode.RenderUnitNode, SoyNode.SplitLevelTopNode<N extends SoyNode>, SoyNode.StandaloneNode, SoyNode.StatementNodeSPACES| Constructor and Description |
|---|
MsgPlaceholderNode(int id,
SoyNode.MsgPlaceholderInitialNode initialNode) |
| Modifier and Type | Method and Description |
|---|---|
MsgPlaceholderNode |
copy(CopyState copyState)
Copies this node.
|
String |
getBaseVarName()
Returns the base placeholder name (what the translator sees).
|
SoyNode.Kind |
getKind()
Returns this node's kind (corresponding to this node's specific type).
|
SoyNode.MsgBlockNode |
getParent()
Gets this node's parent.
|
boolean |
shouldUseSameVarNameAs(SoyNode.MsgSubstUnitNode other)
Returns whether this node and the given other node are the same, such that they should be
represented by the same placeholder.
|
String |
toSourceString()
Builds a Soy source string that could be the source for this node.
|
addChild, addChild, addChildren, addChildren, appendSourceStringForChildren, clearChildren, getChild, getChildIndex, getChildren, numChildren, removeChild, removeChild, replaceChild, replaceChildgetId, getSourceLocation, setId, toStringcouldHaveSyntaxVersionAtLeast, equals, getNearestAncestor, getSyntaxVersionUpperBound, hasAncestor, hashCode, maybeSetSyntaxVersionUpperBound, setParentclone, finalize, getClass, notify, notifyAll, wait, wait, waitcouldHaveSyntaxVersionAtLeast, getNearestAncestor, getSourceLocation, getSyntaxVersionUpperBound, hasAncestor, maybeSetSyntaxVersionUpperBound, setParentaddChild, addChild, addChildren, addChildren, appendSourceStringForChildren, clearChildren, getChild, getChildIndex, getChildren, numChildren, removeChild, removeChild, replaceChild, replaceChildpublic MsgPlaceholderNode(int id,
SoyNode.MsgPlaceholderInitialNode initialNode)
id - The id for this node.initialNode - Will be set as the only child of this node being created. The child is
the node that represents the content of this placeholder. It is called the initial node
because it may be modified/replaced later by compiler passes.public SoyNode.Kind getKind()
SoyNodepublic String getBaseVarName()
getBaseVarName in interface SoyNode.MsgSubstUnitNodepublic boolean shouldUseSameVarNameAs(SoyNode.MsgSubstUnitNode other)
shouldUseSameVarNameAs in interface SoyNode.MsgSubstUnitNodeother - The other substitution unit to check against.public String toSourceString()
NodetoSourceString in interface Nodepublic SoyNode.MsgBlockNode getParent()
NodegetParent in interface NodegetParent in interface SoyNodegetParent in interface SoyNode.MsgSubstUnitNodegetParent in interface SoyNode.StandaloneNodegetParent in class AbstractSoyNodepublic MsgPlaceholderNode copy(CopyState copyState)
SoyNodeAll copy() overrides should follow this contract:
{@literal @}Override public T copy(CopyState copyState) {
return new T(this, copyState);
}
TODO(lukes): The usecases for a copy method are few and far between. Making the AST nodes immutable (or at least unmodifiable) would be preferable to maintaining our copy() methods.
Don't clone nodes unless you know what you're doing. The Soy AST is not actually a tree (it contains back edges from variables to their definitions), and naively copying nodes can result in pointers into stale ASTs
The copied nodes will have the same ids as the original nodes. If you need to copy a
subtree with new ids assigned to the copied nodes, use SoytreeUtils.cloneWithNewIds(T, com.google.template.soy.base.internal.IdGenerator).