1 package uba.db.column;
2
3 import java.io.Serializable;
4
5 import org.apache.commons.lang.builder.EqualsBuilder;
6 import org.apache.commons.lang.builder.HashCodeBuilder;
7
8 /***
9 * Representa las restricciones que tiene el valor de una columna. (por ejemplo
10 * si puede ser o no null).
11 *
12 * @version $Revision: 1.3 $
13 */
14 public class ColumnConstraint implements Serializable {
15 private static final long serialVersionUID = 3978146564730336824L;
16
17 /***
18 * Instancia de ColumnConstraint, para una columna que no puede ser nula.
19 */
20 public static final ColumnConstraint NOT_NULL = new ColumnConstraint(true);
21
22 /***
23 * Instancia de ColumnConstraint, para en la cual no se especifico ningún constraint.
24 * (por default los valores de las columnas pueden ser nulos).
25 */
26 public static final ColumnConstraint DEFAULT = new ColumnConstraint(false);
27
28 private boolean notNull;
29
30
31 /***
32 * Crea una nueva instancia especificando si la columna puede o no ser nula.
33 *
34 * @param notNull <i>true</i> si la columna no puede ser nula.
35 */
36 public ColumnConstraint(boolean notNull) {
37 this.notNull = notNull;
38 }
39
40 /***
41 * Retorna <i>true</i> si la columna no puede ser nula.
42 */
43 public boolean notNull() {
44 return notNull;
45 }
46
47 /***
48 * @see java.lang.Object#equals(java.lang.Object)
49 */
50 public boolean equals(Object obj) {
51 return EqualsBuilder.reflectionEquals(this, obj);
52 }
53
54 /***
55 * @see java.lang.Object#hashCode()
56 */
57 public int hashCode() {
58 return HashCodeBuilder.reflectionHashCode(this);
59 }
60 }