io.burt.jmespath.node.SequenceNode Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jmespath-core Show documentation
Show all versions of jmespath-core Show documentation
A JMESPath implementation for Java
package io.burt.jmespath.node;
import java.util.Iterator;
import java.util.List;
import io.burt.jmespath.Adapter;
public class SequenceNode extends Node {
private final List> nodes;
public SequenceNode(Adapter runtime, List> nodes) {
super(runtime);
this.nodes = nodes;
}
@Override
protected String internalToString() {
if (nodes.isEmpty()) {
return null;
} else {
StringBuilder buffer = new StringBuilder();
Iterator> iterator = nodes.iterator();
buffer.append(iterator.next());
while (iterator.hasNext()) {
buffer.append(", ");
buffer.append(iterator.next());
}
return buffer.toString();
}
}
@Override
protected boolean internalEquals(Object o) {
SequenceNode other = (SequenceNode) o;
return nodes.equals(other.nodes);
}
@Override
protected int internalHashCode() {
return nodes.hashCode();
}
@Override
public T search(T input) {
T value = input;
for (Node node : nodes) {
value = node.search(value);
}
return value;
}
}