1 package uba.db.column.io;
2
3 import java.io.DataInput;
4 import java.io.IOException;
5
6 import uba.db.column.CharColumnSpecification;
7
8
9 /***
10 * Lee de un {@link DataInput} el valor de una columna tipo CHAR.
11 *
12 * @see uba.db.column.CharColumnSpecification
13 *
14 * @version $Revision: 1.2 $
15 */
16 public class CharColumnReader extends ColumnReaderBehavior {
17 private int maxChars;
18
19 /***
20 * @param columnSpecification especificación de la columna a la cual pertenece este
21 * reader.
22 * @param input stream desde donde se leerán los datos.
23 */
24 public CharColumnReader(CharColumnSpecification columnSpecification,
25 DataInput input) {
26 super(columnSpecification, input);
27 this.maxChars = columnSpecification.maxChars();
28 }
29
30 /***
31 * @see uba.db.column.io.ColumnReaderBehavior#readFrom(DataInput)
32 */
33 public Object readFrom(DataInput in) throws IOException {
34 StringBuffer result = new StringBuffer();
35
36
37
38
39 for (int i = 0; i < maxChars; i++) {
40 char c = in.readChar();
41 if (c != 0) {
42 result.append(c);
43 }
44 }
45
46 return result.toString();
47 }
48 }