2026-03-17 13:31:18 -07:00

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;
}
}
}
}