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 un criterio de selección (ver
8 * {@link uba.db.sql.language.SelectionCriteria}), que contiene una expresión
9 * booleana.
10 *
11 * @version $Revision: 1.11 $
12 */
13 public class SingleSelectionCriteria extends SelectionCriteriaBehavior {
14 private BooleanValue expression;
15
16 /***
17 * Crea un criterio de selección para una expresión booleana.
18 *
19 * @param expression
20 * expresión booleana que utilizará el criterio de selección.
21 */
22 public SingleSelectionCriteria(BooleanValue expression) {
23 this.expression = expression;
24 }
25
26 /***
27 * @see java.lang.Object#hashCode()
28 */
29 public int hashCode() {
30 return HashCodeBuilder.reflectionHashCode(this);
31 }
32
33 /***
34 * @see java.lang.Object#equals(java.lang.Object)
35 */
36 public boolean equals(Object obj) {
37 return EqualsBuilder.reflectionEquals(this, obj);
38 }
39
40 /***
41 * @see java.lang.Object#toString()
42 */
43 public String toString() {
44 return expression.toString();
45 }
46
47 /***
48 * @see uba.db.sql.language.Visitable#accept(uba.db.sql.language.Visitor)
49 */
50 public void accept(Visitor visitor) {
51 visitor.visitSingleSelectionCriteria(this);
52 }
53
54 /***
55 * Retorna la expresión booleana que contiene es criterio de selección.
56 */
57 public BooleanValue expression() {
58 return expression;
59 }
60
61 /***
62 * @see uba.db.sql.language.SelectionCriteria#valueWith(uba.db.sql.language.EvaluationContext)
63 */
64 public Object valueWith(EvaluationContext context) {
65 return expression.valueWith(context);
66 }
67 }