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
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 }