From ca271e28248348da404c0fc204b24d30708ad1eb Mon Sep 17 00:00:00 2001 From: David Renshaw Date: Thu, 2 Oct 2014 18:01:21 -0400 Subject: [PATCH] a start on EnumList --- .../src/main/java/org/capnproto/EnumList.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 runtime/src/main/java/org/capnproto/EnumList.java diff --git a/runtime/src/main/java/org/capnproto/EnumList.java b/runtime/src/main/java/org/capnproto/EnumList.java new file mode 100644 index 0000000..cdcfe96 --- /dev/null +++ b/runtime/src/main/java/org/capnproto/EnumList.java @@ -0,0 +1,34 @@ +package org.capnproto; + +public class EnumList { + static T clampOrdinal(T values[], short ordinal) { + int index = ordinal; + if (ordinal < 0 || ordinal >= values.length) { + index = values.length - 1; + } + return values[index]; + } + + public static final class Reader { + public final ListReader reader; + public final T values[]; + + public Reader(ListReader reader, T values[]) { + this.reader = reader; + this.values = values; + } + + public int size() { + return this.reader.size(); + } + + public T get(int index) { + return clampOrdinal(this.values, this.reader.getShortElement(index)); + } + + } + + public static final class Builder { + + } +}