
Untitled
By: a guest on
May 5th, 2012 | syntax:
Java | size: 0.92 KB | hits: 11 | expires: Never
public InterfaceDefinition[] parse() throws IOException {
Archive config = Archive.decode(fs.getFile(0, 3));
ByteBuffer data = config.getEntry("data").getBuffer();
int interfaceAmount = data.getShort() & 0xff;
InterfaceDefinition[] defs = new InterfaceDefinition[interfaceAmount];
while (data.hasRemaining()) {
int parentId = -1;
int interfaceId = data.getShort() & 0xff;
if (interfaceId == 65535) {
parentId = data.getShort() & 0xff;
interfaceId = data.getShort() & 0xff;
InterfaceDefinition parent = defs[parentId];
if (parent == null) {
defs[parentId] = new InterfaceDefinition(parentId);
}
parseDefintion(interfaceId, parent, data);
} else {
InterfaceDefinition interfac = defs[parentId];
if (interfac == null) {
interfac = defs[interfaceId] = new InterfaceDefinition(interfaceId);
}
parseParent(interfac, data);
}
}
return defs;
}