Revision 1693 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/evaluator/AndEvaluator.java

View differences:

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