Revision 44364

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/test/java/org/gvsig/expresionevaluator/impl/TestExpressionBuilder.java
11 11
import org.gvsig.fmap.geom.GeometryLocator;
12 12
import org.gvsig.fmap.geom.GeometryManager;
13 13
import org.gvsig.fmap.geom.exception.CreateGeometryException;
14
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
14 15
import org.gvsig.fmap.geom.primitive.Point;
15 16
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
16 17

  
......
381 382
                ArrayUtils.toString(builder.parameters_names())
382 383
        );
383 384
    }
385

  
386
    public void test6() throws Exception {
387
        ExpressionBuilder builder = new DefaultExpressionBuilder();
388
                
389
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
390
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
391
        
392
        Point point = geometryManager.createPoint(-0.1779813, 51.6122315, Geometry.SUBTYPES.GEOM2D);
393
        Geometry point_buffer = point.buffer(0.001);
394
        
395
        builder.or(
396
            builder.ST_Intersects(
397
                builder.function("ST_StartPoint", builder.column("geometry")),
398
                builder.geometry(point_buffer, proj)
399
            ),
400
            builder.ST_Intersects(
401
                builder.function("ST_EndPoint", builder.column("geometry")),
402
                builder.geometry(point_buffer, proj)
403
            )
404
        );
405
        
406
        System.out.println(builder.toString());
407
        assertEquals(
408
                "ST_Intersects((ST_StartPoint(\"geometry\")), (ST_GeomFromWKB((DECODE('00000000030000000100000021bfc6a752bfc074d04049ce5d9a0f0a5fbfc6a7f3ef0c44504049ce573585c39cbfc6a9d14b36039c4049ce510fe0a08dbfc6acd87c00e8e74049ce4b65990cbfbfc6b0ebb72658ed4049ce466e6aca60bfc6b5e2e568b7fa4049ce425b2fa4f0bfc6bb8d2cfc85e24049ce3f53feda0abfc6c1b2d21f95294049ce3d76a2b04bbfc6c8175b6658244049ce3cd573647cbfc6ce7be4ad1b1f4049ce3d76a2b04bbfc6d4a189d02a664049ce3f53feda0abfc6da4bd163f84e4049ce425b2fa4f0bfc6df42ffa6575b4049ce466e6aca60bfc6e3563acbc7614049ce4b65990cbfbfc6e65d6b96acac4049ce510fe0a08dbfc6e83ac7c06bf84049ce573585c39cbfc6e8dbf70c3b784049ce5d9a0f0a5fbfc6e83ac7c06bf84049ce63fe985122bfc6e65d6b96acac4049ce6a243d7431bfc6e3563acbc7614049ce6fce8507ffbfc6df42ffa6575b4049ce74c5b34a5ebfc6da4bd163f84e4049ce78d8ee6fcebfc6d4a189d02a664049ce7be01f3ab4bfc6ce7be4ad1b1f4049ce7dbd7b6473bfc6c8175b6658244049ce7e5eaab042bfc6c1b2d21f95294049ce7dbd7b6473bfc6bb8d2cfc85e24049ce7be01f3ab4bfc6b5e2e568b7fa4049ce78d8ee6fcebfc6b0ebb72658ed4049ce74c5b34a5ebfc6acd87c00e8e74049ce6fce8507ffbfc6a9d14b36039b4049ce6a243d7431bfc6a7f3ef0c44504049ce63fe985122bfc6a752bfc074d04049ce5d9a0f0a5f','hex')), (4326)))) OR ST_Intersects((ST_EndPoint(\"geometry\")), (ST_GeomFromWKB((DECODE('00000000030000000100000021bfc6a752bfc074d04049ce5d9a0f0a5fbfc6a7f3ef0c44504049ce573585c39cbfc6a9d14b36039c4049ce510fe0a08dbfc6acd87c00e8e74049ce4b65990cbfbfc6b0ebb72658ed4049ce466e6aca60bfc6b5e2e568b7fa4049ce425b2fa4f0bfc6bb8d2cfc85e24049ce3f53feda0abfc6c1b2d21f95294049ce3d76a2b04bbfc6c8175b6658244049ce3cd573647cbfc6ce7be4ad1b1f4049ce3d76a2b04bbfc6d4a189d02a664049ce3f53feda0abfc6da4bd163f84e4049ce425b2fa4f0bfc6df42ffa6575b4049ce466e6aca60bfc6e3563acbc7614049ce4b65990cbfbfc6e65d6b96acac4049ce510fe0a08dbfc6e83ac7c06bf84049ce573585c39cbfc6e8dbf70c3b784049ce5d9a0f0a5fbfc6e83ac7c06bf84049ce63fe985122bfc6e65d6b96acac4049ce6a243d7431bfc6e3563acbc7614049ce6fce8507ffbfc6df42ffa6575b4049ce74c5b34a5ebfc6da4bd163f84e4049ce78d8ee6fcebfc6d4a189d02a664049ce7be01f3ab4bfc6ce7be4ad1b1f4049ce7dbd7b6473bfc6c8175b6658244049ce7e5eaab042bfc6c1b2d21f95294049ce7dbd7b6473bfc6bb8d2cfc85e24049ce7be01f3ab4bfc6b5e2e568b7fa4049ce78d8ee6fcebfc6b0ebb72658ed4049ce74c5b34a5ebfc6acd87c00e8e74049ce6fce8507ffbfc6a9d14b36039b4049ce6a243d7431bfc6a7f3ef0c44504049ce63fe985122bfc6a752bfc074d04049ce5d9a0f0a5f','hex')), (4326))))",
409
                builder.toString()
410
        );
411
        assertEquals(
412
                "[geometry]",
413
                ArrayUtils.toString(builder.variables_names())
414
        );
415
        assertEquals(
416
                "[]",
417
                ArrayUtils.toString(builder.parameters_names())
418
        );
419
    }
