View Javadoc

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 AND, en la clausa WHERE de una sentencia SQL.
8    * 
9    * @version $Revision: 1.6 $
10   */
11  public class AndSelectionCriteria extends BinarySelectionCriteriaBehavior {
12      /***
13       * @param left termino izquierdo.
14       * @param right termino derecho.
15       */
16      public AndSelectionCriteria(SelectionCriteria left, SelectionCriteria right) {
17          super(left, right);
18      }
19  
20      /***
21       * @see uba.db.sql.language.Visitable#accept(uba.db.sql.language.Visitor)
22       */
23      public void accept(Visitor visitor) {
24          visitor.visitAndSelectionCriteria(this);
25      }
26  
27      /***
28       * @see java.lang.Object#equals(java.lang.Object)
29       */
30      public boolean equals(Object obj) {
31          return EqualsBuilder.reflectionEquals(this, obj);
32      }
33  
34      /***
35       * @see java.lang.Object#hashCode()
36       */
37      public int hashCode() {
38          return HashCodeBuilder.reflectionHashCode(this);
39      }
40  
41      /***
42       * @see uba.db.sql.language.BinarySelectionCriteriaBehavior#operatorAsString()
43       */
44      protected String operatorAsString() {
45          return " AND ";
46      }
47  
48      /***
49       * @see uba.db.sql.language.SelectionCriteria#valueWith(uba.db.sql.language.EvaluationContext)
50       */
51      public Object valueWith(EvaluationContext context) {
52          Boolean valueLeft = (Boolean) (left().valueWith(context));
53          Boolean valueRight = (Boolean) (right().valueWith(context));
54          return new Boolean(valueLeft.booleanValue() && valueRight.booleanValue());
55      }
56  }