Class StringNode
- java.lang.Object
-
- software.amazon.smithy.model.node.Node
-
- software.amazon.smithy.model.node.StringNode
-
- All Implemented Interfaces:
java.lang.Comparable<StringNode>
,FromSourceLocation
,ToNode
public final class StringNode extends Node implements java.lang.Comparable<StringNode>
Represents a string node.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class software.amazon.smithy.model.node.Node
Node.NonNumericFloat
-
-
Constructor Summary
Constructors Constructor Description StringNode(java.lang.String value, SourceLocation sourceLocation)
Creates a new StringNode.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <R> R
accept(NodeVisitor<R> visitor)
Accepts a visitor with the node.java.util.Optional<ShapeId>
asShapeId()
Gets the value of the string as a ShapeId if it is a valid Shape ID.java.util.Optional<StringNode>
asStringNode()
Gets the node as an StringNode if it is an string.int
compareTo(StringNode o)
static Pair<StringNode,java.util.function.Consumer<java.lang.String>>
createLazyString(java.lang.String placeholder, SourceLocation sourceLocation)
Creates a StringNode that is lazily populated with a value provided by the givenSupplier
.boolean
equals(java.lang.Object other)
java.lang.String
expectOneOf(java.lang.String... validValues)
Gets the string if it is one of the provided valid strings.java.lang.String
expectOneOf(java.util.Collection<java.lang.String> validValues)
Gets the string if it is one of the provided valid strings.ShapeId
expectShapeId()
Expects that the value of the string is a fully-qualified Shape ID.ShapeId
expectShapeId(java.lang.String namespace)
Expects that the value of the string is a Shape ID.StringNode
expectStringNode(java.lang.String errorMessage)
Casts the current node to aStringNode
, throwingExpectationNotMetException
when the node is the wrong type.StringNode
expectStringNode(java.util.function.Supplier<java.lang.String> errorMessage)
Casts the current node to aStringNode
, throwingExpectationNotMetException
when the node is the wrong type.NodeType
getType()
Gets the type of the node.java.lang.String
getValue()
Gets the string value.int
hashCode()
java.lang.String
toString()
-
Methods inherited from class software.amazon.smithy.model.node.Node
arrayNode, arrayNode, asArrayNode, asBooleanNode, asNullNode, asNumberNode, asObjectNode, assertEquals, diff, expectArrayNode, expectArrayNode, expectArrayNode, expectBooleanNode, expectBooleanNode, expectBooleanNode, expectNullNode, expectNullNode, expectNullNode, expectNumberNode, expectNumberNode, expectNumberNode, expectObjectNode, expectObjectNode, expectObjectNode, expectStringNode, from, from, from, from, fromNodes, fromNodes, fromStrings, fromStrings, getSourceLocation, isArrayNode, isBooleanNode, isNullNode, isNumberNode, isObjectNode, isStringNode, loadArrayOfString, nullNode, objectNode, objectNode, objectNodeBuilder, parse, parse, parse, parse, parseJsonWithComments, parseJsonWithComments, prettyPrintJson, prettyPrintJson, printJson, toNode, withDeepSortedKeys, withDeepSortedKeys
-
-
-
-
Constructor Detail
-
StringNode
public StringNode(java.lang.String value, SourceLocation sourceLocation)
Creates a new StringNode.- Parameters:
value
- Immutable value to set.sourceLocation
- Source location of where the node was defined.
-
-
Method Detail
-
createLazyString
public static Pair<StringNode,java.util.function.Consumer<java.lang.String>> createLazyString(java.lang.String placeholder, SourceLocation sourceLocation)
Creates a StringNode that is lazily populated with a value provided by the givenSupplier
.This method is used in the
SmithyModelLoader
class to be able to resolve unquoted strings to the appropriate shape ID. Because this can only be done after an entire model is loaded, setting the resolved value inside of a node needs to be deferred.Lazy string nodes are not thread safe and there's no validation to ensure that the supplier is invoked only once. Their usage should be rare and you should generally try to use an alternative approach.
- Parameters:
placeholder
- Placeholder string to use until the supplier is called.sourceLocation
- Location of where the value was originally defined.- Returns:
- Returns a pair of the string node and the supplier to invoke with the value.
-
accept
public <R> R accept(NodeVisitor<R> visitor)
Description copied from class:Node
Accepts a visitor with the node.
-
expectStringNode
public StringNode expectStringNode(java.lang.String errorMessage)
Description copied from class:Node
Casts the current node to aStringNode
, throwingExpectationNotMetException
when the node is the wrong type.- Overrides:
expectStringNode
in classNode
- Parameters:
errorMessage
- Error message to use if the node is of the wrong type.- Returns:
- Returns a string node.
-
expectStringNode
public StringNode expectStringNode(java.util.function.Supplier<java.lang.String> errorMessage)
Description copied from class:Node
Casts the current node to aStringNode
, throwingExpectationNotMetException
when the node is the wrong type.- Overrides:
expectStringNode
in classNode
- Parameters:
errorMessage
- Error message supplier.- Returns:
- Returns a string node.
-
asStringNode
public java.util.Optional<StringNode> asStringNode()
Description copied from class:Node
Gets the node as an StringNode if it is an string.- Overrides:
asStringNode
in classNode
- Returns:
- Returns the optional StringNode.
-
getValue
public java.lang.String getValue()
Gets the string value.- Returns:
- Returns the string value.
-
expectOneOf
public java.lang.String expectOneOf(java.lang.String... validValues)
Gets the string if it is one of the provided valid strings.- Parameters:
validValues
- A list of valid string values.- Returns:
- The string value.
- Throws:
ExpectationNotMetException
- when the value is not one of the valid strings.
-
expectOneOf
public java.lang.String expectOneOf(java.util.Collection<java.lang.String> validValues)
Gets the string if it is one of the provided valid strings.- Parameters:
validValues
- A list of valid string values.- Returns:
- The string value.
- Throws:
ExpectationNotMetException
- if the value is not in the list.
-
expectShapeId
public ShapeId expectShapeId(java.lang.String namespace)
Expects that the value of the string is a Shape ID.- Parameters:
namespace
- Namespace to use when resolving relative shape IDs.- Returns:
- Returns the parsed Shape ID.
-
expectShapeId
public ShapeId expectShapeId()
Expects that the value of the string is a fully-qualified Shape ID.- Returns:
- Returns the parsed Shape ID.
-
asShapeId
public java.util.Optional<ShapeId> asShapeId()
Gets the value of the string as a ShapeId if it is a valid Shape ID.- Returns:
- Returns the optional Shape ID.
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
compareTo
public int compareTo(StringNode o)
- Specified by:
compareTo
in interfacejava.lang.Comparable<StringNode>
-
-