![JAR search and dependency download from the Maven repository](/logo.png)
org.dflib.series.RangeSeries Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dflib Show documentation
Show all versions of dflib Show documentation
dflib: DataFrame library
package org.dflib.series;
import org.dflib.Series;
import org.dflib.range.Range;
/**
* A specialized Series that maps to a slice of another Series.
*/
public class RangeSeries extends ObjectSeries {
private Series delegate;
private int offset;
private int size;
public RangeSeries(Series delegate, int offset, int size) {
super(delegate.getNominalType());
this.delegate = delegate;
this.offset = offset;
this.size = size;
Range.checkRange(offset, size, delegate.size());
}
@Override
public int size() {
return size;
}
@Override
public T get(int index) {
if (index >= size) {
throw new ArrayIndexOutOfBoundsException(index);
}
return delegate.get(offset + index);
}
@Override
public void copyTo(Object[] to, int fromOffset, int toOffset, int len) {
if (fromOffset + len > size) {
throw new ArrayIndexOutOfBoundsException(fromOffset + len);
}
delegate.copyTo(to, this.offset + fromOffset, toOffset, len);
}
@Override
public Series materialize() {
Object[] range = new Object[size];
delegate.copyTo(range, this.offset, 0, size);
return new ArraySeries<>((T[]) range);
}
@Override
public Series fillNulls(T value) {
// TODO: optimize data copy - do materialize and null checking over the same array
return materialize().fillNulls(value);
}
@Override
public Series fillNullsFromSeries(Series extends T> values) {
// TODO: optimize data copy - do materialize and null checking over the same array
return materialize().fillNullsFromSeries(values);
}
@Override
public Series fillNullsBackwards() {
// TODO: optimize data copy - do materialize and null checking over the same array
return materialize().fillNullsBackwards();
}
@Override
public Series fillNullsForward() {
// TODO: optimize data copy - do materialize and null checking over the same array
return materialize().fillNullsForward();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy