View Javadoc

1   package uba.db.column.io;
2   
3   import java.io.DataOutput;
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.ColumnWriter}.
11   * 
12   * @version $Revision: 1.3 $
13   */
14  public abstract class ColumnWriterBehavior implements ColumnWriter {
15      private ColumnSpecification columnSpecification;
16      private DataOutput out;
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 out
24       *            stream desde donde se escribirán los datos.
25       */
26      public ColumnWriterBehavior(ColumnSpecification columnSpecification, DataOutput out) {
27          this.columnSpecification = columnSpecification;
28          this.out = out;
29      }
30  
31      /***
32       * @see uba.db.column.io.ColumnWriter#write(java.lang.Object)
33       */
34      public void write(Object value) throws IOException {
35          writeTo(out, value);
36      }
37  
38      /***
39       * Las subclases deben implementar este método para escribir los datos.
40       * 
41       * @param o
42       *            stream desde donde se escribiran los datos.
43       * @param value
44       *            el valor a escribir
45       * 
46       * @throws Throwable
47       *             en caso de que ocurra un error al escribir la columna.
48       */
49      protected abstract void writeTo(DataOutput o, Object value) throws IOException;
50  
51      /***
52       * @see uba.db.column.io.ColumnWriter#columnSpecification()
53       */
54      public ColumnSpecification columnSpecification() {
55          return columnSpecification;
56      }
57  }