Revision 28909 branches/v2_0_0_prep/libraries/libFMap_daldb/src/org/gvsig/fmap/dal/store/postgresql/PostgreSQLSetProvider.java

View differences:

PostgreSQLSetProvider.java
30 30
 */
31 31
package org.gvsig.fmap.dal.store.postgresql;
32 32

  
33
import java.util.ArrayList;
34
import java.util.List;
35

  
36 33
import org.gvsig.fmap.dal.exception.DataException;
37
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
38 34
import org.gvsig.fmap.dal.feature.FeatureQuery;
39 35
import org.gvsig.fmap.dal.feature.FeatureType;
40 36
import org.gvsig.fmap.dal.store.jdbc.JDBCSetProvider;
41 37
import org.gvsig.fmap.dal.store.jdbc.JDBCStoreProvider;
42
import org.gvsig.tools.evaluator.Evaluator;
43
import org.gvsig.tools.evaluator.EvaluatorFieldValue;
44
import org.gvsig.tools.evaluator.EvaluatorFieldsInfo;
45 38

  
46 39
/**
47 40
 * @author jmvivo
......
55 48
		// TODO Auto-generated constructor stub
56 49
	}
57 50

  
58
	protected String getSqlForEvaluator(Evaluator filter) {
59
		if (filter == null) {
60
			return null;
61
		}
62
		EvaluatorFieldsInfo info = filter.getFieldsInfo();
63
		String filterString = filter.getCQL();
64
		if (info == null) {
65
			return filterString;
66
		}
67
		String[] filterNames = info.getFieldNames();
68
		String[] finalNames = new String[filterNames.length];
69
		EvaluatorFieldValue[] fValues;
70 51

  
71
		List values = new ArrayList();
72

  
73
		FeatureAttributeDescriptor attr;
74
		for (int i = 0; i < filterNames.length; i++) {
75
			attr = featureType.getAttributeDescriptor(filterNames[i]);
76
			if (attr == null) {
77
				finalNames[i] = filterNames[i];
78
				continue;
79
			}
80
			finalNames[i] = getEscapedFieldName(attr.getName());
81

  
82
		}
83

  
84

  
85

  
86
		for (int i = 0; i < filterNames.length; i++) {
87
			if (!filterNames[i].equals(finalNames[i])) {
88
				filterString.replaceAll("\\b" + filterNames[i] + "\\b",
89
						finalNames[i]);
90
			}
91
		}
92

  
93

  
94

  
95

  
96
		return filterString;
97
	}
98

  
99

  
100

  
101 52
	/*
102 53
	 * (non-Javadoc)
103 54
	 *

Also available in: Unified diff