Revision 37172 branches/v2_0_0_prep/extensions/org.gvsig.oracle/src/org/gvsig/fmap/dal/store/oracle/OracleSetProvider.java

View differences:

OracleSetProvider.java
31 31
package org.gvsig.fmap.dal.store.oracle;
32 32

  
33 33
import java.sql.Connection;
34
import java.util.ArrayList;
35
import java.util.List;
36 34

  
37 35
import org.gvsig.fmap.dal.exception.DataException;
38
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
39 36
import org.gvsig.fmap.dal.feature.FeatureQuery;
40 37
import org.gvsig.fmap.dal.feature.FeatureType;
41
import org.gvsig.fmap.dal.store.db.DBStoreParameters;
42 38
import org.gvsig.fmap.dal.store.jdbc.JDBCIterator;
43 39
import org.gvsig.fmap.dal.store.jdbc.JDBCSetProvider;
44 40
import org.gvsig.fmap.dal.store.jdbc.JDBCStoreProvider;
41
import org.gvsig.fmap.geom.Geometry;
42
import org.gvsig.fmap.geom.primitive.Envelope;
45 43
import org.gvsig.fmap.mapcontext.layers.vectorial.IntersectsEnvelopeEvaluator;
46 44
import org.gvsig.fmap.mapcontext.layers.vectorial.IntersectsGeometryEvaluator;
47 45
import org.gvsig.tools.evaluator.Evaluator;
48
import org.gvsig.tools.evaluator.EvaluatorFieldValue;
49
import org.gvsig.tools.evaluator.EvaluatorFieldsInfo;
46
import org.gvsig.tools.evaluator.EvaluatorFieldValueMatch;
50 47
import org.slf4j.Logger;
51 48
import org.slf4j.LoggerFactory;
52 49

  
......
78 75
		return super.createFastIterator(index);
79 76
	}
80 77
	
78
	protected JDBCIterator createDefaultFastIterator(int resultSetID)
79
	throws DataException {
80
		
81
		// super(store, set, featureType, resultsetID);
82
		// this.featureProvider = super.createFeatureProvider();
83

  
84
		return new OracleJdbcFastIterator((JDBCStoreProvider) getStore(), this,
85
		getFeatureType(), resultSetID);
86
}
87

  
88
	
81 89
	protected String getSqlForEvaluator(Evaluator filter) {
82 90
		if (filter == null) {
83 91
			return null;
84 92
		}
85 93
		
94
		String gfld;
95
		try {
96
			gfld = getStore().getFeatureStore().getDefaultFeatureType().getDefaultGeometryAttributeName();
97
		} catch (DataException e) {
98
			logger.error("While getting geom field name: " + e.getMessage());
99
			return null;
100
		}
101

  
86 102
		if (filter instanceof IntersectsEnvelopeEvaluator) {
87 103
			IntersectsEnvelopeEvaluator env_filt = (IntersectsEnvelopeEvaluator) filter; 
88 104
			
89 105
			String srs = (String) getStore().getDynValue(OracleStoreParameters.ORA_TABLE_SRID);
90 106
			boolean is_geo = OracleUtils.getIsGCS(srs, srs != null && srs.length() > 0);
91 107
			
108
			EvaluatorFieldValueMatch em =
109
				(EvaluatorFieldValueMatch) env_filt.getFieldsInfo().getFieldValues(gfld)[0]; 
110
			Envelope env = (Envelope) em.getValue(); 
111
			
92 112
			String filterString = OracleUtils.getIntersectsEnvelopeSelect(
93 113
					getFeatureType().getDefaultGeometryAttributeName(),
94
					env_filt.getEnvelope(),
114
					env,
95 115
					srs, is_geo);
96 116
			return filterString;
97 117
		} else {
......
99 119
				
100 120
				IntersectsGeometryEvaluator geo_filt = (IntersectsGeometryEvaluator) filter; 
101 121
				
122
				EvaluatorFieldValueMatch em =
123
					(EvaluatorFieldValueMatch) geo_filt.getFieldsInfo().getFieldValues(gfld)[0]; 
124
				Geometry geome = (Geometry) em.getValue(); 
125
				
102 126
				String srs = (String) getStore().getDynValue(OracleStoreParameters.ORA_TABLE_SRID);
103 127
				boolean is_geo = OracleUtils.getIsGCS(srs, srs != null && srs.length() > 0);
104 128
				
......
113 137
				
114 138
				String filterString = OracleUtils.getIntersectsGeometrySelect(
115 139
						getFeatureType().getDefaultGeometryAttributeName(),
116
						geo_filt.getGeometry(),
140
						geome,
117 141
						srs, is_geo, conn);
118 142
				return filterString;
119 143
				

Also available in: Unified diff