KickJava   Java API By Example, From Geeks To Geeks.

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


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 con un valor constante
9  */

10 public class ConstantExp extends Expression implements Serializable JavaDoc {
11
12
13   public ConstantExp() {
14   }
15
16   Object JavaDoc value;
17
18   /**
19    * Crea una expresión constante a partir de un valor
20    * @param value
21    */

22   public ConstantExp(Object JavaDoc value) {
23     this.value = value;
24   }
25
26   /**
27    * Crea una expresión constante correspondiente al valor que se recibe como parámetro
28    * @param aValue
29    * @return
30    */

31   public static ConstantExp forValue(Object JavaDoc aValue) {
32     if (aValue instanceof Boolean JavaDoc) {
33       if (((Boolean JavaDoc) aValue).booleanValue()) {
34         return new TrueExp();
35       }
36       else {
37         return new FalseExp();
38       }
39     }
40     return new ConstantExp(aValue);
41   }
42
43   /**
44    * Crea una expresión con la forma this AND expression
45    * @param expression
46    * @return
47    */

48   public Expression newAnd(Expression expression) {
49     return basicAnd(expression);
50   }
51
52   /**
53    * Crea una expresión con la forma this OR expression
54    * @param expression
55    * @return
56    */

57   public Expression newOr(Expression expression) {
58     return basicOr(expression);
59   }
60
61   /**
62    * Resuelve la representación en texto de la expresión
63    * @return
64    */

65   protected String JavaDoc basicAsString() {
66     return value.toString();
67   }
68
69   /**
70    * Devuelve verdadero porque representa un valor constante
71    * @return
72    */

73   public boolean isConstant() {
74     return true;
75   }
76
77   /**
78    * Devuelve el valor representado por la expresión
79    * @return
80    */

81   public Object JavaDoc getValue() {
82     return value;
83   }
84
85   /**
86    * Devuelve un Set vacío porque una expresión constante no tiene subexpresiones ni variables
87    * @return
88    */

89   protected Set JavaDoc variables() {
90     return new HashSet JavaDoc();
91   }
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.processConstant(this);
101   }
102 }
103
Popular Tags