All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.burt.jmespath.node.SequenceNode Maven / Gradle / Ivy

There is a newer version: 0.6.0
Show newest version
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;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy