Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.mapcontext / org.gvsig.fmap.mapcontext.api / src / main / java / org / gvsig / fmap / mapcontext / layers / vectorial / SpatialEvaluatorsFactory.java @ 43034

History | View | Annotate | Download (11.5 KB)

1 43020 jjdelcerro
package org.gvsig.fmap.mapcontext.layers.vectorial;
2
3
import org.cresques.cts.IProjection;
4
import org.gvsig.fmap.dal.exception.DataException;
5
import org.gvsig.fmap.dal.feature.FeatureStore;
6
import org.gvsig.fmap.dal.feature.FeatureType;
7
import org.gvsig.fmap.dal.ExpressionBuilder;
8
import org.gvsig.fmap.dal.feature.FeatureQuery;
9
import org.gvsig.fmap.geom.Geometry;
10
import org.gvsig.fmap.geom.primitive.Envelope;
11
import org.gvsig.tools.evaluator.Evaluator;
12
13
public class SpatialEvaluatorsFactory {
14
15
    private static final SpatialEvaluatorsFactory factory = new SpatialEvaluatorsFactory();
16
17
    public static SpatialEvaluatorsFactory getInstance() {
18
        return factory;
19
    }
20
21
    private SpatialEvaluatorsFactory() {
22
23
    }
24
25 43034 jjdelcerro
    public Evaluator intersects(
26
            Geometry geometry,
27
            IProjection projection,
28
            FeatureType featureType,
29
            String geomName,
30
            ExpressionBuilder builder
31
        ) {
32 43020 jjdelcerro
        return new IntersectsGeometryEvaluator(geometry, projection, featureType, geomName, builder);
33
    }
34
35 43034 jjdelcerro
    public Evaluator intersects(
36
            Envelope envelope,
37
            IProjection projection,
38
            FeatureType featureType,
39
            String geomName,
40
            ExpressionBuilder builder
41
        ) {
42 43020 jjdelcerro
        return new IntersectsEnvelopeEvaluator(envelope, projection, featureType, geomName, builder);
43
    }
44
45 43034 jjdelcerro
    public Evaluator intersects(
46
            Geometry geometry,
47
            IProjection projection,
48
            FeatureStore store
49
        ) {
50 43020 jjdelcerro
        try {
51
            FeatureType featureType = store.getDefaultFeatureType();
52
            String geomName = featureType.getDefaultGeometryAttributeName();
53
            ExpressionBuilder builder = store.createExpressionBuilder();
54
            return intersects(geometry, projection, featureType, geomName,builder);
55
        } catch (DataException ex) {
56
            throw new RuntimeException("Can't create intersects evaluator.",ex);
57
        }
58
    }
59
60 43034 jjdelcerro
    public Evaluator intersects(
61
            Envelope envelope,
62
            IProjection projection,
63
            FeatureStore store
64
        ) {
65 43020 jjdelcerro
        try {
66
            FeatureType featureType = store.getDefaultFeatureType();
67
            String geomName = featureType.getDefaultGeometryAttributeName();
68
            ExpressionBuilder builder = store.createExpressionBuilder();
69
            return intersects(envelope, projection, featureType, geomName,builder);
70
        } catch (DataException ex) {
71
            throw new RuntimeException("Can't create intersects evaluator.",ex);
72
        }
73
    }
74
75 43034 jjdelcerro
    public Evaluator contains(
76
            Envelope envelope,
77
            IProjection projection,
78
            FeatureType featureType,
79
            String geomName,
80
            ExpressionBuilder builder
81
        ){
82 43020 jjdelcerro
        return new ContainsEnvelopeEvaluator(envelope, projection, featureType, geomName);
83
    }
84
85 43034 jjdelcerro
    public Evaluator contains(
86
            Geometry geometry,
87
            IProjection projection,
88
            FeatureType featureType,
89
            String geomName,
90
            ExpressionBuilder builder
91
        ){
92
        return new ContainsGeometryEvaluator(geometry, projection, featureType, geomName, builder);
93 43020 jjdelcerro
    }
94
95 43034 jjdelcerro
    public Evaluator contains(
96
            Geometry geometry,
97
            IProjection projection,
98
            FeatureStore store
99
        ) {
100 43020 jjdelcerro
        try {
101
            FeatureType featureType = store.getDefaultFeatureType();
102
            String geomName = featureType.getDefaultGeometryAttributeName();
103
            ExpressionBuilder builder = store.createExpressionBuilder();
104 43034 jjdelcerro
            return this.contains(geometry, projection, featureType, geomName,builder);
105 43020 jjdelcerro
        } catch (DataException ex) {
106
            throw new RuntimeException("Can't create contains evaluator.",ex);
107
        }
108
    }
109
110 43034 jjdelcerro
    public Evaluator contains(
111
            Envelope envelope,
112
            IProjection projection,
113
            FeatureStore store
114
        ) {
115 43020 jjdelcerro
        try {
116
            FeatureType featureType = store.getDefaultFeatureType();
117
            String geomName = featureType.getDefaultGeometryAttributeName();
118
            ExpressionBuilder builder = store.createExpressionBuilder();
119 43034 jjdelcerro
            return this.contains(envelope, projection, featureType, geomName,builder);
120 43020 jjdelcerro
        } catch (DataException ex) {
121
            throw new RuntimeException("Can't create contains evaluator.",ex);
122
        }
123
    }
124
125 43034 jjdelcerro
    public Evaluator not_contains(
126
            Geometry geometry,
127
            IProjection projection,
128
            FeatureType featureType,
129
            String geomName,
130
            ExpressionBuilder builder
131
        ){
132
        return new OutGeometryEvaluator(geometry, projection, featureType, geomName, builder);
133 43020 jjdelcerro
    }
134
135 43034 jjdelcerro
    public Evaluator not_contains(
136
            Geometry geometry,
137
            IProjection projection,
138
            FeatureStore store
139
        ) {
140 43020 jjdelcerro
        try {
141
            FeatureType featureType = store.getDefaultFeatureType();
142
            String geomName = featureType.getDefaultGeometryAttributeName();
143
            ExpressionBuilder builder = store.createExpressionBuilder();
144 43034 jjdelcerro
            return this.not_contains(geometry, projection, featureType, geomName,builder);
145 43020 jjdelcerro
        } catch (DataException ex) {
146
            throw new RuntimeException("Can't create not_contains evaluator.",ex);
147
        }
148
    }
149
150 43034 jjdelcerro
    public Evaluator crosses(
151
            Geometry geometry,
152
            IProjection projection,
153
            FeatureType featureType,
154
            String geomName,
155
            ExpressionBuilder builder
156
        ) {
157
        return new CrossesGeometryEvaluator(geometry, projection, featureType, geomName, builder);
158 43020 jjdelcerro
    }
159
160 43034 jjdelcerro
    public Evaluator crosses(
161
            Envelope envelope,
162
            IProjection projection,
163
            FeatureType featureType,
164
            String geomName,
165
            ExpressionBuilder builder
166
        ) {
167
        return new CrossEnvelopeEvaluator(envelope, projection, featureType, geomName, builder);
168 43020 jjdelcerro
    }
169
170 43034 jjdelcerro
    public Evaluator crosses(
171
            Geometry geometry,
172
            IProjection projection,
173
            FeatureStore store
174
        ) {
175 43020 jjdelcerro
        try {
176
            FeatureType featureType = store.getDefaultFeatureType();
177
            String geomName = featureType.getDefaultGeometryAttributeName();
178
            ExpressionBuilder builder = store.createExpressionBuilder();
179 43034 jjdelcerro
            return this.crosses(geometry, projection, featureType, geomName,builder);
180 43020 jjdelcerro
        } catch (DataException ex) {
181
            throw new RuntimeException("Can't create crosses evaluator.",ex);
182
        }
183
    }
184
185 43034 jjdelcerro
    public Evaluator crosses(
186
            Envelope envelope,
187
            IProjection projection,
188
            FeatureStore store
189
        ) {
190 43020 jjdelcerro
        try {
191
            FeatureType featureType = store.getDefaultFeatureType();
192
            String geomName = featureType.getDefaultGeometryAttributeName();
193
            ExpressionBuilder builder = store.createExpressionBuilder();
194 43034 jjdelcerro
            return this.crosses(envelope, projection, featureType, geomName,builder);
195 43020 jjdelcerro
        } catch (DataException ex) {
196
            throw new RuntimeException("Can't create crosses evaluator.",ex);
197
        }
198
    }
199
200 43034 jjdelcerro
    public Evaluator disjoint(
201
            Geometry geometry,
202
            IProjection projection,
203
            FeatureType featureType,
204
            String geomName,
205
            ExpressionBuilder builder
206
        ) {
207
        return new DisjointGeometryEvaluator(geometry, projection, featureType, geomName, builder);
208 43020 jjdelcerro
    }
209
210 43034 jjdelcerro
    public Evaluator disjoint(
211
            Geometry geometry,
212
            IProjection projection,
213
            FeatureStore store
214
        ) {
215 43020 jjdelcerro
        try {
216
            FeatureType featureType = store.getDefaultFeatureType();
217
            String geomName = featureType.getDefaultGeometryAttributeName();
218
            ExpressionBuilder builder = store.createExpressionBuilder();
219 43034 jjdelcerro
            return this.disjoint(geometry, projection, featureType, geomName,builder);
220 43020 jjdelcerro
        } catch (DataException ex) {
221
            throw new RuntimeException("Can't create disjoint evaluator.",ex);
222
        }
223
    }
224
225 43034 jjdelcerro
    public Evaluator overlaps(
226
            Geometry geometry,
227
            IProjection projection,
228
            FeatureType featureType,
229
            String geomName,
230
            ExpressionBuilder builder
231
        ) {
232
        return new OverlapsGeometryEvaluator(geometry, projection, featureType, geomName, builder);
233 43020 jjdelcerro
    }
234
235 43034 jjdelcerro
    public Evaluator overlaps(
236
            Geometry geometry,
237
            IProjection projection,
238
            FeatureStore store
239
        ) {
240 43020 jjdelcerro
        try {
241
            FeatureType featureType = store.getDefaultFeatureType();
242
            String geomName = featureType.getDefaultGeometryAttributeName();
243
            ExpressionBuilder builder = store.createExpressionBuilder();
244 43034 jjdelcerro
            return this.overlaps(geometry, projection, featureType, geomName,builder);
245 43020 jjdelcerro
        } catch (DataException ex) {
246
            throw new RuntimeException("Can't create overlaps evaluator.",ex);
247
        }
248
    }
249
250 43034 jjdelcerro
    public Evaluator touches(
251
            Geometry geometry,
252
            IProjection projection,
253
            FeatureType featureType,
254
            String geomName,
255
            ExpressionBuilder builder
256
        ) {
257
        return new TouchesGeometryEvaluator(geometry, projection, featureType, geomName,builder);
258 43020 jjdelcerro
    }
259
260 43034 jjdelcerro
    public Evaluator touches(
261
            Geometry geometry,
262
            IProjection projection,
263
            FeatureStore store
264
        ) {
265 43020 jjdelcerro
        try {
266
            FeatureType featureType = store.getDefaultFeatureType();
267
            String geomName = featureType.getDefaultGeometryAttributeName();
268
            ExpressionBuilder builder = store.createExpressionBuilder();
269 43034 jjdelcerro
            return this.touches(geometry, projection, featureType, geomName,builder);
270 43020 jjdelcerro
        } catch (DataException ex) {
271
            throw new RuntimeException("Can't create touches evaluator.",ex);
272
        }
273
    }
274
275 43034 jjdelcerro
    public Evaluator within(
276
            Geometry geometry,
277
            IProjection projection,
278
            FeatureType featureType,
279
            String geomName,
280
            ExpressionBuilder builder
281
        ) {
282
        return new WithinGeometryEvaluator(geometry, projection, featureType, geomName,builder);
283 43020 jjdelcerro
    }
284
285 43034 jjdelcerro
    public Evaluator within(
286
            Geometry geometry,
287
            IProjection projection,
288
            FeatureStore store
289
        ) {
290 43020 jjdelcerro
        try {
291
            FeatureType featureType = store.getDefaultFeatureType();
292
            String geomName = featureType.getDefaultGeometryAttributeName();
293
            ExpressionBuilder builder = store.createExpressionBuilder();
294 43034 jjdelcerro
            return this.within(geometry, projection, featureType, geomName,builder);
295 43020 jjdelcerro
        } catch (DataException ex) {
296
            throw new RuntimeException("Can't create within evaluator.",ex);
297
        }
298
    }
299
300 43034 jjdelcerro
    public Evaluator equals(
301
            Geometry geometry,
302
            IProjection projection,
303
            FeatureType featureType,
304
            String geomName,
305
            ExpressionBuilder builder
306
        ) {
307
        return new EqualsGeometryEvaluator(geometry, projection, featureType, geomName,builder);
308 43020 jjdelcerro
    }
309
310 43034 jjdelcerro
    public Evaluator equals(
311
            Geometry geometry,
312
            IProjection projection,
313
            FeatureStore store
314
        ) {
315 43020 jjdelcerro
        try {
316
            FeatureType featureType = store.getDefaultFeatureType();
317
            String geomName = featureType.getDefaultGeometryAttributeName();
318
            ExpressionBuilder builder = store.createExpressionBuilder();
319 43034 jjdelcerro
            return this.equals(geometry, projection, featureType, geomName,builder);
320 43020 jjdelcerro
        } catch (DataException ex) {
321
            throw new RuntimeException("Can't create equals evaluator.",ex);
322
        }
323
    }
324
325
}