forked from LupusNobilis/java-org.hwo
148 lines
2.9 KiB
Java
148 lines
2.9 KiB
Java
package org.hwo;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
public class ObjectTable {
|
|
|
|
private int width;
|
|
private List<ObjectSet> rows;
|
|
|
|
public ObjectTable(int width){
|
|
this.width = width;
|
|
this.rows = new ArrayList<ObjectTable.ObjectSet>();
|
|
}
|
|
public ObjectTable(){
|
|
this.width = 0;
|
|
this.rows = new ArrayList<ObjectTable.ObjectSet>();
|
|
}
|
|
|
|
public ObjectTable selectColums(int[] columns){
|
|
ObjectTable ot = new ObjectTable( columns.length );
|
|
|
|
for (ObjectSet row: this.rows){
|
|
Object[] sv = new Object[ columns.length ];
|
|
|
|
for (int i=0;i<columns.length;i++){
|
|
sv[i] = row.getValues()[columns[i]];
|
|
}
|
|
ot.add(sv);
|
|
}
|
|
|
|
return ot;
|
|
}
|
|
|
|
public ObjectSet getRow(int row){
|
|
return this.rows.get(row);
|
|
}
|
|
|
|
public ObjectSet[] getRows(){
|
|
return this.rows.toArray(new ObjectSet[0]);
|
|
}
|
|
|
|
public void add(ObjectSet row){
|
|
this.rows.add(row);
|
|
}
|
|
|
|
public void add(Object[] values){
|
|
if ((this.width == 0) && (this.rows.size()==0)){
|
|
this.width = values.length;
|
|
}
|
|
add(new ObjectSet(values));
|
|
}
|
|
|
|
public void remove(int row){
|
|
this.rows.remove(row);
|
|
}
|
|
public void remove(ObjectSet row){
|
|
this.rows.remove(row);
|
|
}
|
|
|
|
public void set(int row,Object[] values){
|
|
this.rows.get(row).set(values);
|
|
}
|
|
|
|
public void set(int row,int cell,Object value){
|
|
this.rows.get(row).set(cell, value);
|
|
}
|
|
|
|
public String getString(int row,int cell){
|
|
return this.rows.get(row).getString(cell);
|
|
}
|
|
public int getInteger(int row,int cell){
|
|
return this.rows.get(row).getInteger(cell);
|
|
}
|
|
public float getFloat(int row,int cell){
|
|
return this.rows.get(row).getFloat(cell);
|
|
}
|
|
|
|
|
|
public class ObjectSet{
|
|
|
|
private Object[] values;
|
|
|
|
public ObjectSet(){
|
|
this.values = new Object[ width ];
|
|
}
|
|
|
|
public ObjectSet(Object[] values){
|
|
this.values = new Object[ width ];
|
|
set(values);
|
|
}
|
|
|
|
public void set(Object[] values){
|
|
if (values.length > width){
|
|
throw new ArrayIndexOutOfBoundsException();
|
|
}
|
|
|
|
for (int n=0;n<values.length;n++){
|
|
this.values[n] = values[n];
|
|
}
|
|
for (int n=values.length;n<width;n++){
|
|
this.values[n] = null;
|
|
}
|
|
}
|
|
public void set(int n,Object o){
|
|
values[n] = o;
|
|
}
|
|
|
|
public Object[] getValues(){
|
|
return this.values;
|
|
}
|
|
|
|
public String getString(int n){
|
|
return values[n].toString();
|
|
}
|
|
public int getInteger(int n){
|
|
if (values[n]==null){
|
|
return 0;
|
|
} else if (Integer.class.isInstance(values[n])){
|
|
return (Integer)values[n];
|
|
} else {
|
|
return Integer.decode(values[n].toString());
|
|
}
|
|
}
|
|
public float getFloat(int n){
|
|
if (values[n]==null){
|
|
return 0;
|
|
} else if (Float.class.isInstance(values[n])){
|
|
return (Float)values[n];
|
|
} else {
|
|
return Float.parseFloat(values[n].toString());
|
|
}
|
|
}
|
|
|
|
public Object[] selectColums(int[] columns){
|
|
Object[] sv = new Object[ columns.length ];
|
|
|
|
for (int i=0;i<columns.length;i++){
|
|
sv[i] = this.values[columns[i]];
|
|
}
|
|
return sv;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|