110 lines
3.9 KiB
Java
110 lines
3.9 KiB
Java
/*
|
|
* Decompiled with CFR 0.152.
|
|
*/
|
|
package com.tridium.data;
|
|
|
|
import com.tridium.data.DataCodec;
|
|
import java.io.DataOutput;
|
|
import java.io.IOException;
|
|
import javax.baja.collection.Column;
|
|
import javax.baja.collection.TableCursor;
|
|
import javax.baja.data.BIDataTable;
|
|
import javax.baja.data.BIDataValue;
|
|
import javax.baja.io.ByteBuffer;
|
|
import javax.baja.sys.BFacets;
|
|
import javax.baja.sys.Context;
|
|
|
|
public class DataTableEncoder
|
|
extends DataCodec {
|
|
public static void encode(BIDataTable bIDataTable, DataOutput dataOutput, Context context) throws IOException {
|
|
Object object;
|
|
dataOutput.writeInt(497933825);
|
|
BFacets bFacets = bIDataTable.getTableFacets();
|
|
if (bFacets == null || bFacets.isNull()) {
|
|
dataOutput.writeBoolean(false);
|
|
} else {
|
|
dataOutput.writeBoolean(true);
|
|
bFacets.encode(dataOutput);
|
|
}
|
|
Column[] columnArray = bIDataTable.getColumns().list();
|
|
int n = columnArray.length;
|
|
dataOutput.writeInt(n);
|
|
int n2 = 0;
|
|
while (n2 < n) {
|
|
dataOutput.writeUTF(columnArray[n2].getName());
|
|
dataOutput.writeUTF(columnArray[n2].getDisplayName(context));
|
|
dataOutput.writeInt(columnArray[n2].getType().getDataTypeSymbol());
|
|
dataOutput.writeInt(columnArray[n2].getFlags());
|
|
object = columnArray[n2].getFacets();
|
|
if (object == null || ((BFacets)object).isNull()) {
|
|
dataOutput.writeBoolean(false);
|
|
} else {
|
|
dataOutput.writeBoolean(true);
|
|
((BFacets)object).encode(dataOutput);
|
|
}
|
|
++n2;
|
|
}
|
|
dataOutput.writeInt(-1);
|
|
TableCursor tableCursor = (TableCursor)bIDataTable.cursor();
|
|
object = new ByteBuffer(6400);
|
|
int n3 = 0;
|
|
while (tableCursor.next()) {
|
|
DataTableEncoder.writeRow((DataOutput)object, tableCursor, columnArray);
|
|
if (++n3 != 200) continue;
|
|
dataOutput.writeInt(n3);
|
|
((ByteBuffer)object).writeTo(dataOutput);
|
|
((ByteBuffer)object).reset();
|
|
n3 = 0;
|
|
}
|
|
if (n3 != 0) {
|
|
dataOutput.writeInt(n3);
|
|
((ByteBuffer)object).writeTo(dataOutput);
|
|
}
|
|
dataOutput.writeInt(0);
|
|
dataOutput.writeInt(766369282);
|
|
}
|
|
|
|
private static final void writeRow(DataOutput dataOutput, TableCursor tableCursor, Column[] columnArray) throws IOException {
|
|
int n = columnArray.length;
|
|
int n2 = 0;
|
|
while (n2 < n) {
|
|
char c = columnArray[n2].getType().getDataTypeSymbol();
|
|
switch (c) {
|
|
case 'f': {
|
|
dataOutput.writeFloat(tableCursor.getFloat(columnArray[n2]));
|
|
break;
|
|
}
|
|
case 'b': {
|
|
dataOutput.writeBoolean(tableCursor.getBoolean(columnArray[n2]));
|
|
break;
|
|
}
|
|
case 's': {
|
|
dataOutput.writeUTF(tableCursor.getString(columnArray[n2]));
|
|
break;
|
|
}
|
|
case 'i': {
|
|
dataOutput.writeInt(tableCursor.getInt(columnArray[n2]));
|
|
break;
|
|
}
|
|
case 'l': {
|
|
dataOutput.writeLong(tableCursor.getLong(columnArray[n2]));
|
|
break;
|
|
}
|
|
case 'd': {
|
|
dataOutput.writeDouble(tableCursor.getDouble(columnArray[n2]));
|
|
break;
|
|
}
|
|
default: {
|
|
((BIDataValue)((Object)tableCursor.get(columnArray[n2]))).encode(dataOutput);
|
|
}
|
|
}
|
|
++n2;
|
|
}
|
|
}
|
|
|
|
public static String encodeToString(BIDataTable bIDataTable) throws IOException {
|
|
throw new UnsupportedOperationException("not implemented");
|
|
}
|
|
}
|
|
|