Revision 31408

View differences:

trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/rendering/filter/operations/GreaterThanOrEqualsOperator.java
66 66
	}
67 67

  
68 68
	public Object evaluate()throws ExpressionException {
69
		Double left = new Double(((Expression)arguments.get(0)).evaluate().toString());
70
		Double right = new Double(((Expression)arguments.get(1)).evaluate().toString());
69
		Object eval1=((Expression)arguments.get(0)).evaluate();
70
		Object eval2=((Expression)arguments.get(1)).evaluate();
71
		if (eval1==null || eval2==null){
72
			return false;
73
		}
74
		Double left = new Double(eval1.toString());
75
		Double right = new Double(eval2.toString());
71 76

  
72 77
		if (left >= right)
73 78
			return true;
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/rendering/filter/operations/MultOperator.java
75 75
		try {
76 76

  
77 77
			intResult = (Integer)((Expression)arguments.get(0)).evaluate();
78
			if (intResult==null)
79
				return new Integer(0);
78 80
			if (arguments.size() == 1)
79 81
				return intResult;
80 82

  
81 83
			for (int i = 1; i < arguments.size(); i++){
82 84
				Expression function = (Expression)arguments.get(i);
83
				intResult *= ((Integer)function.evaluate());
85
				Integer eval=(Integer)function.evaluate();
86
				if (eval==null)
87
					eval=new Integer(0);
88
				intResult *= eval;
84 89
			}
85 90

  
86 91
			return intResult;
......
89 94
		} catch (ClassCastException e) {
90 95

  
91 96
			doubleResult = new Double(((Expression)arguments.get(0)).evaluate().toString());
97
			if (doubleResult==null)
98
				return new Double(0);
92 99
			if(arguments.size() == 1)
93 100
				return doubleResult;
94 101
			for (int i = 1; i < arguments.size(); i++){
95 102
				Expression function = (Expression)arguments.get(i);
96
				doubleResult *= new Double(((Expression)function).evaluate().toString());
103
				Object eval=function.evaluate();
104
				if (eval==null)
105
					eval=new Double(0);
106
				doubleResult *= new Double(eval.toString());
97 107
			}
98 108

  
99 109
			return doubleResult;
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/rendering/filter/operations/LessThanOperator.java
66 66
	}
67 67

  
68 68
	public Object evaluate()throws ExpressionException {
69
		Object eval1=((Expression)arguments.get(0)).evaluate();
70
		Object eval2=((Expression)arguments.get(1)).evaluate();
71
		if (eval1==null || eval2==null){
72
			return false;
73
		}
74
		Double left = new Double(eval1.toString());
75
		Double right =new Double(eval2.toString());
69 76

  
70
		Double left = new Double(((Expression)arguments.get(0)).evaluate().toString());
71
		Double right =new Double(((Expression)arguments.get(1)).evaluate().toString());
72

  
73 77
		if (left < right)
74 78
			return true;
75 79
		else
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/rendering/filter/operations/DivOperator.java
75 75
		try {
76 76

  
77 77
			intResult = (Integer)((Expression)arguments.get(0)).evaluate();
78
			if (intResult==null)
79
				return new Integer(0);
78 80
			if (arguments.size() == 1)
79 81
				return intResult;
80 82

  
81 83
			for (int i = 1; i < arguments.size(); i++){
82 84
				Expression function = (Expression)arguments.get(i);
83
				intResult /= ((Integer)function.evaluate());
85
				Integer value2=((Integer)function.evaluate());
86
				if (value2==null)
87
					value2=new Integer(1);
88
				intResult /= value2;
84 89
			}
85 90

  
86 91
			return intResult;
87 92

  
88 93

  
89 94
		} catch (ClassCastException e) {
90

  
91
			doubleResult = new Double(((Expression)arguments.get(0)).evaluate().toString());
95
			Object value1=((Expression)arguments.get(0)).evaluate();
96
			if (value1==null)
97
				return new Double(0);
98
			doubleResult = new Double(value1.toString());
92 99
			if(arguments.size() == 1)
93 100
				return doubleResult;
94 101
			for (int i = 1; i < arguments.size(); i++){
95 102
				Expression function = (Expression)arguments.get(i);
103
				Object value2=((Expression)function).evaluate();
104
				if (value2==null){
105
					value2=new Double(1);
106
				}
96 107
				doubleResult /= new Double(((Expression)function).evaluate().toString());
97 108
			}
98 109

  
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/rendering/filter/operations/IsBetweenOperator.java
66 66
	}
67 67

  
68 68
	public Object evaluate()throws ExpressionException {
69

  
70

  
71 69
		if(arguments.size() != 3)
72 70
			throw new ExpressionException(ExpressionException.INCORRECT_NUMBER_OF_ARGUMENTS);
73
		else {
74
			Double middle = new Double(((Expression)arguments.get(0)).evaluate().toString());
75
			Double lower = new Double(((Expression)arguments.get(1)).evaluate().toString());
76
			Double upper = new Double(((Expression)arguments.get(2)).evaluate().toString());
71
		Object eval1=((Expression)arguments.get(0)).evaluate();
72
		Object eval2=((Expression)arguments.get(1)).evaluate();
73
		Object eval3=((Expression)arguments.get(2)).evaluate();
74
		if (eval1==null || eval2==null || eval3==null){
75
			return false;
76
		}
77 77

  
78
			if(lower <= upper) {
79
				if((middle >= lower) && (middle <= upper))
80
					return true;
81
				else return false;
82
			}
83
			else {
84
				if((middle >= upper) && (middle <= lower))
85
					return true;
86
				else return false;
87
			}
78

  
79
		Double middle = new Double(eval1.toString());
80
		Double lower = new Double(eval2.toString());
81
		Double upper = new Double(eval3.toString());
82
		if(lower <= upper) {
83
			if((middle >= lower) && (middle <= upper))
84
				return true;
85
			else return false;
88 86
		}
89

  
87
		else {
88
			if((middle >= upper) && (middle <= lower))
89
				return true;
90
			else return false;
91
		}
90 92
	}
91 93

  
92 94
	public void addArgument(int i, Expression arg) {
......
102 104
	public String getPattern() {
103 105
		return OperationTags.ISBETWEEN_OP + "(" +Messages.getString(OperationTags.OPERAND)
104 106
		+" , "+Messages.getString(OperationTags.OPERAND)
105
		+" , "+Messages.getString(OperationTags.OPERAND)+ ")\n"+ 
107
		+" , "+Messages.getString(OperationTags.OPERAND)+ ")\n"+
106 108
		Messages.getString(OperationTags.OPERAND) +" = "+
107
		Messages.getString(OperationTags.NUMERIC_VALUE);	
109
		Messages.getString(OperationTags.NUMERIC_VALUE);
108 110
	}
109 111

  
110 112
	public ArrayList<Expression> getArguments() {
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/rendering/filter/operations/AddOperator.java
74 74
		try {
75 75

  
76 76
			intResult = (Integer)((Expression)arguments.get(0)).evaluate();
77
			if (intResult==null){
78
				intResult=new Integer(0);
79
			}
77 80
			if (arguments.size() == 1)
78 81
				return intResult;
79 82

  
80 83
			for (int i = 1; i < arguments.size(); i++){
81 84
				Expression function = (Expression)arguments.get(i);
82
				intResult += ((Integer)function.evaluate());
85
				Integer integer=((Integer)function.evaluate());
86
				if (integer==null){
87
					integer=new Integer(0);
88
				}
89
				intResult += integer;
83 90
			}
84 91

  
85 92
			return intResult;
86 93

  
87 94

  
88 95
		} catch (ClassCastException e) {
89

  
90
			doubleResult = new Double(((Expression)arguments.get(0)).evaluate().toString());
96
			Object value1=((Expression)arguments.get(0)).evaluate();
97
			if (value1==null)
98
				value1=new Double(0);
99
			doubleResult = new Double(value1.toString());
91 100
			if(arguments.size() == 1)
92 101
				return doubleResult;
93 102
			for (int i = 1; i < arguments.size(); i++){
94 103
				Expression function = (Expression)arguments.get(i);
95
				doubleResult += new Double(((Expression)function).evaluate().toString());
104
				Object value2=((Expression)function).evaluate();
105
				if (value2==null){
106
					value2=new Double(0);
107
				}
108
				doubleResult += new Double(value2.toString());
96 109
			}
97 110

  
98 111
			return doubleResult;
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/rendering/filter/operations/MinusOperator.java
78 78
		try {
79 79

  
80 80
			intResult = (Integer)((Expression)arguments.get(0)).evaluate();
81
			if (intResult == null){
82
				intResult=new Integer(0);
83
			}
81 84
			if (arguments.size() == 1)
82 85
				return -1*intResult;
83 86

  
84 87
			for (int i = 1; i < arguments.size(); i++){
85 88
				Expression function = (Expression)arguments.get(i);
86
				intResult -= ((Integer)function.evaluate());
89
				Integer eval=((Integer)function.evaluate());
90
				if (eval==null)
91
					eval=new Integer(0);
92
				intResult -= eval;
87 93
			}
88 94

  
89 95
			return intResult;
......
92 98
		} catch (ClassCastException e) {
93 99

  
94 100
			doubleResult = new Double(((Expression)arguments.get(0)).evaluate().toString());
101
			if (doubleResult == null){
102
				doubleResult=new Double(0);
103
			}
95 104
			if(arguments.size() == 1)
96 105
				return -1*doubleResult;
97 106
			for (int i = 1; i < arguments.size(); i++){
98 107
				Expression function = (Expression)arguments.get(i);
99
				doubleResult -= new Double(((Expression)function).evaluate().toString());
108
				Double eval=(Double)((Expression)function).evaluate();
109
				if (eval==null)
110
					eval=new Double(0);
111
				doubleResult -= new Double(eval.toString());
100 112
			}
101 113

  
102 114
			return doubleResult;
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/rendering/filter/operations/LessThanOrEqualsOperator.java
65 65
	}
66 66

  
67 67
	public Object evaluate() throws ExpressionException{
68
		Double left = new Double(((Expression)arguments.get(0)).evaluate().toString());
69
		Double right =new Double(((Expression)arguments.get(1)).evaluate().toString());
68
		Object eval1=((Expression)arguments.get(0)).evaluate();
69
		Object eval2=((Expression)arguments.get(1)).evaluate();
70
		if (eval1==null || eval2==null){
71
			return false;
72
		}
73
		Double left = new Double(eval1.toString());
74
		Double right =new Double(eval2.toString());
70 75

  
71 76
		if (left <= right)
72 77
			return true;
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/rendering/filter/operations/NotOperator.java
70 70

  
71 71
		if(arguments.size() > 1)
72 72
			throw new ExpressionException(ExpressionException.INCORRECT_NUMBER_OF_ARGUMENTS);
73

  
74
		boolean result = ((Boolean)((Expression)arguments.get(0)).evaluate()).booleanValue();
73
		Object eval=((Expression)arguments.get(0)).evaluate();
74
		if (eval==null)
75
			return false;
76
		boolean result = ((Boolean)eval).booleanValue();
75 77
		if (result)
76 78
			return false;
77 79
		else
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/rendering/filter/operations/AndOperator.java
68 68
	}
69 69

  
70 70
	public Object evaluate()throws ExpressionException {
71
		Object value1=((Expression)arguments.get(0)).evaluate();
72
		if (value1 ==null)
73
			return false;
74
		Boolean result = ((Boolean)value1).booleanValue();
71 75

  
72
		Boolean result = ((Boolean)((Expression)arguments.get(0)).evaluate()).booleanValue();
73

  
74 76
		for (int i = 1; i < arguments.size(); i++){
75 77
			Expression function = (Expression)arguments.get(i);
76
			result = result && ((Boolean)((Expression)function).evaluate()).booleanValue();
78
			Object value2=function.evaluate();
79
			if (value2 ==null)
80
				return false;
81
			result = result && ((Boolean)value2).booleanValue();
77 82
		}
78 83
		return result;
79 84
	}
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/rendering/filter/operations/NeOperator.java
73 73
		Object value1 = ((Expression)arguments.get(0)).evaluate();
74 74
		Object value2 = ((Expression)arguments.get(1)).evaluate();
75 75

  
76
		if (value1==null || value2==null){
77
			return false;
78
		}
76 79
		if (value1.equals(value2))
77 80
			return false;
78 81
		else
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/rendering/filter/operations/FieldExpressionOperator.java
71 71

  
72 72
			for (int i = arguments.size()-1; i >= 0; i--) {
73 73
				Expression function = (Expression)arguments.get(i);
74
				result += ((String) (function.evaluate().toString()));
74
				Object value1=function.evaluate();
75
				if (value1==null)
76
					value1="";
77
				result += ((String) (value1.toString()));
75 78
			}
76 79
			return result;
77 80
		}
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/rendering/filter/operations/GreaterThanOperator.java
67 67
	}
68 68

  
69 69
	public Object evaluate()throws ExpressionException {
70
		Object eval1=((Expression)arguments.get(0)).evaluate();
71
		Object eval2=((Expression)arguments.get(1)).evaluate();
72
		if (eval1==null || eval2==null){
73
			return false;
74
		}
75
		Double left = new Double(eval1.toString());
76
		Double right = new Double(eval2.toString());
70 77

  
71
		Double left = new Double(((Expression)arguments.get(0)).evaluate().toString());
72
		Double right = new Double(((Expression)arguments.get(1)).evaluate().toString());
73

  
74 78
		if (left > right)
75 79
			return true;
76 80
		else
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/rendering/filter/operations/EqOperator.java
70 70

  
71 71
		Object value1 = ((Expression)arguments.get(0)).evaluate();
72 72
		Object value2 = ((Expression)arguments.get(1)).evaluate();
73

  
73
		if (value1 ==null || value2 == null)
74
			return false;
74 75
		if (value1.equals(value2))
75 76
			return true;
76 77
		else

Also available in: Unified diff