1 package uba.db.sql.language;
2
3 /***
4 * Comportamiento de los criterios de seleccón compuestos por dos expresiones
5 * (como <i>criterioDeSeleccion1 AND criterioDeSeleccion2</i>).
6 *
7 * @version $Revision: 1.6 $
8 */
9 public abstract class BinarySelectionCriteriaBehavior extends SelectionCriteriaBehavior {
10 private SelectionCriteria left;
11 private SelectionCriteria right;
12
13 /***
14 * Las sub-clases deben invocar a este constructor para indicar los
15 * terminos a ambos lados del operador.
16 *
17 * @param left termino de la izquierda.
18 * @param right termino de la derecha.
19 */
20 public BinarySelectionCriteriaBehavior(SelectionCriteria left, SelectionCriteria right) {
21 this.left = left;
22 this.right = right;
23 }
24
25 /***
26 * @see java.lang.Object#toString()
27 */
28 public String toString() {
29 return "(" + left.toString() + operatorAsString() + right.toString() + ")";
30 }
31
32 /***
33 * Retorna el termino a la izquierda.
34 */
35 public SelectionCriteria left() {
36 return left;
37 }
38
39 /***
40 * Retorna el termino a la derecha.
41 */
42 public SelectionCriteria right() {
43 return right;
44 }
45
46 /***
47 * Las subclases deben implementar este método retornando la representacion
48 * en String del operador que representan.
49 */
50 protected abstract String operatorAsString();
51 }