@SuppressWarnings("unchecked") public EnumeratedData(DataSource original,double offset,double steps){
  this.original=original;
  this.offset=offset;
  this.steps=steps;
  Class<? extends Comparable<?>>[] typesOrig=original.getColumnTypes();
  Class<? extends Comparable<?>>[] types=new Class[typesOrig.length + 1];
  System.arraycopy(typesOrig,0,types,1,typesOrig.length);
  types[0]=Double.class;
  setColumnTypes(types);
  original.addDataListener(this);
}

@ SuppressWarnings ( "unchecked" ) public EnumeratedData ( DataSource original , double offset , double steps ) { this . original = original ; this . offset = offset ; this . steps = steps ; Class < ? extends Comparable < ? > > [ ] typesOrig = original . getColumnTypes ( ) ; Class < ? extends Comparable < ? > > [ ] types = new Class [ typesOrig . length + 1 ] ; System . arraycopy ( typesOrig , 0 , types , 1 , typesOrig . length ) ; types [ 0 ] = Double . class ; setColumnTypes ( types ) ; original . addDataListener ( this ) ; }
initializes a new data source based on an original data source which will contain an additional column which enumerates all rows . the enumeration will start at a specified offset and will have a specified step size .
