/* * Decompiled with CFR 0.152. */ package com.tridium.data; import com.tridium.collection.BISortableTable; import com.tridium.data.BDataRow; import com.tridium.data.DataColumnList; import com.tridium.data.DataTableCursor; import javax.baja.collection.BICollection; import javax.baja.collection.BIList; import javax.baja.collection.BITable; import javax.baja.collection.Column; import javax.baja.collection.ColumnList; import javax.baja.data.BIDataTable; import javax.baja.data.BIDataValue; import javax.baja.sys.BBoolean; import javax.baja.sys.BDouble; import javax.baja.sys.BFacets; import javax.baja.sys.BFloat; import javax.baja.sys.BInteger; import javax.baja.sys.BLong; import javax.baja.sys.BObject; import javax.baja.sys.BString; import javax.baja.sys.Context; import javax.baja.sys.Cursor; import javax.baja.sys.Sys; import javax.baja.sys.Type; import javax.baja.util.IFilter; import javax.baja.util.SortUtil; /* * Illegal identifiers - consider using --renameillegalidents true */ public final class BDataTable extends BObject implements BIDataTable, BISortableTable { public static final Type TYPE; private BFacets tableFacets; private DataColumnList columnList; private int rowCount; private int bufferSize; private int colIndex; private BDataRow rowObject; static /* synthetic */ Class class$com$tridium$data$BDataTable; public final BICollection filter(IFilter iFilter) { return this; } public final BITable sort(Column column, boolean bl) { BDataTable bDataTable = new BDataTable(); Object[] objectArray = (BDataRow[])this.list(); Object[] objectArray2 = new BObject[this.size()]; int n = 0; while (n < this.size()) { objectArray2[n] = (BObject)((Object)((DataColumn)column).get(n)); ++n; } SortUtil.sort(objectArray2, objectArray, bl); bDataTable.setTableFacets(this.getTableFacets()); n = 0; while (n < this.columnList.size()) { Column column2 = this.columnList.get(n); bDataTable.addColumn(column2.getName(), column2.getDisplayName(null), column2.getType(), column2.getFlags(), column2.getFacets()); ++n; } bDataTable.startRows(this.size()); n = 0; while (n < this.size()) { bDataTable.startRow(); int n2 = 0; while (n2 < this.columnList.size()) { Column column3 = this.columnList.get(n2); BFacets bFacets = ((BDataRow)objectArray[n]).getFacets(column3); char c = column3.getType().getDataTypeSymbol(); switch (c) { case 'd': { double d = ((BDataRow)objectArray[n]).getDouble(column3); bDataTable.set(d, bFacets); break; } case 'f': { float f = ((BDataRow)objectArray[n]).getFloat(column3); bDataTable.set(f, bFacets); break; } case 'b': { boolean bl2 = ((BDataRow)objectArray[n]).getBoolean(column3); bDataTable.set(bl2, bFacets); break; } case 's': { String string = ((BDataRow)objectArray[n]).getString(column3); bDataTable.set(string, bFacets); break; } case 'i': { int n3 = ((BDataRow)objectArray[n]).getInt(column3); bDataTable.set(n3, bFacets); break; } case 'l': { long l = ((BDataRow)objectArray[n]).getLong(column3); bDataTable.set(l, bFacets); break; } default: { BIDataValue bIDataValue = (BIDataValue)((Object)((BDataRow)objectArray[n]).get(column3)); bDataTable.set(bIDataValue, bFacets); } } ++n2; } bDataTable.endRow(); ++n; } bDataTable.endRows(); return bDataTable; } public final Cursor cursor() { return new DataTableCursor(this); } public final BIList toList() { return this; } public final BObject[] list() { int n = this.size(); BObject[] bObjectArray = new BDataRow[n]; int n2 = 0; while (n2 < n) { bObjectArray[n2] = ((BDataRow)this.get(n2)).copy(); ++n2; } return bObjectArray; } public final BObject[] list(BObject[] bObjectArray) { return this.list(); } public final BObject get(int n) { if (this.rowObject == null) { this.rowObject = new BDataRow(this, n); } else { this.rowObject.setRow(n); } return this.rowObject; } public final BITable toTable() { return this; } public final ColumnList getColumns() { return this.columnList; } public final BObject get(int n, Column column) { return (BObject)((Object)((DataColumn)column).get(n)); } public final String getString(int n, Column column) { return ((DataColumn)column).getString(n); } public final double getDouble(int n, Column column) { return ((DataColumn)column).getDouble(n); } public final float getFloat(int n, Column column) { return ((DataColumn)column).getFloat(n); } public final int getInt(int n, Column column) { return ((DataColumn)column).getInt(n); } public final long getLong(int n, Column column) { return ((DataColumn)column).getLong(n); } public final boolean getBoolean(int n, Column column) { return ((DataColumn)column).getBoolean(n); } public final int getFlags(int n, Column column) { return 0; } public final BFacets getFacets(int n, Column column) { return BFacets.NULL; } public final BFacets getTableFacets() { return this.tableFacets; } public final int size() { return this.rowCount; } public final void setTableFacets(BFacets bFacets) { this.tableFacets = bFacets; } public final void addColumn(String string, Type type, int n, BFacets bFacets) { this.addColumn(string, string, type, n, bFacets); } public final void addColumn(String string, String string2, Type type, int n, BFacets bFacets) { if (this.columnList == null) { this.columnList = new DataColumnList(); } this.columnList.addColumn(new DataColumn(string, string2, type, n, bFacets)); } public final void startRows() { this.startRows(32); } public final void startRows(int n) { this.bufferSize = n; int n2 = this.columnList.size(); int n3 = 0; while (n3 < n2) { ((DataColumn)this.columnList.get(n3)).init(this.bufferSize); ++n3; } this.rowCount = 0; } public final void startRow() { if (this.rowCount != 0 && this.colIndex < this.columnList.size()) { throw new IllegalStateException("Cannot start a new row until the previous row is complete."); } this.colIndex = 0; if (this.rowCount == this.bufferSize) { int n = this.bufferSize * 2; int n2 = this.columnList.size(); int n3 = 0; while (n3 < n2) { ((DataColumn)this.columnList.get(n3)).grow(n, this.rowCount); ++n3; } this.bufferSize = n; } } public final void endRow() { if (this.colIndex != this.columnList.size()) { throw new IllegalStateException("Cannot end a row until all columns have been set."); } ++this.rowCount; } public final void endRows() { if ((this.rowCount != 0 || this.colIndex != 0) && this.colIndex != this.columnList.size()) { throw new IllegalStateException("Cannot end rows until the last column is complete."); } } public final void set(double d, BFacets bFacets) { ((DataColumn)this.columnList.get(this.colIndex++)).set(this.rowCount, d, bFacets); } public final void set(float f, BFacets bFacets) { ((DataColumn)this.columnList.get(this.colIndex++)).set(this.rowCount, f, bFacets); } public final void set(boolean bl, BFacets bFacets) { ((DataColumn)this.columnList.get(this.colIndex++)).set(this.rowCount, bl, bFacets); } public final void set(String string, BFacets bFacets) { ((DataColumn)this.columnList.get(this.colIndex++)).set(this.rowCount, string, bFacets); } public final void set(int n, BFacets bFacets) { ((DataColumn)this.columnList.get(this.colIndex++)).set(this.rowCount, n, bFacets); } public final void set(long l, BFacets bFacets) { ((DataColumn)this.columnList.get(this.colIndex++)).set(this.rowCount, l, bFacets); } public final void set(BIDataValue bIDataValue, BFacets bFacets) { ((DataColumn)this.columnList.get(this.colIndex++)).set(this.rowCount, bIDataValue, bFacets); } public final Type getType() { return TYPE; } static /* synthetic */ Class class(String string, boolean bl) { try { Class clazz = Class.forName(string); if (!bl) { clazz = clazz.getComponentType(); } return clazz; } catch (ClassNotFoundException classNotFoundException) { throw new NoClassDefFoundError(classNotFoundException.getMessage()); } } private final /* synthetic */ void this() { this.rowCount = 0; this.colIndex = 0; } public BDataTable() { this.this(); } static { Class clazz = class$com$tridium$data$BDataTable; if (clazz == null) { clazz = class$com$tridium$data$BDataTable = BDataTable.class("[Lcom.tridium.data.BDataTable;", false); } TYPE = Sys.loadType(clazz); } static class DataColumn implements Column { public String name; public String displayName; public Type type; public int flags; public BFacets facets; public Object rowData; public String getName() { return this.name; } public String getDisplayName(Context context) { return this.displayName; } public Type getType() { return this.type; } public int getFlags() { return this.flags; } public BFacets getFacets() { return this.facets; } public void init(int n) { char c = this.type.getDataTypeSymbol(); switch (c) { case 'd': { this.rowData = new double[n]; break; } case 'f': { this.rowData = new float[n]; break; } case 'b': { this.rowData = new boolean[n]; break; } case 's': { this.rowData = new String[n]; break; } case 'i': { this.rowData = new int[n]; break; } case 'l': { this.rowData = new long[n]; break; } default: { this.rowData = new BIDataValue[n]; } } } public void grow(int n, int n2) { char c = this.type.getDataTypeSymbol(); Object[] objectArray = null; switch (c) { case 'd': { objectArray = new double[n]; break; } case 'f': { objectArray = new float[n]; break; } case 'b': { objectArray = new boolean[n]; break; } case 's': { objectArray = new String[n]; break; } case 'i': { objectArray = new int[n]; break; } case 'l': { objectArray = new long[n]; break; } default: { objectArray = new BIDataValue[n]; } } System.arraycopy(this.rowData, 0, objectArray, 0, n2); this.rowData = objectArray; } public BIDataValue get(int n) { char c = this.type.getDataTypeSymbol(); if (c == 'd') { return BDouble.make(this.getDouble(n)); } if (c == 'f') { return BFloat.make(this.getFloat(n)); } if (c == 'b') { return BBoolean.make(this.getBoolean(n)); } if (c == 's') { return BString.make(this.getString(n)); } if (c == 'i') { return BInteger.make(this.getInt(n)); } if (c == 'l') { return BLong.make(this.getLong(n)); } return ((BIDataValue[])this.rowData)[n]; } public double getDouble(int n) { return ((double[])this.rowData)[n]; } public float getFloat(int n) { return ((float[])this.rowData)[n]; } public boolean getBoolean(int n) { return ((boolean[])this.rowData)[n]; } public int getInt(int n) { return ((int[])this.rowData)[n]; } public long getLong(int n) { return ((long[])this.rowData)[n]; } public String getString(int n) { return ((String[])this.rowData)[n]; } public void set(int n, double d, BFacets bFacets) { try { ((double[])this.rowData)[n] = d; } catch (Exception exception) { exception.printStackTrace(); } } public void set(int n, float f, BFacets bFacets) { try { ((float[])this.rowData)[n] = f; } catch (Exception exception) { exception.printStackTrace(); } } public void set(int n, boolean bl, BFacets bFacets) { ((boolean[])this.rowData)[n] = bl; } public void set(int n, String string, BFacets bFacets) { ((String[])this.rowData)[n] = string; } public void set(int n, int n2, BFacets bFacets) { ((int[])this.rowData)[n] = n2; } public void set(int n, long l, BFacets bFacets) { ((long[])this.rowData)[n] = l; } public void set(int n, BIDataValue bIDataValue, BFacets bFacets) { char c = this.type.getDataTypeSymbol(); if (c == 's') { this.set(n, ((BString)bIDataValue).toString(), bFacets); } else if (c == 'b') { this.set(n, ((BBoolean)bIDataValue).getBoolean(), bFacets); } else if (c == 'i') { this.set(n, ((BInteger)bIDataValue).getInt(), bFacets); } else if (c == 'l') { this.set(n, ((BLong)bIDataValue).getLong(), bFacets); } else if (c == 'f') { this.set(n, ((BFloat)bIDataValue).getFloat(), bFacets); } else if (c == 'd') { this.set(n, ((BDouble)bIDataValue).getDouble(), bFacets); } else { ((BIDataValue[])this.rowData)[n] = bIDataValue; } } public DataColumn(String string, String string2, Type type, int n, BFacets bFacets) { this.name = string; this.displayName = string2; this.type = type; this.flags = n; this.facets = bFacets; if (this.type == null) { this.type = BString.TYPE; } } } }