1 package uba.db.sql.language;
2
3 import org.apache.commons.lang.builder.EqualsBuilder;
4 import org.apache.commons.lang.builder.HashCodeBuilder;
5
6 /***
7 * Representa una columna que se mostrará en el resultado de un select.
8 *
9 * @version $Revision: 1.6 $
10 */
11 public class DisplayOneColumn implements DisplayColumns {
12 private SingleValue expression;
13
14 /***
15 * Crea una instancia que representa una columna a mostrar.
16 *
17 * @param expression
18 * la expresión a mostrar en la columna.s
19 */
20 public DisplayOneColumn(SingleValue expression) {
21 this.expression = expression;
22 }
23
24 /***
25 * @see uba.db.sql.language.DisplayColumns#append(uba.db.sql.language.DisplayColumns)
26 */
27 public DisplayColumns append(DisplayColumns columns) {
28 return columns.appendTo(this);
29 }
30
31 /***
32 * @see uba.db.sql.language.DisplayColumns#appendTo(uba.db.sql.language.DisplayAllColumns)
33 */
34 public DisplayColumns appendTo(DisplayAllColumns columns) {
35 return new DisplayMultipleColumns(columns, this);
36 }
37
38 /***
39 * @see uba.db.sql.language.DisplayColumns#appendTo(uba.db.sql.language.DisplayMultipleColumns)
40 */
41 public DisplayColumns appendTo(DisplayMultipleColumns columns) {
42 return columns.appendAsOne(this);
43 }
44
45 /***
46 * @see uba.db.sql.language.DisplayColumns#appendTo(uba.db.sql.language.DisplayOneColumn)
47 */
48 public DisplayColumns appendTo(DisplayOneColumn oneColumn) {
49 return new DisplayMultipleColumns(oneColumn, this);
50 }
51
52 /***
53 * @see java.lang.Object#equals(java.lang.Object)
54 */
55 public boolean equals(Object obj) {
56 return EqualsBuilder.reflectionEquals(this, obj);
57 }
58
59 /***
60 * @see java.lang.Object#hashCode()
61 */
62 public int hashCode() {
63 return HashCodeBuilder.reflectionHashCode(this);
64 }
65
66 /***
67 * @see java.lang.Object#toString()
68 */
69 public String toString() {
70 return expression.toString();
71 }
72
73 /***
74 * @see uba.db.sql.language.Visitable#accept(uba.db.sql.language.Visitor)
75 */
76 public void accept(Visitor visitor) {
77 visitor.visitDisplayOneColumn(this);
78 }
79
80 /***
81 * Retorna la expresión que contiene esta columna.
82 */
83 public SingleValue expression() {
84 return expression;
85 }
86 }