111 lines
3.8 KiB
Java
111 lines
3.8 KiB
Java
/*
|
|
* Decompiled with CFR 0.152.
|
|
*/
|
|
package com.tridium.data;
|
|
|
|
import com.tridium.data.BDataTable;
|
|
import com.tridium.data.DataCodec;
|
|
import java.io.DataInput;
|
|
import java.io.IOException;
|
|
import javax.baja.data.BIDataTable;
|
|
import javax.baja.data.BIDataValue;
|
|
import javax.baja.data.DataTypes;
|
|
import javax.baja.io.BIEncodable;
|
|
import javax.baja.sys.BFacets;
|
|
import javax.baja.sys.Type;
|
|
|
|
public class DataTableDecoder
|
|
extends DataCodec {
|
|
public static BIDataTable decode(DataInput dataInput) throws IOException {
|
|
BIEncodable bIEncodable;
|
|
int n;
|
|
BDataTable bDataTable = new BDataTable();
|
|
int n2 = dataInput.readInt();
|
|
if (n2 != 497933825) {
|
|
throw new IOException("Invalid start of binary table encoding.");
|
|
}
|
|
boolean bl = dataInput.readBoolean();
|
|
if (bl) {
|
|
bDataTable.setTableFacets((BFacets)BFacets.DEFAULT.decode(dataInput));
|
|
}
|
|
int n3 = dataInput.readInt();
|
|
int[] nArray = new int[n3];
|
|
Type[] typeArray = new Type[n3];
|
|
int n4 = 0;
|
|
while (n4 < n3) {
|
|
String string = dataInput.readUTF();
|
|
String string2 = dataInput.readUTF();
|
|
nArray[n4] = dataInput.readInt();
|
|
typeArray[n4] = DataTypes.getBySymbol((char)nArray[n4]);
|
|
n = dataInput.readInt();
|
|
bIEncodable = null;
|
|
boolean bl2 = dataInput.readBoolean();
|
|
if (bl2) {
|
|
bIEncodable = (BFacets)BFacets.DEFAULT.decode(dataInput);
|
|
}
|
|
bDataTable.addColumn(string, string2, typeArray[n4], n, (BFacets)bIEncodable);
|
|
++n4;
|
|
}
|
|
if (n3 == 0) {
|
|
throw new IllegalStateException("Table contains no columns.");
|
|
}
|
|
n4 = dataInput.readInt();
|
|
if (n4 == -1) {
|
|
bDataTable.startRows();
|
|
} else {
|
|
bDataTable.startRows(n4);
|
|
}
|
|
int n5 = dataInput.readInt();
|
|
while (n5 != 0) {
|
|
int n6 = 0;
|
|
while (n6 < n5) {
|
|
bDataTable.startRow();
|
|
n = 0;
|
|
while (n < n3) {
|
|
switch (nArray[n]) {
|
|
case 102: {
|
|
bDataTable.set(dataInput.readFloat(), (BFacets)null);
|
|
break;
|
|
}
|
|
case 98: {
|
|
bDataTable.set(dataInput.readBoolean(), null);
|
|
break;
|
|
}
|
|
case 115: {
|
|
bDataTable.set(dataInput.readUTF(), null);
|
|
break;
|
|
}
|
|
case 105: {
|
|
bDataTable.set(dataInput.readInt(), (BFacets)null);
|
|
break;
|
|
}
|
|
case 108: {
|
|
bDataTable.set(dataInput.readLong(), (BFacets)null);
|
|
break;
|
|
}
|
|
case 100: {
|
|
bDataTable.set(dataInput.readDouble(), null);
|
|
break;
|
|
}
|
|
default: {
|
|
bIEncodable = (BIDataValue)((Object)typeArray[n].getInstance());
|
|
bDataTable.set((BIDataValue)((Object)bIEncodable.decode(dataInput)), null);
|
|
}
|
|
}
|
|
++n;
|
|
}
|
|
bDataTable.endRow();
|
|
++n6;
|
|
}
|
|
n5 = dataInput.readInt();
|
|
}
|
|
bDataTable.endRows();
|
|
int n7 = dataInput.readInt();
|
|
if (n7 != 766369282) {
|
|
throw new IOException("Invalid end of binary table encoding.");
|
|
}
|
|
return bDataTable;
|
|
}
|
|
}
|
|
|