Skip to content
Snippets Groups Projects
Channel.java 1.39 KiB
Newer Older
package nloc;
import java.util.ArrayList;
import java.util.List;
Peter Wagenhuber's avatar
Peter Wagenhuber committed
import java.util.SortedSet;
import java.util.TreeSet;

public class Channel extends NlocEntity implements Comparable<Channel> {
  private int pSteps, hSteps;
Peter Wagenhuber's avatar
Peter Wagenhuber committed
  private List<Channel> parents;
  private SortedSet<Channel> children;
//  private List<Droplet> dropletList;

  public Channel(int pSteps, int hSteps) {
    super();
    this.pSteps = pSteps;
    this.hSteps = hSteps;
    this.parents = new ArrayList<Channel>();
Peter Wagenhuber's avatar
Peter Wagenhuber committed
    this.children = new TreeSet<Channel>();
  }

  public int getPSteps() {
    return pSteps;
  }

  public int getHSteps() {
    return hSteps;
  }

  public void addChild(Channel child) {
    if (!children.contains(child)) {
      children.add(child);
      child.addParent(this);
    }
  }

  public void addParent(Channel parent) {
    if (!parents.contains(parent)) {
      parents.add(parent);
      parent.addChild(this);
    }
  }

Peter Wagenhuber's avatar
Peter Wagenhuber committed
  public SortedSet<Channel> getChildren() {
    return children;
  }

  public List<Channel> getParents() {
    return parents;
  }

Peter Wagenhuber's avatar
Peter Wagenhuber committed
  public boolean isBifurcation() {
    return children.size() > 1;
  }

  public boolean isTeeIntersect() {
    return parents.size() > 1;
  }

  public int compareTo(Channel other) {
    if (this.getPSteps() < other.getPSteps()) {
      return -1;
    } else if (this.getPSteps() == other.getPSteps()) {
      return 0;
    } else {
      return 1;
    }
  }
}