1 package uba.db.column;
2
3 import java.io.DataInput;
4 import java.io.DataOutput;
5
6 import org.apache.commons.lang.builder.EqualsBuilder;
7 import org.apache.commons.lang.builder.HashCodeBuilder;
8
9 import uba.db.column.io.ColumnReader;
10 import uba.db.column.io.ColumnWriter;
11 import uba.db.column.io.IntegerColumnReader;
12 import uba.db.column.io.IntegerColumnWriter;
13
14 /***
15 * Representa una columna del tipo INTEGER.
16 *
17 * @version $Revision: 1.3 $
18 */
19 public class IntegerColumnSpecification extends ColumnSpecificationBehavior {
20 private static final long serialVersionUID = 3257008748139460144L;
21
22 /***
23 * String utilizado para mostrar el tipo de datos que representa esta especificación
24 * de columna.
25 *
26 * @see ColumnSpecification#dataTypeDisplayString()
27 */
28 public static final String DATATYPE_DISPLAY_STRING = "INTEGER";
29
30 /***
31 * Crea una instancia que representa una columna del tipo INTEGER.
32 *
33 * @param name nombre de la columna.
34 * @param constraint restricciones para esta columna (por ejemplo si puede o no
35 * ser null, etc).
36 */
37 public IntegerColumnSpecification(String name, ColumnConstraint constraint) {
38 super(DATATYPE_DISPLAY_STRING, name, constraint);
39 }
40
41 /***
42 * Crea una instancia que representa una columna del tipo INTEGER.<br>
43 * Con los constraints por default.
44 *
45 * @see ColumnConstraint#DEFAULT
46 *
47 * @param name nombre de la columna.
48 */
49 public IntegerColumnSpecification(String name) {
50 this(name, ColumnConstraint.DEFAULT);
51 }
52
53 /***
54 * @see java.lang.Object#equals(java.lang.Object)
55 */
56 public boolean equals(Object obj) {
57 return EqualsBuilder.reflectionEquals(this, obj);
58 }
59
60 /***
61 * @see java.lang.Object#hashCode()
62 */
63 public int hashCode() {
64 return HashCodeBuilder.reflectionHashCode(this);
65 }
66
67 /***
68 * @see uba.db.column.ColumnSpecification#readerFor(DataInput)
69 */
70 public ColumnReader readerFor(DataInput in) {
71 return new IntegerColumnReader(this, in);
72 }
73
74 /***
75 * @see uba.db.column.ColumnSpecification#writerFor(DataOutput)
76 */
77 public ColumnWriter writerFor(DataOutput out) {
78 return new IntegerColumnWriter(this, out);
79 }
80
81 /***
82 * @see java.lang.Object#toString()
83 */
84 public String toString() {
85 return name() + " " + dataTypeDisplayString();
86 }
87 }