public final class ArrayNode
extends Node
implements java.lang.Iterable<Node>, ToSmithyBuilder<ArrayNode>
Represents an array of nodes.
static <T extends
ToNode
>
java.util.stream.Collector<T,java.util.List<
Node
>,
ArrayNode
>
collect
()
static <T extends
ToNode
>
java.util.stream.Collector<T,java.util.List<
Node
>,
ArrayNode
>
collect
(
SourceLocation
sloc)
boolean
equals
(java.lang.Object other)
ArrayNode
expectArrayNode
(java.lang.String errorMessage)
ArrayNode
expectArrayNode
(java.util.function.Supplier<java.lang.String> errorMessage)
java.util.Optional<
Node
>
get
(int index)
Gets a node from the given index.
java.util.List<
Node
>
getElements
()
Gets the list of nodes.
<T extends
Node
>
java.util.List<T>
getElementsAs
(java.lang.Class<T> type)
Gets the elements of the array as a list of a specific type of
Node
.
<T,K extends
Node
>
java.util.List<T>
getElementsAs
(java.util.function.Function<K,T> f)
Gets the elements of the ArrayNode as a specific type by applying
a mapping function to each node.
NodeType
getType
()
Gets the type of the node.
hashCode
()
boolean
isEmpty
()
Returns true if the array node is empty.
java.util.Iterator<
Node
>
iterator
()
ArrayNode
merge
(
ArrayNode
other)
Merges two ArrayNodes into a new ArrayNode.
size
()
Returns the number of elements in the array node.
SmithyBuilder
<
ArrayNode
>
toBuilder
()
Take this object and create a builder that contains all of the
current property values of this object.
ArrayNode
withValue
(
Node
node)
Copies the values from the current array node, adding the given node,
returning them in a new
ArrayNode
.
Methods inherited from class software.amazon.smithy.model.node.
Node
arrayNode
,
arrayNode
,
asBooleanNode
,
asNullNode
,
asNumberNode
,
asObjectNode
,
assertEquals
,
asStringNode
,
diff
,
expectArrayNode
,
expectBooleanNode
,
expectBooleanNode
,
expectBooleanNode
,
expectNullNode
,
expectNullNode
,
expectNullNode
,
expectNumberNode
,
expectNumberNode
,
expectNumberNode
,
expectObjectNode
,
expectObjectNode
,
expectObjectNode
,
expectStringNode
,
expectStringNode
,
expectStringNode
,
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
toBuilder
public SmithyBuilder<ArrayNode> toBuilder()
Take this object and create a builder that contains all of the
current property values of this object.
Specified by:
toBuilder
in interface
ToSmithyBuilder
<
ArrayNode
>
Returns:
a builder for type T
public NodeType getType()
Description copied from class:
Node
Gets the type of the node.
Specified by:
getType
in class
Node
Returns:
Returns the node type.
public <R> R accept(NodeVisitor<R> visitor)
Description copied from class:
Node
Accepts a visitor with the node.
Specified by:
accept
in class
Node
Type Parameters:
R
- visitor return type.
Parameters:
visitor
- Visitor to dispatch to.
Returns:
Returns the accepted result.
expectArrayNode
public ArrayNode expectArrayNode(java.lang.String errorMessage)
Description copied from class:
Node
Overrides:
expectArrayNode
in class
Node
Parameters:
errorMessage
- Error message to use if the node is of the wrong type.
Returns:
Returns an array node.
expectArrayNode
public ArrayNode expectArrayNode(java.util.function.Supplier<java.lang.String> errorMessage)
Description copied from class:
Node
Overrides:
expectArrayNode
in class
Node
Parameters:
errorMessage
- Error message supplier.
Returns:
Returns an array node.
asArrayNode
public java.util.Optional<ArrayNode> asArrayNode()
Description copied from class:
Node
Gets the node as an ArrayNode if it is an array.
Overrides:
asArrayNode
in class
Node
Returns:
Returns the optional array node.
withValue
public ArrayNode withValue(Node node)
Copies the values from the current array node, adding the given node,
returning them in a new
ArrayNode
.
Parameters:
node
- The node to add.
Returns:
Returns a new array node.
getElementsAs
public <T extends Node> java.util.List<T> getElementsAs(java.lang.Class<T> type)
Gets the elements of the array as a list of a specific type of
Node
.
Type Parameters:
T
- Type of Node to expect in each position.
Parameters:
type
- Type of Node to expect in each position.
Returns:
Returns the List of the specified type.
Throws:
ExpectationNotMetException
- if the list contains elements of a different type.
getElementsAs
public <T,K extends Node> java.util.List<T> getElementsAs(java.util.function.Function<K,T> f)
Gets the elements of the ArrayNode as a specific type by applying
a mapping function to each node.
Each Node is cast to
K
and then mapped with the provided
function to return type
T
.
ArrayNode array = Node.fromStrings("foo", "baz", "bar");
List<String> strings = array.getElementsAs(StringNode::getValue);
Type Parameters:
K
- Expected Node type.
T
- Mapping function return value.
Parameters:
f
- Mapping function that takes
K
and return
T
.
Returns:
Returns the List of type T.
Throws:
ExpectationNotMetException
- if the list contains elements of a different type than
K
.
merge
public ArrayNode merge(ArrayNode other)
Merges two ArrayNodes into a new ArrayNode.
If the current node has a source location, it is applied to the
result. Otherwise, the source location of
other
is applied
to the result.
Parameters:
other
- Node to merge with.
Returns:
Returns a new merged array node.
collect
public static <T extends ToNode> java.util.stream.Collector<T,java.util.List<Node>,ArrayNode> collect()
Type Parameters:
T
- Type of value in the collection.
Returns:
Creates a collector that create an ArrayNode.
collect
public static <T extends ToNode> java.util.stream.Collector<T,java.util.List<Node>,ArrayNode> collect(SourceLocation sloc)
Type Parameters:
T
- Type of value in the collection.
Parameters:
sloc
- Source location to use on the created node.
Returns:
Creates a collector that create an ArrayNode.