Revision 22512 trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/rendering/filter/operations/OrOperator.java

View differences:

OrOperator.java
49 49

  
50 50
/**
51 51
 * Implements the funcionality of the Or operator
52
 * 
52
 *
53 53
 * @author Pepe Vidal Salvador - jose.vidal.salvador@iver.es
54 54
 *
55 55
 */
56
public class OrOperator implements Expression {
56
public class OrOperator extends Operator {
57 57

  
58

  
59

  
58 60
	private ArrayList<Expression> arguments = new ArrayList<Expression>();
59 61

  
60 62
	public String getName() {
61 63
		return OperationTags.OR_OP;
62 64
	}
63 65

  
64
	public Object evaluate(Hashtable<String, Value> symbol_table) throws ExpressionException{
66
	public OrOperator(Hashtable<String, Value> symbol_table) {
67
		super(symbol_table);
68
	}
65 69

  
70
	public Object evaluate() throws ExpressionException{
71

  
66 72
		boolean result = false;
67 73

  
68 74
		for (int i = 0; i < arguments.size(); i++){
69 75
			Expression function = (Expression)arguments.get(i);
70
			result = result || ((Boolean)((Expression)function).evaluate(symbol_table)).booleanValue();
76
			result = result || ((Boolean)((Expression)function).evaluate()).booleanValue();
71 77
		}
72 78
		return result;
73 79
	}
......
83 89

  
84 90
	public String getPattern() {
85 91
		return "("+Messages.getString(OperationTags.OPERAND)
86
		+ OperationTags.OR_OP +Messages.getString(OperationTags.OPERAND)+ ")\n"+ 
92
		+ OperationTags.OR_OP +Messages.getString(OperationTags.OPERAND)+ ")\n"+
87 93
		Messages.getString(OperationTags.OPERAND) +" = "+
88
		Messages.getString(OperationTags.BOOLEAN_VALUE);	
94
		Messages.getString(OperationTags.BOOLEAN_VALUE);
89 95
		}
90 96
	public ArrayList<Expression> getArguments() {
91 97
		return arguments;
......
95 101
		this.arguments = arguments;
96 102
	}
97 103

  
98
	public void check(Hashtable<String, Value> symbol_table) throws ExpressionException {
99
		
104
	public void check() throws ExpressionException {
105

  
100 106
		for (int i = 0; i < arguments.size(); i++) {
101
			if(!(arguments.get(i).evaluate(symbol_table)instanceof Boolean))
102
				throw new ExpressionException(ExpressionException.CLASS_CASTING_EXCEPTION);	
107
			if(!(arguments.get(i).evaluate()instanceof Boolean))
108
				throw new ExpressionException(ExpressionException.CLASS_CASTING_EXCEPTION);
103 109
		}
104 110
	}
111

  
105 112
}

Also available in: Unified diff