public final class MsgPluralNode extends AbstractSoyNode implements SoyNode.MsgSubstUnitNode, SoyNode.SplitLevelTopNode<CaseOrDefaultNode>, SoyNode.ExprHolderNode
Important: Do not use outside of Soy code (treat as superpackage-private).
| Modifier and Type | Class and Description |
|---|---|
static class |
MsgPluralNode.Builder
Builder for
MsgPluralNode. |
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.StatementNode| Modifier and Type | Field and Description |
|---|---|
static String |
FALLBACK_BASE_PLURAL_VAR_NAME
Fallback base plural var name.
|
SPACES| Modifier and Type | Method and Description |
|---|---|
void |
addChild(int index,
N child)
Adds the given child at the given index (shifting existing children if necessary).
|
void |
addChild(N child)
Adds the given child.
|
void |
addChildren(int index,
List<? extends N> children)
Adds the given children at the given index (shifting existing children if necessary).
|
void |
addChildren(List<? extends N> children)
Adds the given children.
|
void |
appendSourceStringForChildren(StringBuilder sb)
Appends the source strings for all the children to the given StringBuilder.
|
protected String |
buildTagStringHelper(boolean isSelfEnding)
Helper to build the source tag string (usually for testing/debugging).
|
protected String |
buildTagStringHelper(boolean isSelfEnding,
boolean isImplicitCommandName)
Helper to build the source tag string (usually for testing/debugging).
|
void |
clearChildren()
Clears the list of children.
|
MsgPluralNode |
copy(CopyState copyState)
Copies this node.
|
List<ExprUnion> |
getAllExprUnions()
Returns the list of expressions in this node.
|
String |
getBaseVarName()
Returns the base plural var name (what the translator sees).
|
N |
getChild(int index)
Gets the child at the given index.
|
int |
getChildIndex(N child)
Finds the index of the given child.
|
List<N> |
getChildren()
Gets the list of children.
|
String |
getCommandName()
May be overridden by subclasses to keep consistent with tree modifications.
|
String |
getCommandText()
May be overridden by subclasses to keep consistent with tree modifications.
|
ExprRootNode |
getExpr()
Returns the parsed expression.
|
String |
getExprText()
Returns the expression text.
|
SoyNode.Kind |
getKind()
Returns this node's kind (corresponding to this node's specific type).
|
int |
getOffset()
Returns the offset.
|
SoyNode.MsgBlockNode |
getParent()
Gets this node's parent.
|
String |
getTagString()
Builds a Soy tag string that could be the Soy tag for this node.
|
int |
numChildren()
Gets the number of children.
|
void |
removeChild(int index)
Removes the child at the given index.
|
void |
removeChild(N child)
Removes the given child.
|
void |
replaceChild(int index,
N newChild)
Replaces the child at the given index with the given new child.
|
void |
replaceChild(N currChild,
N newChild)
Replaces the given current child with the given new child.
|
boolean |
shouldUseSameVarNameAs(SoyNode.MsgSubstUnitNode other)
Returns whether this substitution unit should use the same var name as another substitution
unit.
|
String |
toSourceString()
Builds a Soy source string that could be the source for this node.
|
getId, getSourceLocation, setId, toStringcouldHaveSyntaxVersionAtLeast, equals, getNearestAncestor, getSyntaxVersionUpperBound, hasAncestor, hashCode, maybeSetSyntaxVersionUpperBound, setParentclone, finalize, getClass, notify, notifyAll, wait, wait, waitaddChild, addChild, addChildren, addChildren, appendSourceStringForChildren, clearChildren, getChild, getChildIndex, getChildren, numChildren, removeChild, removeChild, replaceChild, replaceChildcouldHaveSyntaxVersionAtLeast, getNearestAncestor, getSourceLocation, getSyntaxVersionUpperBound, hasAncestor, maybeSetSyntaxVersionUpperBound, setParent, toSourceStringpublic static final String FALLBACK_BASE_PLURAL_VAR_NAME
public SoyNode.Kind getKind()
SoyNodepublic int getOffset()
public String getExprText()
public ExprRootNode getExpr()
public String getBaseVarName()
getBaseVarName in interface SoyNode.MsgSubstUnitNodepublic boolean shouldUseSameVarNameAs(SoyNode.MsgSubstUnitNode other)
SoyNode.MsgSubstUnitNodeshouldUseSameVarNameAs in interface SoyNode.MsgSubstUnitNodeother - The other substitution unit to check against.public List<ExprUnion> getAllExprUnions()
SoyNode.ExprHolderNodegetAllExprUnions in interface SoyNode.ExprHolderNodepublic SoyNode.MsgBlockNode getParent()
NodegetParent in interface NodegetParent in interface SoyNodegetParent in interface SoyNode.MsgSubstUnitNodegetParent in interface SoyNode.StandaloneNodegetParent in class AbstractSoyNodepublic MsgPluralNode 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).
public String toSourceString()
NodetoSourceString in interface Nodepublic int numChildren()
ParentNodenumChildren in interface ParentNode<N extends SoyNode>public N getChild(int index)
ParentNodegetChild in interface ParentNode<N extends SoyNode>index - The index of the child to get.public int getChildIndex(N child)
ParentNodegetChildIndex in interface ParentNode<N extends SoyNode>child - The child to find the index of.public List<N> getChildren()
ParentNodegetChildren in interface ParentNode<N extends SoyNode>public void addChild(N child)
ParentNodeaddChild in interface ParentNode<N extends SoyNode>child - The child to add.public void addChild(int index,
N child)
ParentNodeaddChild in interface ParentNode<N extends SoyNode>index - The index to add the child at.child - The child to add.public void removeChild(int index)
ParentNoderemoveChild in interface ParentNode<N extends SoyNode>index - The index of the child to remove.public void removeChild(N child)
ParentNoderemoveChild in interface ParentNode<N extends SoyNode>child - The child to remove.public void replaceChild(int index,
N newChild)
ParentNodereplaceChild in interface ParentNode<N extends SoyNode>index - The index of the child to replace.newChild - The new child.public void replaceChild(N currChild,
N newChild)
ParentNodereplaceChild in interface ParentNode<N extends SoyNode>currChild - The current child to be replaced.newChild - The new child.public void clearChildren()
ParentNodeclearChildren in interface ParentNode<N extends SoyNode>public void addChildren(List<? extends N> children)
ParentNodeaddChildren in interface ParentNode<N extends SoyNode>children - The children to add.public void addChildren(int index,
List<? extends N> children)
ParentNodeaddChildren in interface ParentNode<N extends SoyNode>index - The index to add the children at.children - The children to add.public void appendSourceStringForChildren(StringBuilder sb)
ParentNodeappendSourceStringForChildren in interface ParentNode<N extends SoyNode>sb - The StringBuilder to which to append the children's source strings.public String getCommandName()
getCommandName in interface SoyNode.CommandNodepublic String getCommandText()
getCommandText in interface SoyNode.CommandNodepublic String getTagString()
SoyNode.CommandNodegetTagString in interface SoyNode.CommandNodeprotected String buildTagStringHelper(boolean isSelfEnding)
isSelfEnding - Whether the tag is self-ending, i.e. { ... /}.protected String buildTagStringHelper(boolean isSelfEnding, boolean isImplicitCommandName)
isSelfEnding - Whether the tag is self-ending, i.e. { ... /}.isImplicitCommandName - Whether the command name is implicit, e.g. a 'print' tag without
the explicit 'print'.