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