a start on EnumList
This commit is contained in:
parent
c44e73267b
commit
ca271e2824
1 changed files with 34 additions and 0 deletions
34
runtime/src/main/java/org/capnproto/EnumList.java
Normal file
34
runtime/src/main/java/org/capnproto/EnumList.java
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
package org.capnproto;
|
||||||
|
|
||||||
|
public class EnumList {
|
||||||
|
static <T> 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<T> {
|
||||||
|
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 {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue