Class StringNode
java.lang.Object
software.amazon.smithy.model.node.Node
software.amazon.smithy.model.node.StringNode
- All Implemented Interfaces:
Comparable<StringNode>
,FromSourceLocation
,ToNode
Represents a string node.
-
Nested Class Summary
Nested classes/interfaces inherited from class software.amazon.smithy.model.node.Node
Node.NonNumericFloat
-
Constructor Summary
ConstructorDescriptionStringNode
(String value, SourceLocation sourceLocation) Creates a new StringNode. -
Method Summary
Modifier and TypeMethodDescription<R> R
accept
(NodeVisitor<R> visitor) Accepts a visitor with the node.Gets the value of the string as a ShapeId if it is a valid Shape ID.Gets the node as an StringNode if it is an string.int
static Pair<StringNode,
Consumer<String>> createLazyString
(String placeholder, SourceLocation sourceLocation) Creates a StringNode that is lazily populated with a value provided by the givenSupplier
.boolean
expectOneOf
(String... validValues) Gets the string if it is one of the provided valid strings.expectOneOf
(Collection<String> validValues) Gets the string if it is one of the provided valid strings.Expects that the value of the string is a fully-qualified Shape ID.expectShapeId
(String namespace) Expects that the value of the string is a Shape ID.expectStringNode
(String errorMessage) Casts the current node to aStringNode
, throwingExpectationNotMetException
when the node is the wrong type.expectStringNode
(Supplier<String> errorMessage) Casts the current node to aStringNode
, throwingExpectationNotMetException
when the node is the wrong type.getType()
Gets the type of the node.getValue()
Gets the string value.int
hashCode()
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 Details
-
StringNode
Creates a new StringNode.- Parameters:
value
- Immutable value to set.sourceLocation
- Source location of where the node was defined.
-
-
Method Details
-
createLazyString
public static Pair<StringNode,Consumer<String>> createLazyString(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.
-
getType
Description copied from class:Node
Gets the type of the node. -
accept
Description copied from class:Node
Accepts a visitor with the node. -
expectStringNode
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
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
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
Gets the string value.- Returns:
- Returns the string value.
-
expectOneOf
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
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
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
Expects that the value of the string is a fully-qualified Shape ID.- Returns:
- Returns the parsed Shape ID.
-
asShapeId
Gets the value of the string as a ShapeId if it is a valid Shape ID.- Returns:
- Returns the optional Shape ID.
-
equals
-
hashCode
public int hashCode() -
toString
-
compareTo
- Specified by:
compareTo
in interfaceComparable<StringNode>
-