From b884ad11c46a0f9055ce2709cc8eabc74d18a3cf Mon Sep 17 00:00:00 2001 From: David Renshaw Date: Wed, 8 Oct 2014 08:49:18 -0400 Subject: [PATCH] reuse some code --- .../src/main/java/org/capnproto/DataList.java | 26 +-- .../src/main/java/org/capnproto/EnumList.java | 26 +-- .../main/java/org/capnproto/ListFactory.java | 26 ++- .../src/main/java/org/capnproto/ListList.java | 27 +-- .../java/org/capnproto/PrimitiveList.java | 208 ++---------------- .../main/java/org/capnproto/StructList.java | 15 +- .../src/main/java/org/capnproto/TextList.java | 27 +-- 7 files changed, 52 insertions(+), 303 deletions(-) diff --git a/runtime/src/main/java/org/capnproto/DataList.java b/runtime/src/main/java/org/capnproto/DataList.java index efbcbe9..b5e2432 100644 --- a/runtime/src/main/java/org/capnproto/DataList.java +++ b/runtime/src/main/java/org/capnproto/DataList.java @@ -1,7 +1,8 @@ package org.capnproto; public final class DataList { - public static final class Factory implements ListFactory { + public static final class Factory extends ListFactory { + 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(); diff --git a/runtime/src/main/java/org/capnproto/EnumList.java b/runtime/src/main/java/org/capnproto/EnumList.java index 583d4fd..be0a843 100644 --- a/runtime/src/main/java/org/capnproto/EnumList.java +++ b/runtime/src/main/java/org/capnproto/EnumList.java @@ -9,10 +9,11 @@ public class EnumList { return values[index]; } - public static final class Factory implements ListFactory, Reader>{ + public static final class Factory extends ListFactory, Reader>{ public final T values[]; public Factory(T values[]) { + super(FieldSize.TWO_BYTES); this.values = values; } public final Reader constructReader(SegmentReader segment, @@ -30,29 +31,6 @@ public class EnumList { int structDataSize, short structPointerCount) { return new Builder (values, 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 class Reader extends ListReader { diff --git a/runtime/src/main/java/org/capnproto/ListFactory.java b/runtime/src/main/java/org/capnproto/ListFactory.java index f8f9380..8e2fdee 100644 --- a/runtime/src/main/java/org/capnproto/ListFactory.java +++ b/runtime/src/main/java/org/capnproto/ListFactory.java @@ -1,7 +1,31 @@ package org.capnproto; -public interface ListFactory extends ListBuilder.Factory, FromPointerBuilder, +public abstract class ListFactory implements ListBuilder.Factory, FromPointerBuilder, InitSizedFromPointerBuilder, ListReader.Factory, FromPointerReader { + 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); + } } diff --git a/runtime/src/main/java/org/capnproto/ListList.java b/runtime/src/main/java/org/capnproto/ListList.java index 9eb28a6..249a6bf 100644 --- a/runtime/src/main/java/org/capnproto/ListList.java +++ b/runtime/src/main/java/org/capnproto/ListList.java @@ -2,11 +2,12 @@ package org.capnproto; public final class ListList { public static final class Factory - implements ListFactory, Reader> { + extends ListFactory, Reader> { public final ListFactory factory; public Factory(ListFactory factory) { + super(FieldSize.POINTER); this.factory = factory; } @@ -24,30 +25,6 @@ public final class ListList { int structDataSize, short structPointerCount) { return new Builder(factory, 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 class Reader extends ListReader { diff --git a/runtime/src/main/java/org/capnproto/PrimitiveList.java b/runtime/src/main/java/org/capnproto/PrimitiveList.java index 43a63a1..308442d 100644 --- a/runtime/src/main/java/org/capnproto/PrimitiveList.java +++ b/runtime/src/main/java/org/capnproto/PrimitiveList.java @@ -2,7 +2,9 @@ package org.capnproto; public class PrimitiveList { public static class Void { - public static final class Factory implements ListFactory { + public static final class Factory extends ListFactory { + 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 { + public static final class Factory extends ListFactory { + 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 { + public static final class Factory extends ListFactory { + 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 { + public static final class Factory extends ListFactory { + 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 { + public static final class Factory extends ListFactory { + 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 { + public static final class Factory extends ListFactory { + 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 { + public static final class Factory extends ListFactory { + 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 { + public static final class Factory extends ListFactory { + 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(); diff --git a/runtime/src/main/java/org/capnproto/StructList.java b/runtime/src/main/java/org/capnproto/StructList.java index 99946fa..9393f3f 100644 --- a/runtime/src/main/java/org/capnproto/StructList.java +++ b/runtime/src/main/java/org/capnproto/StructList.java @@ -2,11 +2,12 @@ package org.capnproto; public final class StructList { public static final class Factory - implements ListFactory, Reader> { + extends ListFactory, Reader> { public final StructFactory factory; public Factory(StructFactory factory) { + super(FieldSize.INLINE_COMPOSITE); this.factory = factory; } @@ -26,16 +27,6 @@ public final class StructList { return new Builder (factory, 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.INLINE_COMPOSITE, - reader.nestingLimit); - } - public final Builder 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 extends ListReader implements Iterable { diff --git a/runtime/src/main/java/org/capnproto/TextList.java b/runtime/src/main/java/org/capnproto/TextList.java index 57dd58a..5875b76 100644 --- a/runtime/src/main/java/org/capnproto/TextList.java +++ b/runtime/src/main/java/org/capnproto/TextList.java @@ -1,7 +1,8 @@ package org.capnproto; public final class TextList { - public static final class Factory implements ListFactory { + public static final class Factory extends ListFactory { + 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();