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 }