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 una clausula del tipo: value IN valueList (para utilizar en el
8    * criterio de selección de un SELECT).
9    * 
10   * @see uba.db.sql.language.SelectionCriteria
11   * 
12   * @version $Revision: 1.7 $
13   */
14  public class InSelectionCriteria extends SelectionCriteriaBehavior {
15      private SingleValue valueToFind;
16  
17      private ValueList valueList;
18  
19      /***
20       * Crea una instancia que representa la expresión: valueToFind IN valueList
21       * 
22       * @param valueToFind
23       *            valor a buscar
24       * @param valueList
25       *            lista de valores (que puede ser tambien un SELECT).
26       */
27      public InSelectionCriteria(SingleValue valueToFind, ValueList valueList) {
28          this.valueToFind = valueToFind;
29          this.valueList = valueList;
30      }
31  
32      /***
33       * @see uba.db.sql.language.Visitable#accept(uba.db.sql.language.Visitor)
34       */
35      public void accept(Visitor visitor) {
36          visitor.visitInSelectionCriteria(this);
37      }
38  
39      /***
40       * @see java.lang.Object#equals(java.lang.Object)
41       */
42      public boolean equals(Object obj) {
43          return EqualsBuilder.reflectionEquals(this, obj);
44      }
45  
46      /***
47       * @see java.lang.Object#hashCode()
48       */
49      public int hashCode() {
50          return HashCodeBuilder.reflectionHashCode(this);
51      }
52  
53      /***
54       * Retorna el objeto que representa la lista de valores.
55       */
56      public ValueList valueList() {
57          return valueList;
58      }
59  
60      /***
61       * Retorna el valor a buscar en la lista de valores.
62       */
63      public SingleValue valueToFind() {
64          return valueToFind;
65      }
66  
67      /***
68       * @see java.lang.Object#toString()
69       */
70      public String toString() {
71          return valueToFind + " IN (" + valueList + ")";
72      }
73  
74      /*
75       * @see uba.db.sql.language.SelectionCriteria#valueWith(uba.db.sql.language.EvaluationContext)
76       */
77      public Object valueWith(EvaluationContext context) {
78          /***
79           * @TODO para la segunda parte del tp
80           */
81          return null;
82      }
83  }