1 package at.meikel.dmrl.server.xlsreader;
2
3 import java.util.Collections;
4 import java.util.Hashtable;
5 import java.util.SortedSet;
6 import java.util.TreeSet;
7 import java.util.Vector;
8
9 public class Row {
10
11 private Hashtable<Integer, Object> columns = new Hashtable<Integer, Object>();
12 private StringBuilder toString = new StringBuilder();
13 private String asString = null;
14
15 public void setColumnValue(int columnIndex, Object value) {
16 columns.put(new Integer(columnIndex), value);
17 if (value != null) {
18 if (toString.length() > 0) {
19 toString.append(";");
20 }
21 toString.append(value);
22 }
23 }
24
25 public int getMinColumnIndex() {
26 return Collections.min(columns.keySet());
27 }
28
29 public int getMaxColumnIndex() {
30 return Collections.max(columns.keySet());
31 }
32
33 public SortedSet<Integer> getColomnIndices() {
34 return new TreeSet<Integer>(columns.keySet());
35 }
36
37 public Object getColumnValue(int columnIndex) {
38 return columns.get(new Integer(columnIndex));
39 }
40
41 public Object getNthColumnValue(int columnIndex) {
42 Vector<Integer> keys = new Vector<Integer>(columns.keySet());
43 if (keys.isEmpty()) {
44 return null;
45 }
46
47 if (columnIndex >= keys.size()) {
48 return null;
49 }
50
51 Collections.sort(keys);
52 return columns.get(keys.get(columnIndex));
53 }
54
55 @Override
56 public String toString() {
57 if (asString == null) {
58 toString.insert(0, "[Row (");
59 toString.append(")]");
60 asString = toString.toString();
61 }
62 return asString;
63 }
64
65 }