public static Range iterateRangeBounds(CategoryDataset dataset,boolean includeInterval){
  double minimum=Double.POSITIVE_INFINITY;
  double maximum=Double.NEGATIVE_INFINITY;
  int rowCount=dataset.getRowCount();
  int columnCount=dataset.getColumnCount();
  if (includeInterval && dataset instanceof IntervalCategoryDataset) {
    IntervalCategoryDataset icd=(IntervalCategoryDataset)dataset;
    Number value, lvalue, uvalue;
    for (int row=0; row < rowCount; row++) {
      for (int column=0; column < columnCount; column++) {
        value=icd.getValue(row,column);
        double v;
        if ((value != null) && !Double.isNaN(v=value.doubleValue())) {
          minimum=Math.min(v,minimum);
          maximum=Math.max(v,maximum);
        }
        lvalue=icd.getStartValue(row,column);
        if (lvalue != null && !Double.isNaN(v=lvalue.doubleValue())) {
          minimum=Math.min(v,minimum);
          maximum=Math.max(v,maximum);
        }
        uvalue=icd.getEndValue(row,column);
        if (uvalue != null && !Double.isNaN(v=uvalue.doubleValue())) {
          minimum=Math.min(v,minimum);
          maximum=Math.max(v,maximum);
        }
      }
    }
  }
 else {
    for (int row=0; row < rowCount; row++) {
      for (int column=0; column < columnCount; column++) {
        Number value=dataset.getValue(row,column);
        if (value != null) {
          double v=value.doubleValue();
          if (!Double.isNaN(v)) {
            minimum=Math.min(minimum,v);
            maximum=Math.max(maximum,v);
          }
        }
      }
    }
  }
  if (minimum == Double.POSITIVE_INFINITY) {
    return null;
  }
 else {
    return new Range(minimum,maximum);
  }
}

public static Range iterateRangeBounds ( CategoryDataset dataset , boolean includeInterval ) { double minimum = Double . POSITIVE_INFINITY ; double maximum = Double . NEGATIVE_INFINITY ; int rowCount = dataset . getRowCount ( ) ; int columnCount = dataset . getColumnCount ( ) ; if ( includeInterval && dataset instanceof IntervalCategoryDataset ) { IntervalCategoryDataset icd = ( IntervalCategoryDataset ) dataset ; Number value , lvalue , uvalue ; for ( int row = 0 ; row < rowCount ; row ++ ) { for ( int column = 0 ; column < columnCount ; column ++ ) { value = icd . getValue ( row , column ) ; double v ; if ( ( value != null ) && ! Double . isNaN ( v = value . doubleValue ( ) ) ) { minimum = Math . min ( v , minimum ) ; maximum = Math . max ( v , maximum ) ; } lvalue = icd . getStartValue ( row , column ) ; if ( lvalue != null && ! Double . isNaN ( v = lvalue . doubleValue ( ) ) ) { minimum = Math . min ( v , minimum ) ; maximum = Math . max ( v , maximum ) ; } uvalue = icd . getEndValue ( row , column ) ; if ( uvalue != null && ! Double . isNaN ( v = uvalue . doubleValue ( ) ) ) { minimum = Math . min ( v , minimum ) ; maximum = Math . max ( v , maximum ) ; } } } } else { for ( int row = 0 ; row < rowCount ; row ++ ) { for ( int column = 0 ; column < columnCount ; column ++ ) { Number value = dataset . getValue ( row , column ) ; if ( value != null ) { double v = value . doubleValue ( ) ; if ( ! Double . isNaN ( v ) ) { minimum = Math . min ( minimum , v ) ; maximum = Math . max ( maximum , v ) ; } } } } } if ( minimum == Double . POSITIVE_INFINITY ) { return null ; } else { return new Range ( minimum , maximum ) ; } }
iterates over the data item of the category dataset to find the range bounds .