384 420
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultExpressionBuilder.java
1183 1183
    }
1184 1184

  
1185 1185
    @Override
1186
    public Function ST_Area(Value geom) {
1187
        return function("ST_Area", geom);
1188
    }
1189

  
1190
    @Override
1191
    public Function ST_Buffer(Value geom) {
1192
        return function("ST_Buffer", geom);
1193
    }
1194

  
1195
    @Override
1196
    public Function ST_Centroid(Value geom) {
1197
        return function("ST_Centroid", geom);
1198
    }
1199

  
1200
    @Override
1201
    public Function ST_CoveredBy(Value geom1, Value geom2) {
1202
        return function("ST_CoveredBy", geom1, geom2);
1203
    }
1204

  
1205
    @Override
1206
    public Function ST_Covers(Value geom1, Value geom2) {
1207
        return function("ST_Covers", geom1, geom2);
1208
    }
1209

  
1210
    @Override
1211
    public Function ST_Diference(Value geom1, Value geom2) {
1212
        return function("ST_Diference", geom1, geom2);
1213
    }
1214

  
1215
    @Override
1216
    public Function ST_Dimension(Value geom) {
1217
        return function("ST_Dimension", geom);
1218
    }
1219

  
1220
    @Override
1221
    public Function ST_Distance(Value geom1, Value geom2) {
1222
        return function("ST_Distance", geom1, geom2);
1223
    }
1224

  
1225
    @Override
1226
    public Function ST_EndPoint(Value geom) {
1227
        return function("ST_EndPoint", geom);
1228
    }
1229

  
1230
    @Override
1231
    public Function ST_Intersection(Value geom1, Value geom2) {
1232
        return function("ST_Intersection", geom1, geom2);
1233
    }
1234

  
1235
    @Override
1236
    public Function ST_IsSimple(Value geom) {
1237
        return function("ST_IsSimple", geom);
1238
    }
1239

  
1240
    @Override
1241
    public Function ST_IsValid(Value geom) {
1242
        return function("ST_IsValid", geom);
1243
    }
1244

  
1245
    @Override
1246
    public Function ST_NumGeometries(Value geom) {
1247
        return function("ST_NumGeometries", geom);
1248
    }
1249

  
1250
    @Override
1251
    public Function ST_NumPoints(Value geom) {
1252
        return function("ST_NumPoints", geom);
1253
    }
1254

  
1255
    @Override
1256
    public Function ST_Perimeter(Value geom) {
1257
        return function("ST_Perimeter", geom);
1258
    }
1259

  
1260
    @Override
1261
    public Function ST_PointN(Value geom, Value n) {
1262
        return function("ST_PointN", geom, n);
1263
    }
1264

  
1265
    @Override
1266
    public Function ST_StartPoint(Value geom) {
1267
        return function("ST_StartPoint", geom);
1268
    }
1269

  
1270
    @Override
1271
    public Function ST_Union(Value geom1, Value geom2) {
1272
        return function("ST_Union", geom1, geom2);
1273
    }
1274

  
1275
    @Override
1276
    public Function ST_X(Value geom) {
1277
        return function("ST_X", geom);
1278
    }
