KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > calipso > reportgenerator > reportcalculator > ExpressionCubeFilter


1 package com.calipso.reportgenerator.reportcalculator;
2
3 import com.calipso.reportgenerator.reportcalculator.expression.Expression;
4 import com.calipso.reportgenerator.reportcalculator.expression.Context;
5 import com.calipso.reportgenerator.reportcalculator.expression.RowContext;
6 import com.calipso.reportgenerator.reportcalculator.CubeFilter;
7
8 import java.util.Map JavaDoc;
9
10 /**
11  * Filtro basado en una expresión booleana
12  * @see com.calipso.reportgenerator.reportcalculator.expression.Expression
13  */

14 public class ExpressionCubeFilter extends CubeFilter {
15   Expression expresion;
16   private Map JavaDoc paramValues;
17
18   public Map JavaDoc getParamValues() {
19     return paramValues;
20   }
21
22   /**
23    * Crea un nuevo filtro a partir de una expresión
24    * @param expresion
25    */

26   public ExpressionCubeFilter(Expression expresion, Map JavaDoc paramValues) {
27     this.paramValues = paramValues;
28     this.expresion = expresion;
29   }
30
31   /**
32    * Crea un contexto de evaluación a partir de un row
33    * @param row
34    * @return
35    */

36   private Context getContext(Object JavaDoc[] row) {
37     return new RowContext(row);
38   }
39
40   /**
41    * Devuelve el texto de la condición Oql de la expresión
42    * @return
43    */

44   public String JavaDoc getOqlText() {
45     return expresion.toString();
46   }
47
48   /**
49    * Evalúa el filtro para una row
50    * @param row
51    * @return
52    */

53   public boolean matches(Object JavaDoc[] row) {
54     if(expresion!=null){
55       return expresion.valueIn(getContext(row));
56     }else{
57       return true;
58     }
59   }
60
61   /**
62    * Devuelve la representación en texto del filtro
63    * @return
64    */

65   public String JavaDoc toString() {
66     if(expresion!=null){
67       return expresion.toString();
68     }else{
69       return "";
70     }
71   }
72
73   public boolean equals(Object JavaDoc obj){
74     if (super.equals(obj))return true;
75     if (obj instanceof ExpressionCubeFilter && ((ExpressionCubeFilter)obj).expresion!=null){
76       return expresion.equals(((ExpressionCubeFilter)obj).expresion);
77     }
78     return false;
79   }
80
81
82 }
83
Popular Tags