MCPcopy Create free account
hub / github.com/Hiro420/NikkeTools / BObjectType

Class BObjectType

UnLuac/src/unluac/parse/BObjectType.java:10–45  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8import java.util.List;
9
10abstract public class BObjectType<T extends BObject> {
11
12 abstract public T parse(ByteBuffer buffer, BHeader header);
13
14 abstract public void write(OutputStream out, BHeader header, T object) throws IOException;
15
16 public final BList<T> parseList(final ByteBuffer buffer, final BHeader header) {
17 BInteger length = header.integer.parse(buffer, header);
18 final List<T> values = new ArrayList<T>();
19 length.iterate(new Runnable() {
20
21 @Override
22 public void run() {
23 values.add(parse(buffer, header));
24 }
25
26 });
27 return new BList<T>(length, values);
28 }
29
30 public final void writeList(OutputStream out, BHeader header, T[] array) throws IOException {
31 header.integer.write(out, header, new BInteger(array.length));
32 for(T object : array) {
33 write(out, header, object);
34 }
35 }
36
37 public final void writeList(OutputStream out, BHeader header, BList<T> blist) throws IOException {
38 header.integer.write(out, header, blist.length);
39 Iterator<T> it = blist.iterator();
40 while(it.hasNext()) {
41 write(out, header, it.next());
42 }
43 }
44
45}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected