001: package com.calipso.reportgenerator.reportcalculator;
002:
003: import java.util.*;
004: import java.io.Serializable;
005:
006: import com.calipso.reportgenerator.common.InfoException;
007:
008: /**
009: *
010: */
011: public class CollectionMatrix implements Matrix, Serializable {
012:
013: private List rows;
014: Vector columnNames;
015:
016: public CollectionMatrix() {
017: rows = new LinkedList();
018: }
019:
020: /**
021: * Devuelve la lista de rows
022: * @return la lista de rows
023: */
024: private List getRows() {
025: return rows;
026: }
027:
028: public void add(Object[] row) throws InfoException {
029: getRows().add(row);
030: }
031:
032: public Iterator iterator() throws InfoException {
033: return getRows().iterator();
034: }
035:
036: public boolean isEmpty() {
037: return rows.isEmpty();
038: }
039:
040: public int size() {
041: return getRows().size();
042: }
043:
044: public void setColumNames(Vector columnNames) {
045: this .columnNames = columnNames;
046: }
047:
048: public void addAll(Matrix sourceMatrix) throws InfoException {
049: Iterator iterator = sourceMatrix.iterator();
050: while (iterator.hasNext()) {
051: Object[] objects = (Object[]) iterator.next();
052: add(objects);
053: }
054: }
055:
056: public int getRowCount() {
057: return rows.size();
058: }
059:
060: public int getColumCount() {
061: return columnNames.size();
062: }
063:
064: public String getColumName(int i) throws IndexOutOfBoundsException {
065: return (String) columnNames.get(i);
066: }
067:
068: public void setColumName(int i, String string)
069: throws IndexOutOfBoundsException, InfoException {
070: columnNames.set(i, string);
071: }
072:
073: public Object getValueAt(int i, int i1)
074: throws IndexOutOfBoundsException {
075: //Este metodo no deberia utilizarse
076: return ((Object[]) rows.get(i))[i1];
077: }
078:
079: public Collection getColumValues(int i)
080: throws IndexOutOfBoundsException {
081: //Este metodo no es implementado porque no se utiliza.
082: throw new NoSuchMethodError();
083: }
084:
085: public Collection getRowValues(int i)
086: throws IndexOutOfBoundsException {
087: //Este metodo no deberia utilizarse
088: return Arrays.asList((Object[]) rows.get(i));
089: }
090:
091: public void updateValueAt(int i, int i1, Object object)
092: throws IndexOutOfBoundsException {
093: //Este metodo no deberia utilizarse
094: ((Object[]) rows.get(i))[i1] = object;
095: }
096:
097: public void addRow(Collection collection) throws InfoException {
098: add(collection.toArray());
099: }
100: }
|