/* * 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"); } }