Esempio n. 1
0
  private void resolveOverlaps(TreeMap<Integer, Domain> doms, Domain lastDom) {

    ArrayList<Integer> flaggedToRemove = new ArrayList<Integer>();
    int lastStart = 0;
    for (int startPos : doms.keySet()) {

      Domain curDom = doms.get(startPos);
      if (lastDom != null) {
        if (lastDom.overlaps(curDom)) {
          if (lastDom.getEvalue() >= curDom.getEvalue()) flaggedToRemove.add(lastStart);
          else flaggedToRemove.add(startPos);
        }
      }
      lastStart = startPos;
      lastDom = curDom;
    }
    if (!flaggedToRemove.isEmpty()) {
      for (int remPos : flaggedToRemove) doms.remove(remPos);

      resolveOverlaps(doms, null);
    }
  }