540 lines
16 KiB
Java
540 lines
16 KiB
Java
/*
|
|
* 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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|