org.sfm.csv.impl.primitive.ByteDelayedCellSetter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of simpleFlatMapper Show documentation
Show all versions of simpleFlatMapper Show documentation
Java library to map flat record - ResultSet, csv - to java object with minimum configuration and low footprint.
package org.sfm.csv.impl.primitive;
import org.sfm.csv.impl.DelayedCellSetter;
import org.sfm.csv.impl.ParsingContext;
import org.sfm.csv.impl.cellreader.ByteCellValueReader;
import org.sfm.reflect.primitive.ByteSetter;
public class ByteDelayedCellSetter implements DelayedCellSetter {
private final ByteSetter setter;
private final ByteCellValueReader reader;
private byte value;
private boolean isNull;
public ByteDelayedCellSetter(ByteSetter setter, ByteCellValueReader reader) {
this.setter = setter;
this.reader = reader;
}
@Override
public Byte consumeValue() {
return isNull ? null : consumeByte();
}
@Override
public Byte peekValue() {
return isNull ? null : value;
}
public byte consumeByte() {
byte v = value;
value = 0;
isNull = true;
return v;
}
@Override
public void set(T t) throws Exception {
setter.setByte(t, consumeByte());
}
@Override
public boolean isSettable() {
return setter != null;
}
@Override
public void set(char[] chars, int offset, int length, ParsingContext parsingContext) throws Exception {
isNull = length == 0;
this.value = reader.readByte(chars, offset, length, parsingContext);
}
@Override
public String toString() {
return "ByteDelayedCellSetter{" +
"setter=" + setter +
", reader=" + reader +
'}';
}
}