01: /*
02:
03: */
04:
05: package com.calipso.reportgenerator.reportcalculator;
06:
07: import java.util.Collection;
08: import com.calipso.reportgenerator.common.InfoException;
09:
10: /**
11: * Almacena y permite modificar datos en una matriz de objetos de dos dimensiones.
12: * Sólo permite introducir valores fila a fila.
13: */
14: public interface IDataSource {
15: /**
16: * Devuelve el número de filas de esta matriz de objetos
17: * @return número de filas
18: */
19: public int getRowCount();
20:
21: /**
22: * Devuelve el número de columnas de esta matriz de objetos
23: * @return número de columnas
24: */
25: public int getColumCount();
26:
27: /**
28: * Devuelve el nombre de la columna
29: * @param colum - número de columna
30: * @return Nombre de la columna
31: * @throws IndexOutOfBoundsException - Si la posición solicitada no se encuadra en las dimensiones de la matriz
32: */
33: public String getColumName(int colum)
34: throws IndexOutOfBoundsException;
35:
36: /**
37: * Asigna un nombre a una columna
38: * @param colum - número de columna
39: * @param name - nombre que se asigna a la columna
40: * @throws IndexOutOfBoundsException - Si la posición solicitada no se encuadra en las dimensiones de la matriz
41: * @throws InfoException - Si el nombre que se desea asignar a la columna es null
42: */
43: public void setColumName(int colum, String name)
44: throws IndexOutOfBoundsException, InfoException;
45:
46: /**
47: * Devuelve el objeto posicionado en la fila y columna especificada
48: * @param row - Número de fila
49: * @param colum - Número de columna
50: * @return Object posicionado en la fila row y columna colum
51: * @throws IndexOutOfBoundsException - Si la posición solicitada no se encuadra en las dimensiones de la matriz
52: */
53: public Object getValueAt(int row, int colum)
54: throws IndexOutOfBoundsException;
55:
56: /**
57: * Devuelve los objetos posicionados en la columna especificada
58: * @param colum - número de columna
59: * @return Collection con los objetos seleccionados
60: * @throws IndexOutOfBoundsException - Si la posición solicitada no se encuadra en las dimensiones de la matriz
61: */
62: public Collection getColumValues(int colum)
63: throws IndexOutOfBoundsException;
64:
65: /**
66: * Devuelve los objetos posicionados en la columna especificada
67: * @param row - número de fila
68: * @return Collection con los objetos seleccionados
69: * @throws IndexOutOfBoundsException - Si la posición solicitada no se encuadra en las dimensiones de la matriz
70: */
71: public Collection getRowValues(int row)
72: throws IndexOutOfBoundsException;
73:
74: /**
75: * Modifica el objeto posicionado en la coordenada solicitada
76: * @param row - número de fila
77: * @param colum - número de columna
78: * @param newValue - nuevo valor a posicionar en la coordenada solicitada
79: * @throws IndexOutOfBoundsException - Si la posición solicitada no se encuadra en las dimensiones de la matriz
80: */
81: public void updateValueAt(int row, int colum, Object newValue)
82: throws IndexOutOfBoundsException;
83:
84: /**
85: * Añade una nueva fila a la matriz
86: * @param row - Fila a insertar
87: * @throws InfoException - Si la fila que se desea introducir no tiene el mismo número de columnas que la matriz
88: */
89: public void addRow(Collection row) throws InfoException;
90: }
|