ObjectTable hinzugefügt

thobaben_serialize
Harald Wolff 2016-10-26 19:29:50 +02:00
parent 9458dff0f0
commit 1b29de87ef
1 changed files with 147 additions and 0 deletions

View File

@ -0,0 +1,147 @@
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;
}
}
}