@Override public T next() { T newStub = factory.newInstance(); for (FieldAndStrategy fieldAndStrategy : strategies) { fieldAndStrategy.getAccessor().set(newStub, fieldAndStrategy.getStrategy().next()); } return newStub; } };
/** * Fully consume a field value from the parent, parent is guaranteed to be non-null * Follow the same incrementing rules as {@link #writeValue} */ public void writeFromField(Object parent, Contexts.WriteContext context) { writeValue((T) getAccessor().get(parent), context); }
@Override public void writeFromField(Object parent, Contexts.WriteContext context) { writeBoolean(getAccessor().getBoolean(parent), context); }
@Override public void writeFromField(Object parent, Contexts.WriteContext context) { writeDouble(getAccessor().getDouble(parent), context); }
@Override public void writeFromField(Object parent, Contexts.WriteContext context) { writeLong(getAccessor().getLong(parent), context); }
@Override public void writeFromField(Object parent, Contexts.WriteContext context) { writeFloat(getAccessor().getFloat(parent), context); }
@Override public void writeFromField(Object parent, Contexts.WriteContext context) { writeChar(getAccessor().getChar(parent), context); }
@Override public void writeFromField(Object parent, Contexts.WriteContext context) { writeByte(getAccessor().getByte(parent), context); }
@Override public void writeFromField(Object parent, Contexts.WriteContext context) { writeInt(getAccessor().getInt(parent), context); }
@Override public void writeFromField(Object parent, Contexts.WriteContext context) { writeShort(getAccessor().getShort(parent), context); }
/** * Materialize a value from sub columns, columns must be incremented and read in the same order as they were written * in either {@link #writeValue} or {@link #writeFromField} and the materialized value must be written into the field of the parent */ public void readIntoField(Object parent, Contexts.ReadContext context) { getAccessor().set(parent, readValue(context)); }