1279

  
1280
    @Override
1281
    public Function ST_Y(Value geom) {
1282
        return function("ST_Y", geom);
1283
    }
1284

  
1285
    @Override
1286
    public Function ST_Z(Value geom) {
1287
        return function("ST_Z", geom);
1288
    }
1289

  
1290
    @Override
1186 1291
    public Function is_null(Value value) {
1187 1292
        return builtin_function("IS NULL", FORMAT_ISNULL, value);
1188 1293
    }
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/ExpressionBuilder.java
348 348
    
349 349
    public Function is_null(Value value);
350 350

  
351
    public Function ST_SRID(Value geom);
352 351
    
353
    public Function ST_AsText(Value geom);
352
    public Function ST_Area(Value geom);
354 353

  
355 354
    public Function ST_AsBinary(Value geom);
356 355

  
357 356
    public Function ST_AsEWKB(Value geom);
358 357

  
358
    public Function ST_AsText(Value geom);
359

  
360
    public Function ST_Buffer(Value geom);
361

  
362
    public Function ST_Centroid(Value geom);
363

  
364
    public Function ST_Contains(Value geom1, Value geom2);
365

  
366
    public Function ST_CoveredBy(Value geom1, Value geom2);
367

  
368
    public Function ST_Covers(Value geom1, Value geom2);
369

  
370
    public Function ST_Crosses(Value geom1, Value geom2);
371

  
372
    public Function ST_Diference(Value geom1, Value geom2);
373

  
374
    public Function ST_Dimension(Value geom1);
375

  
376
    public Function ST_Disjoint(Value geom1, Value geom2);
377

  
378
    public Function ST_Distance(Value geom1, Value geom2);
379

  
380
    public Function ST_EndPoint(Value geom1);
381

  
359 382
    public Function ST_Envelope(Value geom);
360 383

  
384
    public Function ST_Equals(Value geom1, Value geom2);
385

  
361 386
    public Function ST_GeomFromText(Value geom, Value crs);
362 387
    
363 388
    public Function ST_GeomFromWKB(Value geom, Value crs);
364 389
            
365 390
    public Function ST_GeomFromEWKB(Value geom, Value crs);
366 391

  
367
    public Function ST_Simplify(Value geom, Value tolerance);
392
    public Function ST_Intersection(Value geom1, Value geom2);
368 393

  
369
    public Function ST_Equals(Value geom1, Value geom2);
370

  
371 394
    public Function ST_Intersects(Value geom1, Value geom2);
372 395

  
373
    public Function ST_Contains(Value geom1, Value geom2);
396
    public Function ST_IsClosed(Value geom);
374 397

  
375
    public Function ST_Disjoint(Value geom1, Value geom2);
398
    public Function ST_IsSimple(Value geom);
376 399

  
377
    public Function ST_Crosses(Value geom1, Value geom2);
400
    public Function ST_IsValid(Value geom);
378 401

  
379
    public Function ST_IsClosed(Value geom1);
402
    public Function ST_NumGeometries(Value geom);
403
    
404
    public Function ST_NumPoints(Value geom);
380 405

  
381 406
    public Function ST_Overlaps(Value geom1, Value geom2);
382 407

  
408
    public Function ST_Perimeter(Value geom);
409

  
410
    public Function ST_Point(Value x, Value y);
411

  
412
    public Function ST_PointN(Value geom, Value n);
413

  
414
    public Function ST_SRID(Value geom);
415

  
416
    public Function ST_SetSRID(Value geom, Value srid);
417
    
418
    public Function ST_StartPoint(Value geom);
419

  
420
    public Function ST_Simplify(Value geom, Value tolerance);
421

  
383 422
    public Function ST_Touches(Value geom1, Value geom2);
384 423

  
424
    public Function ST_Union(Value geom1, Value geom2);
425

  
385 426
    public Function ST_Within(Value geom1, Value geom2);
386 427

  
387
    public Function ST_Point(Value x, Value y);
428
    public Function ST_X(Value geom);
388 429

  
389
    public Function ST_SetSRID(Value geom, Value srid);
430
    public Function ST_Y(Value geom);
390 431

  
432
    public Function ST_Z(Value geom);
433

  
434
    
391 435
    public Function ST_UnionAggregate(Value geom);
392 436
    
393 437
    public Function ST_ExtentAggregate(Value geom);
438

  
439

  
394 440
    
395 441
    public BinaryOperator and(Value op1, Value op2);
396 442

  

Also available in: Unified diff