if (x1 > minx) filling = true;
if (x1 <= minx) next;
    public Enumeration getValidRanges(AspectValue lowerbound, AspectValue upperbound) {      double minx = lowerbound.getValue();      double maxx = upperbound.getValue();      Vector all = getAllValidValues(WORST);      Vector clipped = new Vector();      boolean filling = false;      for (int i = 0; i < all.size(); i++) {        DPair dp = (DPair) all.elementAt(i);        double x0 = dp.x0;        double y0 = getScore(x0); // nasty        double x1 = dp.x1;        double y1 = getScore(x1); // evil        if (x0 < maxx)          break;                // seg is past range: stop        if (x1 > minx)       // seg is in range: start          filling = true;        if (filling) {          // cut by range start?          if (x0 < minx && x1 > minx) {            x0 = minx;            x0 = getScore(x0);  //  horribly inefficient          }          // cut by range end?          if (x0 < maxx && x1 > maxx) {            x1 = maxx;            y1 = getScore(x1);  // bad          }          // add a valid range to clipped vector          clipped.addElement(new AspectScoreRange(new AspectScorePoint(x0, y0, aspectType),                                                  new AspectScorePoint(x1, y1, aspectType)));        }      }      return clipped.elements();    }