KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > calipso > reportgenerator > reportcalculator > expression > VariableExp


1 package com.calipso.reportgenerator.reportcalculator.expression;
2
3 import java.util.Set JavaDoc;
4 import java.util.HashSet JavaDoc;
5 import java.io.Serializable JavaDoc;
6
7 /**
8  * Representa una expresión variable cuyo valor se obtiene del contexto durante la evaluación
9  */

10 public class VariableExp extends Expression implements Serializable JavaDoc {
11   Object JavaDoc reference;
12
13
14   /**
15    * Inicializa una Expresión variable con una referencia
16    * La referencia se utiliza para buscar un valor asociado en el contexto
17    * durante la evaluación
18    * @param aReference
19    */

20   public VariableExp(Object JavaDoc aReference) {
21     reference = aReference;
22   }
23
24   /**
25    * Resuelve la igualdad entre expresiones variables
26    * @param o
27    * @return
28    */

29   public boolean equals(Object JavaDoc o) {
30     if (this == o) return true;
31     if (!(o instanceof VariableExp)) return false;
32
33     final VariableExp variableExp = (VariableExp) o;
34
35     if (!reference.equals(variableExp.reference)) return false;
36
37     return true;
38   }
39
40   /**
41    * Genera el código hash para la expresión
42    * @return
43    */

44   public int hashCode() {
45     return reference.hashCode();
46   }
47
48   /**
49    * Devuelve la referencia
50    * @return
51    */

52   public Object JavaDoc getReference() {
53     return reference;
54   }
55
56   /**
57    * Asigna la referencia
58    * @param reference
59    */

60   public void setReference(Object JavaDoc reference) {
61     this.reference = reference;
62   }
63
64   /**
65    * Retorna la lista de variables de la expresión, en este caso la lista contiene solo a la expresión variable
66    * @return
67    */

68
69   protected Set JavaDoc variables() {
70     Set JavaDoc variables;
71
72     variables = new HashSet JavaDoc();
73     variables.add(this);
74     return variables;
75   }
76
77   /**
78    * Resuelve la representación en texto
79    * @return
80    */

81
82   protected String JavaDoc basicAsString() {
83     return reference.toString();
84   }
85
86   /**
87    * Devuelve TRUE porque es una expresión variable
88    * @return
89    */

90   public boolean isVariable() {
91     return true;
92   }
93
94   /**
95    * Resolución del pattern visitor
96    * @param visitor
97    * @return
98    */

99   public Object JavaDoc visitedBy(ExpressionVisitor visitor) {
100     return visitor.processVariable(this);
101   }
102
103 }
104
Popular Tags