Revision 1693 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/evaluator/AndEvaluator.java
AndEvaluator.java | ||
---|---|---|
25 | 25 |
|
26 | 26 |
import java.util.ArrayList; |
27 | 27 |
import java.util.List; |
28 |
import org.gvsig.tools.lang.Cloneable; |
|
28 | 29 |
|
29 | 30 |
|
30 | 31 |
/** |
... | ... | |
42 | 43 |
* @version $Id$ |
43 | 44 |
* |
44 | 45 |
*/ |
45 |
public class AndEvaluator extends AbstractEvaluator{ |
|
46 |
private List evaluators = new ArrayList();
|
|
46 |
public class AndEvaluator extends AbstractEvaluator implements Cloneable{
|
|
47 |
private List<Evaluator> evaluators = new ArrayList<>();
|
|
47 | 48 |
|
49 |
@SuppressWarnings("OverridableMethodCallInConstructor") |
|
48 | 50 |
public AndEvaluator(Evaluator evaluator) { |
49 | 51 |
super(); |
50 | 52 |
addEvaluator(evaluator); |
51 | 53 |
} |
54 |
|
|
55 |
public List<Evaluator> getEvaluators() { |
|
56 |
return evaluators; |
|
57 |
} |
|
52 | 58 |
|
59 |
@Override |
|
60 |
public Object clone() throws CloneNotSupportedException { |
|
61 |
AndEvaluator other = (AndEvaluator) super.clone(); |
|
62 |
other.evaluators = new ArrayList(); |
|
63 |
for (Evaluator evaluator : this.evaluators) { |
|
64 |
if( evaluator instanceof Cloneable ) { |
|
65 |
evaluator = (Evaluator) ((Cloneable)evaluator).clone(); |
|
66 |
} |
|
67 |
other.evaluators.add(evaluator); |
|
68 |
} |
|
69 |
return other; |
|
70 |
} |
|
71 |
|
|
72 |
@Override |
|
53 | 73 |
public Object evaluate(EvaluatorData data) throws EvaluatorException { |
54 | 74 |
for (int i=0 ; i<evaluators.size() ; i++){ |
55 | 75 |
Evaluator evaluator = (Evaluator)evaluators.get(i); |
56 |
if (!((Boolean)evaluator.evaluate(data)).booleanValue()){
|
|
76 |
if (!((Boolean)evaluator.evaluate(data))){ |
|
57 | 77 |
return Boolean.FALSE; |
58 | 78 |
} |
59 | 79 |
} |
60 | 80 |
return Boolean.TRUE; |
61 | 81 |
} |
62 | 82 |
|
83 |
@Override |
|
63 | 84 |
public String getName() { |
64 | 85 |
return "a set of evaluators"; |
65 | 86 |
} |
... | ... | |
70 | 91 |
} |
71 | 92 |
} |
72 | 93 |
|
94 |
@Override |
|
73 | 95 |
public String getSQL() { |
74 | 96 |
if (evaluators.size() > 0){ |
75 |
StringBuffer stringBuffer = new StringBuffer(((Evaluator)evaluators.get(0)).getSQL());
|
|
97 |
StringBuilder stringBuffer = new StringBuilder(((Evaluator)evaluators.get(0)).getSQL());
|
|
76 | 98 |
for (int i=1 ; i<evaluators.size() ; i++){ |
77 |
stringBuffer.append(" and " + ((Evaluator)evaluators.get(i)).getSQL());
|
|
99 |
stringBuffer.append(" and ").append(((Evaluator)evaluators.get(i)).getSQL());
|
|
78 | 100 |
} |
79 | 101 |
return stringBuffer.toString(); |
80 | 102 |
}else{ |
Also available in: Unified diff