reuse some code

This commit is contained in:
David Renshaw 2014-10-08 08:49:18 -04:00
parent 4d842f0ef7
commit b884ad11c4
7 changed files with 52 additions and 303 deletions

View file

@ -1,7 +1,8 @@
package org.capnproto;
public final class DataList {
public static final class Factory implements ListFactory<Builder, Reader> {
public static final class Factory extends ListFactory<Builder, Reader> {
Factory() {super (FieldSize.POINTER); }
public final Reader constructReader(SegmentReader segment,
int ptr,
int elementCount, int step,
@ -16,29 +17,6 @@ public final class DataList {
int structDataSize, short structPointerCount) {
return new Builder(segment, ptr, elementCount, step, structDataSize, structPointerCount);
}
public final Reader fromPointerReader(PointerReader reader, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.readListPointer(this,
reader.segment,
reader.pointer,
defaultSegment,
defaultOffset,
FieldSize.POINTER,
reader.nestingLimit);
}
public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.getWritableListPointer(this,
builder.pointer,
builder.segment,
FieldSize.POINTER,
defaultSegment,
defaultOffset);
}
public final Builder initSizedFromPointerBuilder(PointerBuilder builder, int elementCount) {
return WireHelpers.initListPointer(this, builder.pointer, builder.segment, elementCount, FieldSize.POINTER);
}
}
public static final Factory factory = new Factory();

View file

@ -9,10 +9,11 @@ public class EnumList {
return values[index];
}
public static final class Factory<T extends java.lang.Enum> implements ListFactory<Builder<T>, Reader<T>>{
public static final class Factory<T extends java.lang.Enum> extends ListFactory<Builder<T>, Reader<T>>{
public final T values[];
public Factory(T values[]) {
super(FieldSize.TWO_BYTES);
this.values = values;
}
public final Reader<T> constructReader(SegmentReader segment,
@ -30,29 +31,6 @@ public class EnumList {
int structDataSize, short structPointerCount) {
return new Builder<T> (values, segment, ptr, elementCount, step, structDataSize, structPointerCount);
}
public final Reader<T> fromPointerReader(PointerReader reader, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.readListPointer(this,
reader.segment,
reader.pointer,
defaultSegment,
defaultOffset,
FieldSize.TWO_BYTES,
reader.nestingLimit);
}
public final Builder<T> fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.getWritableListPointer(this,
builder.pointer,
builder.segment,
FieldSize.TWO_BYTES,
defaultSegment,
defaultOffset);
}
public final Builder<T> initSizedFromPointerBuilder(PointerBuilder builder, int elementCount) {
return WireHelpers.initListPointer(this, builder.pointer, builder.segment, elementCount, FieldSize.TWO_BYTES);
}
}
public static final class Reader<T extends java.lang.Enum> extends ListReader {

View file

@ -1,7 +1,31 @@
package org.capnproto;
public interface ListFactory<Builder, Reader> extends ListBuilder.Factory<Builder>, FromPointerBuilder<Builder>,
public abstract class ListFactory<Builder, Reader> implements ListBuilder.Factory<Builder>, FromPointerBuilder<Builder>,
InitSizedFromPointerBuilder<Builder>,
ListReader.Factory<Reader>, FromPointerReader<Reader> {
final byte elementSize;
ListFactory(byte elementSize) {this.elementSize = elementSize;}
public final Reader fromPointerReader(PointerReader reader, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.readListPointer(this,
reader.segment,
reader.pointer,
defaultSegment,
defaultOffset,
this.elementSize,
reader.nestingLimit);
}
public Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.getWritableListPointer(this,
builder.pointer,
builder.segment,
this.elementSize,
defaultSegment,
defaultOffset);
}
public Builder initSizedFromPointerBuilder(PointerBuilder builder, int elementCount) {
return WireHelpers.initListPointer(this, builder.pointer, builder.segment, elementCount, this.elementSize);
}
}

View file

@ -2,11 +2,12 @@ package org.capnproto;
public final class ListList {
public static final class Factory<ElementBuilder, ElementReader>
implements ListFactory<Builder<ElementBuilder>, Reader<ElementReader>> {
extends ListFactory<Builder<ElementBuilder>, Reader<ElementReader>> {
public final ListFactory<ElementBuilder, ElementReader> factory;
public Factory(ListFactory<ElementBuilder, ElementReader> factory) {
super(FieldSize.POINTER);
this.factory = factory;
}
@ -24,30 +25,6 @@ public final class ListList {
int structDataSize, short structPointerCount) {
return new Builder<ElementBuilder>(factory, segment, ptr, elementCount, step, structDataSize, structPointerCount);
}
public final Reader<ElementReader> fromPointerReader(PointerReader reader, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.readListPointer(this,
reader.segment,
reader.pointer,
defaultSegment,
defaultOffset,
FieldSize.POINTER,
reader.nestingLimit);
}
public final Builder<ElementBuilder> fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.getWritableListPointer(this,
builder.pointer,
builder.segment,
FieldSize.POINTER,
defaultSegment,
defaultOffset);
}
public final Builder<ElementBuilder> initSizedFromPointerBuilder(PointerBuilder builder,
int elementCount) {
return WireHelpers.initListPointer(this, builder.pointer, builder.segment, elementCount, FieldSize.POINTER);
}
}
public static final class Reader<T> extends ListReader {

View file

@ -2,7 +2,9 @@ package org.capnproto;
public class PrimitiveList {
public static class Void {
public static final class Factory implements ListFactory<Builder, Reader> {
public static final class Factory extends ListFactory<Builder, Reader> {
Factory() {super (FieldSize.VOID); }
public final Reader constructReader(SegmentReader segment,
int ptr,
int elementCount, int step,
@ -18,28 +20,6 @@ public class PrimitiveList {
return new Builder(segment, ptr, elementCount, step, structDataSize, structPointerCount);
}
public final Reader fromPointerReader(PointerReader reader, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.readListPointer(this,
reader.segment,
reader.pointer,
defaultSegment,
defaultOffset,
FieldSize.VOID,
reader.nestingLimit);
}
public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.getWritableListPointer(this,
builder.pointer,
builder.segment,
FieldSize.VOID,
defaultSegment,
defaultOffset);
}
public final Builder initSizedFromPointerBuilder(PointerBuilder builder, int elementCount) {
return WireHelpers.initListPointer(this, builder.pointer, builder.segment, elementCount, FieldSize.VOID);
}
}
public static final Factory factory = new Factory();
@ -67,7 +47,8 @@ public class PrimitiveList {
}
public static class Boolean {
public static final class Factory implements ListFactory<Builder, Reader> {
public static final class Factory extends ListFactory<Builder, Reader> {
Factory() {super (FieldSize.BIT); }
public final Reader constructReader(SegmentReader segment,
int ptr,
int elementCount, int step,
@ -82,29 +63,6 @@ public class PrimitiveList {
int structDataSize, short structPointerCount) {
return new Builder(segment, ptr, elementCount, step, structDataSize, structPointerCount);
}
public final Reader fromPointerReader(PointerReader reader, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.readListPointer(this,
reader.segment,
reader.pointer,
defaultSegment,
defaultOffset,
FieldSize.BIT,
reader.nestingLimit);
}
public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.getWritableListPointer(this,
builder.pointer,
builder.segment,
FieldSize.BIT,
defaultSegment,
defaultOffset);
}
public final Builder initSizedFromPointerBuilder(PointerBuilder builder, int elementCount) {
return WireHelpers.initListPointer(this, builder.pointer, builder.segment, elementCount, FieldSize.BIT);
}
}
public static final Factory factory = new Factory();
@ -140,7 +98,8 @@ public class PrimitiveList {
}
public static class Byte {
public static final class Factory implements ListFactory<Builder, Reader> {
public static final class Factory extends ListFactory<Builder, Reader> {
Factory() {super (FieldSize.BYTE); }
public final Reader constructReader(SegmentReader segment,
int ptr,
int elementCount, int step,
@ -155,29 +114,6 @@ public class PrimitiveList {
int structDataSize, short structPointerCount) {
return new Builder(segment, ptr, elementCount, step, structDataSize, structPointerCount);
}
public final Reader fromPointerReader(PointerReader reader, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.readListPointer(this,
reader.segment,
reader.pointer,
defaultSegment,
defaultOffset,
FieldSize.BYTE,
reader.nestingLimit);
}
public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.getWritableListPointer(this,
builder.pointer,
builder.segment,
FieldSize.BYTE,
defaultSegment,
defaultOffset);
}
public final Builder initSizedFromPointerBuilder(PointerBuilder builder, int elementCount) {
return WireHelpers.initListPointer(this, builder.pointer, builder.segment, elementCount, FieldSize.BYTE);
}
}
public static final Factory factory = new Factory();
@ -214,7 +150,8 @@ public class PrimitiveList {
}
public static class Short {
public static final class Factory implements ListFactory<Builder, Reader> {
public static final class Factory extends ListFactory<Builder, Reader> {
Factory() {super (FieldSize.TWO_BYTES); }
public final Reader constructReader(SegmentReader segment,
int ptr,
int elementCount, int step,
@ -230,28 +167,6 @@ public class PrimitiveList {
return new Builder(segment, ptr, elementCount, step, structDataSize, structPointerCount);
}
public final Reader fromPointerReader(PointerReader reader, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.readListPointer(this,
reader.segment,
reader.pointer,
defaultSegment,
defaultOffset,
FieldSize.TWO_BYTES,
reader.nestingLimit);
}
public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.getWritableListPointer(this,
builder.pointer,
builder.segment,
FieldSize.TWO_BYTES,
defaultSegment,
defaultOffset);
}
public final Builder initSizedFromPointerBuilder(PointerBuilder builder, int elementCount) {
return WireHelpers.initListPointer(this, builder.pointer, builder.segment, elementCount, FieldSize.TWO_BYTES);
}
}
public static final Factory factory = new Factory();
@ -288,7 +203,8 @@ public class PrimitiveList {
}
public static class Int {
public static final class Factory implements ListFactory<Builder, Reader> {
public static final class Factory extends ListFactory<Builder, Reader> {
Factory() {super (FieldSize.FOUR_BYTES); }
public final Reader constructReader(SegmentReader segment,
int ptr,
int elementCount, int step,
@ -304,28 +220,6 @@ public class PrimitiveList {
return new Builder(segment, ptr, elementCount, step, structDataSize, structPointerCount);
}
public final Reader fromPointerReader(PointerReader reader, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.readListPointer(this,
reader.segment,
reader.pointer,
defaultSegment,
defaultOffset,
FieldSize.FOUR_BYTES,
reader.nestingLimit);
}
public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.getWritableListPointer(this,
builder.pointer,
builder.segment,
FieldSize.FOUR_BYTES,
defaultSegment,
defaultOffset);
}
public final Builder initSizedFromPointerBuilder(PointerBuilder builder, int elementCount) {
return WireHelpers.initListPointer(this, builder.pointer, builder.segment, elementCount, FieldSize.FOUR_BYTES);
}
}
public static final Factory factory = new Factory();
@ -361,7 +255,8 @@ public class PrimitiveList {
}
public static class Float {
public static final class Factory implements ListFactory<Builder, Reader> {
public static final class Factory extends ListFactory<Builder, Reader> {
Factory() {super (FieldSize.FOUR_BYTES); }
public final Reader constructReader(SegmentReader segment,
int ptr,
int elementCount, int step,
@ -376,31 +271,6 @@ public class PrimitiveList {
int structDataSize, short structPointerCount) {
return new Builder(segment, ptr, elementCount, step, structDataSize, structPointerCount);
}
public final Reader fromPointerReader(PointerReader reader, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.readListPointer(this,
reader.segment,
reader.pointer,
defaultSegment,
defaultOffset,
FieldSize.FOUR_BYTES,
reader.nestingLimit);
}
public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.getWritableListPointer(this,
builder.pointer,
builder.segment,
FieldSize.FOUR_BYTES,
defaultSegment,
defaultOffset);
}
public final Builder initSizedFromPointerBuilder(PointerBuilder builder, int elementCount) {
return WireHelpers.initListPointer(this, builder.pointer, builder.segment, elementCount, FieldSize.FOUR_BYTES);
}
}
public static final Factory factory = new Factory();
@ -437,7 +307,8 @@ public class PrimitiveList {
public static class Long {
public static final class Factory implements ListFactory<Builder, Reader> {
public static final class Factory extends ListFactory<Builder, Reader> {
Factory() {super (FieldSize.EIGHT_BYTES); }
public final Reader constructReader(SegmentReader segment,
int ptr,
int elementCount, int step,
@ -452,29 +323,6 @@ public class PrimitiveList {
int structDataSize, short structPointerCount) {
return new Builder(segment, ptr, elementCount, step, structDataSize, structPointerCount);
}
public final Reader fromPointerReader(PointerReader reader, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.readListPointer(this,
reader.segment,
reader.pointer,
defaultSegment,
defaultOffset,
FieldSize.EIGHT_BYTES,
reader.nestingLimit);
}
public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.getWritableListPointer(this,
builder.pointer,
builder.segment,
FieldSize.EIGHT_BYTES,
defaultSegment,
defaultOffset);
}
public final Builder initSizedFromPointerBuilder(PointerBuilder builder, int elementCount) {
return WireHelpers.initListPointer(this, builder.pointer, builder.segment, elementCount, FieldSize.EIGHT_BYTES);
}
}
public static final Factory factory = new Factory();
@ -510,7 +358,8 @@ public class PrimitiveList {
}
public static class Double {
public static final class Factory implements ListFactory<Builder, Reader> {
public static final class Factory extends ListFactory<Builder, Reader> {
Factory() {super (FieldSize.EIGHT_BYTES); }
public final Reader constructReader(SegmentReader segment,
int ptr,
int elementCount, int step,
@ -525,29 +374,6 @@ public class PrimitiveList {
int structDataSize, short structPointerCount) {
return new Builder(segment, ptr, elementCount, step, structDataSize, structPointerCount);
}
public final Reader fromPointerReader(PointerReader reader, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.readListPointer(this,
reader.segment,
reader.pointer,
defaultSegment,
defaultOffset,
FieldSize.EIGHT_BYTES,
reader.nestingLimit);
}
public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.getWritableListPointer(this,
builder.pointer,
builder.segment,
FieldSize.EIGHT_BYTES,
defaultSegment,
defaultOffset);
}
public final Builder initSizedFromPointerBuilder(PointerBuilder builder, int elementCount) {
return WireHelpers.initListPointer(this, builder.pointer, builder.segment, elementCount, FieldSize.EIGHT_BYTES);
}
}
public static final Factory factory = new Factory();

View file

@ -2,11 +2,12 @@ package org.capnproto;
public final class StructList {
public static final class Factory<ElementBuilder, ElementReader>
implements ListFactory<Builder<ElementBuilder>, Reader<ElementReader>> {
extends ListFactory<Builder<ElementBuilder>, Reader<ElementReader>> {
public final StructFactory<ElementBuilder, ElementReader> factory;
public Factory(StructFactory<ElementBuilder, ElementReader> factory) {
super(FieldSize.INLINE_COMPOSITE);
this.factory = factory;
}
@ -26,16 +27,6 @@ public final class StructList {
return new Builder<ElementBuilder> (factory, segment, ptr, elementCount, step, structDataSize, structPointerCount);
}
public final Reader<ElementReader> fromPointerReader(PointerReader reader, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.readListPointer(this,
reader.segment,
reader.pointer,
defaultSegment,
defaultOffset,
FieldSize.INLINE_COMPOSITE,
reader.nestingLimit);
}
public final Builder<ElementBuilder> fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.getWritableStructListPointer(this,
builder.pointer,
@ -49,8 +40,6 @@ public final class StructList {
int elementCount) {
return WireHelpers.initStructListPointer(this, builder.pointer, builder.segment, elementCount, factory.structSize());
}
}
public static final class Reader<T> extends ListReader implements Iterable<T> {

View file

@ -1,7 +1,8 @@
package org.capnproto;
public final class TextList {
public static final class Factory implements ListFactory<Builder, Reader> {
public static final class Factory extends ListFactory<Builder, Reader> {
Factory() {super (FieldSize.POINTER); }
public final Reader constructReader(SegmentReader segment,
int ptr,
int elementCount, int step,
@ -16,30 +17,6 @@ public final class TextList {
int structDataSize, short structPointerCount) {
return new Builder(segment, ptr, elementCount, step, structDataSize, structPointerCount);
}
public final Reader fromPointerReader(PointerReader reader, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.readListPointer(this,
reader.segment,
reader.pointer,
defaultSegment,
defaultOffset,
FieldSize.POINTER,
reader.nestingLimit);
}
public final Builder fromPointerBuilder(PointerBuilder builder, SegmentReader defaultSegment, int defaultOffset) {
return WireHelpers.getWritableListPointer(this,
builder.pointer,
builder.segment,
FieldSize.POINTER,
defaultSegment,
defaultOffset);
}
public final Builder initSizedFromPointerBuilder(PointerBuilder builder, int elementCount) {
return WireHelpers.initListPointer(this, builder.pointer, builder.segment, elementCount, FieldSize.POINTER);
}
}
public static final Factory factory = new Factory();