public final class StringNode extends AbstractExprNode
Important: Do not use outside of Soy code (treat as superpackage-private).
ExprNode.ConstantNode, ExprNode.Kind, ExprNode.OperatorNode, ExprNode.ParentExprNode, ExprNode.PrimitiveNodeSPACES| Constructor and Description |
|---|
StringNode(String value,
SourceLocation sourceLocation) |
| Modifier and Type | Method and Description |
|---|---|
StringNode |
clone()
Copies this node.
|
ExprNode.Kind |
getKind()
Gets this node's kind (corresponding to this node's specific type).
|
SoyType |
getType()
Gets the data type of this node.
|
String |
getValue()
Returns the string value.
|
String |
toSourceString()
Equivalent to
toSourceString(false). |
String |
toSourceString(boolean escapeToAscii)
Builds a Soy string literal for this string value (including the surrounding single quotes).
|
getParent, getSourceLocationcouldHaveSyntaxVersionAtLeast, getNearestAncestor, getSyntaxVersionBound, hasAncestor, maybeSetSyntaxVersionBound, setParent, toString, toTreeStringequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcouldHaveSyntaxVersionAtLeast, getNearestAncestor, getSourceLocation, getSyntaxVersionBound, hasAncestor, maybeSetSyntaxVersionBound, setParent, toTreeStringpublic StringNode(String value, SourceLocation sourceLocation)
value - The string value.sourceLocation - The node's source location.public ExprNode.Kind getKind()
ExprNodepublic SoyType getType()
ExprNodepublic String getValue()
public String toSourceString()
toSourceString(false).
Builds a Soy source string that could be the source for this node. Note that this is not the
actual original source string, but a (sort of) canonical equivalent.
Note: 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.public String toSourceString(boolean escapeToAscii)
escapeToAscii - Whether to escape non-ASCII characters as Unicode hex escapes
(backslash + 'u' + 4 hex digits).public StringNode 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.