tfw.immutable.ila.shortila.ShortIlaBound Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of tfw Show documentation
Show all versions of tfw Show documentation
The FrameWork for building highly scalable and maintainable applications
The newest version!
package tfw.immutable.ila.shortila;
import java.io.IOException;
import tfw.check.Argument;
public final class ShortIlaBound {
private ShortIlaBound() {
// non-instantiable class
}
public static ShortIla create(ShortIla ila, short minimum, short maximum) {
Argument.assertNotNull(ila, "ila");
Argument.assertNotGreaterThan(minimum, maximum, "minimum", "maximum");
return new ShortIlaImpl(ila, minimum, maximum);
}
private static class ShortIlaImpl extends AbstractShortIla {
private final ShortIla ila;
private final short minimum;
private final short maximum;
private ShortIlaImpl(ShortIla ila, short minimum, short maximum) {
this.ila = ila;
this.minimum = minimum;
this.maximum = maximum;
}
@Override
protected long lengthImpl() throws IOException {
return ila.length();
}
@Override
protected void getImpl(short[] array, int offset, long start, int length) throws IOException {
ila.get(array, offset, start, length);
for (int ii = offset; length > 0; ii++, --length) {
short tmp = array[ii];
if (tmp < minimum) {
array[ii] = minimum;
} else if (tmp > maximum) {
array[ii] = maximum;
}
}
}
}
}
// AUTO GENERATED FROM TEMPLATE