View Javadoc

1   package uba.db.column.io;
2   
3   import java.io.DataInput;
4   import java.io.IOException;
5   
6   import uba.db.column.ColumnSpecification;
7   
8   /***
9    * Clase base para facilitar la implementación de la interfaz
10   * {@link uba.db.column.io.ColumnReader}.
11   * 
12   * @version $Revision: 1.3 $
13   */
14  public abstract class ColumnReaderBehavior implements ColumnReader {
15      private DataInput input;
16      private ColumnSpecification columnSpecification;
17  
18      /***
19       * Las sub-clases deben llamar a este constructor.
20       * 
21       * @param columnSpecification
22       *            especificación de la columna a la cual pertenece este reader.
23       * @param input
24       *            stream desde donde se leerán los datos.
25       */
26      public ColumnReaderBehavior(ColumnSpecification columnSpecification, DataInput input) {
27          this.columnSpecification = columnSpecification;
28          this.input = input;
29      }
30  
31      /***
32       * @see uba.db.column.io.ColumnReader#read()
33       */
34      public Object read() throws IOException {
35          return readFrom(input);
36      }
37  
38      /***
39       * Las subclases deben implementar este método para leer los datos.
40       * 
41       * @param in
42       *            stream desde donde se obtienen los datos.
43       * 
44       * @throws IOException
45       *             en caso de que ocurra un error al leer la columna.
46       * 
47       * @return los datos leidos.
48       */
49      protected abstract Object readFrom(DataInput in) throws IOException;
50  }