public final class HtmlAttributeNode extends AbstractParentSoyNode<SoyNode.StandaloneNode> implements SoyNode.StandaloneNode
TODO(lukes): consider adding more structure, possibly splitting into 2 nodes for when we have a single attribute or a dynamic attribute (which may print 0-N attributes dynamically).
SoyNode.BlockCommandNode, SoyNode.BlockNode, SoyNode.CommandNode, SoyNode.ConditionalBlockNode, SoyNode.ExprHolderNode, SoyNode.Kind, SoyNode.LocalVarBlockNode, SoyNode.LocalVarInlineNode, SoyNode.LocalVarNode, SoyNode.MsgBlockNode, SoyNode.MsgPlaceholderInitialNode, SoyNode.MsgSubstUnitNode, SoyNode.ParentSoyNode<N extends SoyNode>, SoyNode.RenderUnitNode, SoyNode.SplitLevelTopNode<N extends SoyNode>, SoyNode.StandaloneNode, SoyNode.StatementNode| Constructor and Description |
|---|
HtmlAttributeNode(int id,
SourceLocation location,
SourceLocation.Point equalsSignLocation) |
| Modifier and Type | Method and Description |
|---|---|
SoyNode |
copy(CopyState copyState)
Copies this node.
|
boolean |
definitelyMatchesAttributeName(String attributeName)
Returns
true if the attribute name is static and matches the given name (ignoring
case). |
SourceLocation |
getEqualsLocation() |
SoyNode.Kind |
getKind()
Returns this node's kind (corresponding to this node's specific type).
|
SoyNode.ParentSoyNode<SoyNode.StandaloneNode> |
getParent()
Gets this node's parent.
|
boolean |
hasValue() |
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, setParentpublic HtmlAttributeNode(int id,
SourceLocation location,
@Nullable
SourceLocation.Point equalsSignLocation)
public boolean hasValue()
public SourceLocation getEqualsLocation()
public boolean definitelyMatchesAttributeName(String attributeName)
true if the attribute name is static and matches the given name (ignoring
case).public SoyNode.Kind getKind()
SoyNodepublic SoyNode 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()
NodeNote: Some nodes do not have a direct mapping to Soy source (such as nodes created during some optimization passes). Thus this method may not always be supported.
toSourceString in interface Nodepublic SoyNode.ParentSoyNode<SoyNode.StandaloneNode> getParent()
NodegetParent in interface NodegetParent in interface SoyNodegetParent in interface SoyNode.StandaloneNodegetParent in class AbstractSoyNode