Strabon
changeset 897:0b89344c4375 experiments-2
geo:sf* functions are evaluated the same way as strdf:* functions
author | George Garbis <ggarbis@di.uoa.gr> |
---|---|
date | Sat Mar 09 16:12:11 2013 +0200 (2013-03-09) |
parents | d7babe43a0c4 |
children | 93d1b4ce44a6 |
files | postgis/src/main/java/org/openrdf/sail/postgis/evaluation/PostGISQueryBuilder.java |
line diff
1.1 --- a/postgis/src/main/java/org/openrdf/sail/postgis/evaluation/PostGISQueryBuilder.java Fri Mar 08 21:15:08 2013 +0200 1.2 +++ b/postgis/src/main/java/org/openrdf/sail/postgis/evaluation/PostGISQueryBuilder.java Sat Mar 09 16:12:11 2013 +0200 1.3 @@ -103,7 +103,8 @@ 1.4 import org.openrdf.sail.rdbms.exceptions.UnsupportedRdbmsOperatorException; 1.5 1.6 /** 1.7 - * Constructs an SQL query from {@link GeneralDBSqlExpr}s and {@link GeneralDBFromItem}s. 1.8 + * Constructs an SQL query from {@link GeneralDBSqlExpr}s and 1.9 + * {@link GeneralDBFromItem}s. 1.10 * 1.11 * @author Manos Karpathiotakis <mk@di.uoa.gr> 1.12 * 1.13 @@ -115,95 +116,64 @@ 1.14 public static final String ST_TRANSFORM = "ST_Transform"; 1.15 public static final String ST_ASBINARY = "ST_AsBinary"; 1.16 /** 1.17 - * If (spatial) label column met is null, I must not try to retrieve its srid. 1.18 - * Opting to ask for 'null' instead 1.19 + * If (spatial) label column met is null, I must not try to retrieve its 1.20 + * srid. Opting to ask for 'null' instead 1.21 */ 1.22 boolean nullLabel = false; 1.23 1.24 - public enum SpatialOperandsPostGIS { intersects, equals, contains, inside, left, right, above, below; } 1.25 - public enum SpatialFunctionsPostGIS 1.26 - { //stSPARQL++ 1.27 - //Spatial Relationships 1.28 - ST_Equals, 1.29 - ST_Disjoint, 1.30 - ST_Intersects, 1.31 - ST_Touches, 1.32 - ST_Crosses, 1.33 - ST_Within, 1.34 - ST_Contains, 1.35 - ST_Overlaps, 1.36 - ST_Relate, 1.37 - 1.38 - //Spatial Constructs - Binary 1.39 - ST_Union, 1.40 - ST_Intersection, 1.41 - ST_Difference, 1.42 - ST_Buffer, 1.43 - ST_Transform, 1.44 - ST_SymDifference, 1.45 + public enum SpatialOperandsPostGIS { 1.46 + intersects, equals, contains, inside, left, right, above, below; 1.47 + } 1.48 1.49 + public enum SpatialFunctionsPostGIS { // stSPARQL++ 1.50 + // Spatial Relationships 1.51 + ST_Equals, ST_Disjoint, ST_Intersects, ST_Touches, ST_Crosses, ST_Within, ST_Contains, ST_Overlaps, ST_Relate, 1.52 1.53 - //Spatial Constructs - Unary 1.54 - ST_Envelope, 1.55 - ST_ConvexHull, 1.56 - ST_Boundary, 1.57 + // Spatial Constructs - Binary 1.58 + ST_Union, ST_Intersection, ST_Difference, ST_Buffer, ST_Transform, ST_SymDifference, 1.59 1.60 - //Spatial Metrics - Binary 1.61 + // Spatial Constructs - Unary 1.62 + ST_Envelope, ST_ConvexHull, ST_Boundary, 1.63 + 1.64 + // Spatial Metrics - Binary 1.65 ST_Distance, 1.66 1.67 - //Spatial Metrics - Unary 1.68 + // Spatial Metrics - Unary 1.69 ST_Area, 1.70 1.71 - //Spatial Properties - All Unary 1.72 - ST_Dimension, 1.73 - ST_GeometryType, 1.74 - ST_AsGML, 1.75 - ST_AsText, 1.76 - ST_SRID, 1.77 - ST_IsEmpty, 1.78 - ST_IsSimple, 1.79 + // Spatial Properties - All Unary 1.80 + ST_Dimension, ST_GeometryType, ST_AsGML, ST_AsText, ST_SRID, ST_IsEmpty, ST_IsSimple, 1.81 1.82 - //GeoSPARQL 1.83 - //Simple Features 1.84 - SF_Equals, 1.85 - SF_Disjoint, 1.86 - SF_Intersects, 1.87 - SF_Touches, 1.88 - SF_Within, 1.89 - SF_Contains, 1.90 - SF_Overlaps, 1.91 - SF_Crosses, 1.92 + // GeoSPARQL 1.93 + // Simple Features 1.94 + SF_Equals, // ST_Equals, 1.95 + SF_Disjoint, // ST_Disjoint, 1.96 + SF_Intersects, // ST_Intersects, 1.97 + SF_Touches, // ST_Touches, 1.98 + SF_Within, // ST_Within, 1.99 + SF_Contains, // ST_Contains, 1.100 + SF_Overlaps, // ST_Overlaps, 1.101 + SF_Crosses, // ST_Crosses, 1.102 1.103 - //RCC8 1.104 - RCC8_Eq, 1.105 - RCC8_Dc, 1.106 - RCC8_Ec, 1.107 - RCC8_Po, 1.108 - RCC8_Tppi, 1.109 - RCC8_Tpp, 1.110 - RCC8_Ntppi, 1.111 - RCC8_Ntpp, 1.112 + // RCC8 1.113 + RCC8_Eq, RCC8_Dc, RCC8_Ec, RCC8_Po, RCC8_Tppi, RCC8_Tpp, RCC8_Ntppi, RCC8_Ntpp, 1.114 1.115 - //Egenhofer 1.116 - EH_Equals, 1.117 - EH_Disjoint, 1.118 - EH_Meet, 1.119 - EH_Overlap, 1.120 - EH_Covers, 1.121 - EH_CoveredBy, 1.122 - EH_Inside, 1.123 - EH_Contains, 1.124 - ; 1.125 + // Egenhofer 1.126 + EH_Equals, EH_Disjoint, EH_Meet, EH_Overlap, EH_Covers, EH_CoveredBy, EH_Inside, EH_Contains, ; 1.127 } 1.128 1.129 - /** Addition for datetime metric functions 1.130 + /** 1.131 + * Addition for datetime metric functions 1.132 * 1.133 * @author George Garbis <ggarbis@di.uoa.gr> 1.134 * 1.135 */ 1.136 - public enum DateTimeFunctionPostGIS { Difference; } 1.137 + public enum DateTimeFunctionPostGIS { 1.138 + Difference; 1.139 + } 1.140 + 1.141 /***/ 1.142 - 1.143 + 1.144 public PostGISQueryBuilder() { 1.145 super(); 1.146 } 1.147 @@ -219,67 +189,64 @@ 1.148 } 1.149 1.150 @Override 1.151 - protected void append(GeneralDBSqlIsNull expr, GeneralDBSqlExprBuilder filter) 1.152 - throws UnsupportedRdbmsOperatorException 1.153 - { 1.154 + protected void append(GeneralDBSqlIsNull expr, 1.155 + GeneralDBSqlExprBuilder filter) 1.156 + throws UnsupportedRdbmsOperatorException { 1.157 dispatch(expr.getArg(), filter); 1.158 filter.isNull(); 1.159 - } 1.160 + } 1.161 1.162 @Override 1.163 protected void append(GeneralDBSqlNot expr, GeneralDBSqlExprBuilder filter) 1.164 - throws UnsupportedRdbmsOperatorException 1.165 - { 1.166 + throws UnsupportedRdbmsOperatorException { 1.167 if (expr.getArg() instanceof GeneralDBSqlIsNull) { 1.168 - GeneralDBSqlIsNull arg = (GeneralDBSqlIsNull)expr.getArg(); 1.169 + GeneralDBSqlIsNull arg = (GeneralDBSqlIsNull) expr.getArg(); 1.170 dispatch(arg.getArg(), filter); 1.171 filter.isNotNull(); 1.172 - } 1.173 - else { 1.174 + } else { 1.175 GeneralDBSqlBracketBuilder open = filter.not(); 1.176 dispatch(expr.getArg(), (GeneralDBSqlExprBuilder) open); 1.177 open.close(); 1.178 } 1.179 - } 1.180 + } 1.181 1.182 @Override 1.183 - protected void append(GeneralDBDateTimeColumn var, GeneralDBSqlExprBuilder filter) { 1.184 + protected void append(GeneralDBDateTimeColumn var, 1.185 + GeneralDBSqlExprBuilder filter) { 1.186 String alias = getDateTimeAlias(var.getRdbmsVar()); 1.187 filter.column(alias, "value"); 1.188 } 1.189 - 1.190 + 1.191 @Override 1.192 - protected void append(GeneralDBLabelColumn var, GeneralDBSqlExprBuilder filter) { 1.193 + protected void append(GeneralDBLabelColumn var, 1.194 + GeneralDBSqlExprBuilder filter) { 1.195 if (var.getRdbmsVar().isResource()) { 1.196 filter.appendNull(); 1.197 nullLabel = true; 1.198 - } 1.199 - else { 1.200 - if(var.isSpatial()) 1.201 - { 1.202 + } else { 1.203 + if (var.isSpatial()) { 1.204 filter.appendFunction(ST_ASBINARY); 1.205 filter.openBracket(); 1.206 - //XXX SRID 1.207 + // XXX SRID 1.208 filter.appendFunction(ST_TRANSFORM); 1.209 filter.openBracket(); 1.210 // 1.211 String alias = getLabelAlias(var.getRdbmsVar()); 1.212 1.213 filter.column(alias, STRDFGEO_FIELD); 1.214 - //XXX SRID 1.215 + // XXX SRID 1.216 filter.appendComma(); 1.217 filter.column(alias, SRID_FIELD); 1.218 filter.closeBracket(); 1.219 // 1.220 filter.closeBracket(); 1.221 1.222 - //Adding srid field explicitly for my StrabonPolyhedron constructor later on! 1.223 + // Adding srid field explicitly for my StrabonPolyhedron 1.224 + // constructor later on! 1.225 filter.appendComma(); 1.226 filter.column(alias, SRID_FIELD); 1.227 - } 1.228 - else 1.229 - { 1.230 - //XXX original/default case 1.231 + } else { 1.232 + // XXX original/default case 1.233 String alias = getLabelAlias(var.getRdbmsVar()); 1.234 filter.column(alias, "value"); 1.235 } 1.236 @@ -288,20 +255,20 @@ 1.237 1.238 @Override 1.239 protected void append(GeneralDBSqlAnd expr, GeneralDBSqlExprBuilder filter) 1.240 - throws UnsupportedRdbmsOperatorException 1.241 - { 1.242 + throws UnsupportedRdbmsOperatorException { 1.243 dispatch(expr.getLeftArg(), filter); 1.244 filter.and(); 1.245 dispatch(expr.getRightArg(), filter); 1.246 - } 1.247 + } 1.248 1.249 - protected GeneralDBSqlJoinBuilder subJoinAndFilter(GeneralDBSqlJoinBuilder query, GeneralDBFromItem from) 1.250 - throws RdbmsException, UnsupportedRdbmsOperatorException 1.251 - { 1.252 + protected GeneralDBSqlJoinBuilder subJoinAndFilter( 1.253 + GeneralDBSqlJoinBuilder query, GeneralDBFromItem from) 1.254 + throws RdbmsException, UnsupportedRdbmsOperatorException { 1.255 if (from instanceof GeneralDBUnionItem) { 1.256 - GeneralDBUnionItem union = (GeneralDBUnionItem)from; 1.257 + GeneralDBUnionItem union = (GeneralDBUnionItem) from; 1.258 List<String> names = union.getSelectVarNames(); 1.259 - List<GeneralDBColumnVar> vars = union.appendVars(new ArrayList<GeneralDBColumnVar>()); 1.260 + List<GeneralDBColumnVar> vars = union 1.261 + .appendVars(new ArrayList<GeneralDBColumnVar>()); 1.262 GeneralDBSqlQueryBuilder subquery = query.subquery(); 1.263 for (GeneralDBFromItem item : union.getUnion()) { 1.264 for (int i = 0, n = names.size(); i < n; i++) { 1.265 @@ -309,11 +276,9 @@ 1.266 GeneralDBSqlExprBuilder select = subquery.select(); 1.267 if (var == null) { 1.268 select.appendNull(); 1.269 - } 1.270 - else if (var.isImplied()) { 1.271 + } else if (var.isImplied()) { 1.272 select.appendNumeric(vf.getInternalId(var.getValue())); 1.273 - } 1.274 - else { 1.275 + } else { 1.276 select.column(var.getAlias(), var.getColumn()); 1.277 } 1.278 select.as(vars.get(i).getColumn()); 1.279 @@ -329,1007 +294,1052 @@ 1.280 dispatch(expr, query.on().and()); 1.281 } 1.282 return query; 1.283 - } 1.284 + } 1.285 1.286 - //FIXME my addition from here on 1.287 + // FIXME my addition from here on 1.288 1.289 - //Issue with this function: crashes when MathExpr is present in Select but does not 1.290 - //involve spatial variables! must escape this somehow 1.291 + // Issue with this function: crashes when MathExpr is present in Select but 1.292 + // does not 1.293 + // involve spatial variables! must escape this somehow 1.294 @Override 1.295 - public GeneralDBQueryBuilder construct(GeneralDBSqlExpr expr) throws UnsupportedRdbmsOperatorException 1.296 - { 1.297 - if(!(expr instanceof GeneralDBSqlSpatialMetricBinary) 1.298 - &&!(expr instanceof GeneralDBSqlSpatialMetricUnary) 1.299 - &&!(expr instanceof GeneralDBSqlMathExpr) 1.300 - &&!(expr instanceof GeneralDBSqlSpatialProperty)) 1.301 - { 1.302 + public GeneralDBQueryBuilder construct(GeneralDBSqlExpr expr) 1.303 + throws UnsupportedRdbmsOperatorException { 1.304 + if (!(expr instanceof GeneralDBSqlSpatialMetricBinary) 1.305 + && !(expr instanceof GeneralDBSqlSpatialMetricUnary) 1.306 + && !(expr instanceof GeneralDBSqlMathExpr) 1.307 + && !(expr instanceof GeneralDBSqlSpatialProperty)) { 1.308 query.select().appendFunction(ST_ASBINARY); 1.309 - } 1.310 - else 1.311 - { 1.312 + } else { 1.313 query.select(); 1.314 } 1.315 - if(expr instanceof BinaryGeneralDBOperator) 1.316 - { 1.317 - dispatchBinarySqlOperator((BinaryGeneralDBOperator) expr, query.select); 1.318 + if (expr instanceof BinaryGeneralDBOperator) { 1.319 + dispatchBinarySqlOperator((BinaryGeneralDBOperator) expr, 1.320 + query.select); 1.321 + } else if (expr instanceof UnaryGeneralDBOperator) { 1.322 + dispatchUnarySqlOperator((UnaryGeneralDBOperator) expr, 1.323 + query.select); 1.324 } 1.325 - else if(expr instanceof UnaryGeneralDBOperator) 1.326 - { 1.327 - dispatchUnarySqlOperator((UnaryGeneralDBOperator) expr, query.select); 1.328 - } 1.329 - //SRID support must be explicitly added! 1.330 + // SRID support must be explicitly added! 1.331 1.332 return this; 1.333 } 1.334 1.335 - //Spatial Relationship Functions 1.336 + // Spatial Relationship Functions 1.337 @Override 1.338 - protected void append(GeneralDBSqlEqualsSpatial expr, GeneralDBSqlExprBuilder filter) 1.339 + protected void append(GeneralDBSqlEqualsSpatial expr, 1.340 + GeneralDBSqlExprBuilder filter) 1.341 throws UnsupportedRdbmsOperatorException { 1.342 1.343 - appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_Equals); 1.344 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.345 + SpatialFunctionsPostGIS.ST_Equals); 1.346 } 1.347 - 1.348 + 1.349 @Override 1.350 - protected void append(GeneralDBSqlDisjoint expr, GeneralDBSqlExprBuilder filter) 1.351 + protected void append(GeneralDBSqlDisjoint expr, 1.352 + GeneralDBSqlExprBuilder filter) 1.353 throws UnsupportedRdbmsOperatorException { 1.354 1.355 - appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_Disjoint); 1.356 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.357 + SpatialFunctionsPostGIS.ST_Disjoint); 1.358 } 1.359 - 1.360 + 1.361 @Override 1.362 - protected void append(GeneralDBSqlIntersects expr, GeneralDBSqlExprBuilder filter) 1.363 + protected void append(GeneralDBSqlIntersects expr, 1.364 + GeneralDBSqlExprBuilder filter) 1.365 throws UnsupportedRdbmsOperatorException { 1.366 - appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_Intersects); 1.367 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.368 + SpatialFunctionsPostGIS.ST_Intersects); 1.369 } 1.370 - 1.371 + 1.372 @Override 1.373 - protected void append(GeneralDBSqlTouches expr, GeneralDBSqlExprBuilder filter) 1.374 + protected void append(GeneralDBSqlTouches expr, 1.375 + GeneralDBSqlExprBuilder filter) 1.376 throws UnsupportedRdbmsOperatorException { 1.377 1.378 - appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_Touches); 1.379 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.380 + SpatialFunctionsPostGIS.ST_Touches); 1.381 } 1.382 - 1.383 + 1.384 @Override 1.385 - protected void append(GeneralDBSqlCrosses expr, GeneralDBSqlExprBuilder filter) 1.386 + protected void append(GeneralDBSqlCrosses expr, 1.387 + GeneralDBSqlExprBuilder filter) 1.388 throws UnsupportedRdbmsOperatorException { 1.389 1.390 - appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_Crosses); 1.391 - } 1.392 - 1.393 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.394 + SpatialFunctionsPostGIS.ST_Crosses); 1.395 + } 1.396 + 1.397 @Override 1.398 - protected void append(GeneralDBSqlWithin expr, GeneralDBSqlExprBuilder filter) 1.399 + protected void append(GeneralDBSqlWithin expr, 1.400 + GeneralDBSqlExprBuilder filter) 1.401 throws UnsupportedRdbmsOperatorException { 1.402 1.403 - appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_Within); 1.404 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.405 + SpatialFunctionsPostGIS.ST_Within); 1.406 1.407 } 1.408 - 1.409 + 1.410 @Override 1.411 - protected void append(GeneralDBSqlContains expr, GeneralDBSqlExprBuilder filter) 1.412 + protected void append(GeneralDBSqlContains expr, 1.413 + GeneralDBSqlExprBuilder filter) 1.414 throws UnsupportedRdbmsOperatorException { 1.415 1.416 - appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_Contains); 1.417 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.418 + SpatialFunctionsPostGIS.ST_Contains); 1.419 } 1.420 - 1.421 + 1.422 @Override 1.423 - protected void append(GeneralDBSqlOverlaps expr, GeneralDBSqlExprBuilder filter) 1.424 + protected void append(GeneralDBSqlOverlaps expr, 1.425 + GeneralDBSqlExprBuilder filter) 1.426 throws UnsupportedRdbmsOperatorException { 1.427 1.428 - appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_Overlaps); 1.429 - } 1.430 - 1.431 - @Override 1.432 - protected void append(GeneralDBSqlRelate expr, GeneralDBSqlExprBuilder filter) 1.433 - throws UnsupportedRdbmsOperatorException { 1.434 - appendGeneralDBSpatialFunctionTriple(expr, filter, SpatialFunctionsPostGIS.ST_Relate); 1.435 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.436 + SpatialFunctionsPostGIS.ST_Overlaps); 1.437 } 1.438 1.439 -// @Override 1.440 -// protected void append(GeneralDBSqlCovers expr, GeneralDBSqlExprBuilder filter) 1.441 -// throws UnsupportedRdbmsOperatorException { 1.442 -// 1.443 -// appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_Covers); 1.444 -// } 1.445 -// 1.446 -// @Override 1.447 -// protected void append(GeneralDBSqlCoveredBy expr, GeneralDBSqlExprBuilder filter) 1.448 -// throws UnsupportedRdbmsOperatorException { 1.449 -// 1.450 -// appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_CoveredBy); 1.451 -// } 1.452 + @Override 1.453 + protected void append(GeneralDBSqlRelate expr, 1.454 + GeneralDBSqlExprBuilder filter) 1.455 + throws UnsupportedRdbmsOperatorException { 1.456 + appendGeneralDBSpatialFunctionTriple(expr, filter, 1.457 + SpatialFunctionsPostGIS.ST_Relate); 1.458 + } 1.459 1.460 - 1.461 + // @Override 1.462 + // protected void append(GeneralDBSqlCovers expr, GeneralDBSqlExprBuilder 1.463 + // filter) 1.464 + // throws UnsupportedRdbmsOperatorException { 1.465 + // 1.466 + // appendGeneralDBSpatialFunctionBinary(expr, filter, 1.467 + // SpatialFunctionsPostGIS.ST_Covers); 1.468 + // } 1.469 + // 1.470 + // @Override 1.471 + // protected void append(GeneralDBSqlCoveredBy expr, GeneralDBSqlExprBuilder 1.472 + // filter) 1.473 + // throws UnsupportedRdbmsOperatorException { 1.474 + // 1.475 + // appendGeneralDBSpatialFunctionBinary(expr, filter, 1.476 + // SpatialFunctionsPostGIS.ST_CoveredBy); 1.477 + // } 1.478 1.479 - 1.480 - 1.481 - 1.482 - @Override 1.483 + @Override 1.484 protected void append(GeneralDBSqlLeft expr, GeneralDBSqlExprBuilder filter) 1.485 - throws UnsupportedRdbmsOperatorException 1.486 - { 1.487 + throws UnsupportedRdbmsOperatorException { 1.488 appendStSPARQLSpatialOperand(expr, filter, SpatialOperandsPostGIS.left); 1.489 - } 1.490 + } 1.491 1.492 @Override 1.493 protected void append(GeneralDBSqlRight expr, GeneralDBSqlExprBuilder filter) 1.494 - throws UnsupportedRdbmsOperatorException 1.495 - { 1.496 + throws UnsupportedRdbmsOperatorException { 1.497 appendStSPARQLSpatialOperand(expr, filter, SpatialOperandsPostGIS.right); 1.498 - } 1.499 + } 1.500 1.501 @Override 1.502 protected void append(GeneralDBSqlAbove expr, GeneralDBSqlExprBuilder filter) 1.503 - throws UnsupportedRdbmsOperatorException 1.504 - { 1.505 + throws UnsupportedRdbmsOperatorException { 1.506 appendStSPARQLSpatialOperand(expr, filter, SpatialOperandsPostGIS.above); 1.507 - } 1.508 + } 1.509 1.510 @Override 1.511 protected void append(GeneralDBSqlBelow expr, GeneralDBSqlExprBuilder filter) 1.512 - throws UnsupportedRdbmsOperatorException 1.513 - { 1.514 + throws UnsupportedRdbmsOperatorException { 1.515 appendStSPARQLSpatialOperand(expr, filter, SpatialOperandsPostGIS.below); 1.516 - } 1.517 - 1.518 - @Override 1.519 - protected void append(GeneralDBSqlMbbIntersects expr, GeneralDBSqlExprBuilder filter) 1.520 - throws UnsupportedRdbmsOperatorException { 1.521 - appendStSPARQLSpatialOperand(expr, filter, SpatialOperandsPostGIS.intersects); 1.522 } 1.523 1.524 @Override 1.525 - protected void append(GeneralDBSqlMbbWithin expr, GeneralDBSqlExprBuilder filter) 1.526 + protected void append(GeneralDBSqlMbbIntersects expr, 1.527 + GeneralDBSqlExprBuilder filter) 1.528 throws UnsupportedRdbmsOperatorException { 1.529 - appendStSPARQLSpatialOperand(expr, filter, SpatialOperandsPostGIS.inside); 1.530 + appendStSPARQLSpatialOperand(expr, filter, 1.531 + SpatialOperandsPostGIS.intersects); 1.532 } 1.533 1.534 - 1.535 @Override 1.536 - protected void append(GeneralDBSqlMbbContains expr, GeneralDBSqlExprBuilder filter) 1.537 + protected void append(GeneralDBSqlMbbWithin expr, 1.538 + GeneralDBSqlExprBuilder filter) 1.539 throws UnsupportedRdbmsOperatorException { 1.540 - appendStSPARQLSpatialOperand(expr, filter, SpatialOperandsPostGIS.contains); 1.541 + appendStSPARQLSpatialOperand(expr, filter, 1.542 + SpatialOperandsPostGIS.inside); 1.543 } 1.544 1.545 - 1.546 @Override 1.547 - protected void append(GeneralDBSqlMbbEquals expr, GeneralDBSqlExprBuilder filter) 1.548 + protected void append(GeneralDBSqlMbbContains expr, 1.549 + GeneralDBSqlExprBuilder filter) 1.550 throws UnsupportedRdbmsOperatorException { 1.551 - appendStSPARQLSpatialOperand(expr, filter, SpatialOperandsPostGIS.equals); 1.552 + appendStSPARQLSpatialOperand(expr, filter, 1.553 + SpatialOperandsPostGIS.contains); 1.554 } 1.555 1.556 - //GeoSPARQL - Spatial Relationship Functions 1.557 - //Simple Features 1.558 @Override 1.559 - protected void append(GeneralDBSqlSF_Contains expr, GeneralDBSqlExprBuilder filter) 1.560 - throws UnsupportedRdbmsOperatorException 1.561 - { 1.562 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.SF_Contains); 1.563 - } 1.564 + protected void append(GeneralDBSqlMbbEquals expr, 1.565 + GeneralDBSqlExprBuilder filter) 1.566 + throws UnsupportedRdbmsOperatorException { 1.567 + appendStSPARQLSpatialOperand(expr, filter, 1.568 + SpatialOperandsPostGIS.equals); 1.569 + } 1.570 + 1.571 + // GeoSPARQL - Spatial Relationship Functions 1.572 + // Simple Features 1.573 + @Override 1.574 + protected void append(GeneralDBSqlSF_Contains expr, 1.575 + GeneralDBSqlExprBuilder filter) 1.576 + throws UnsupportedRdbmsOperatorException { 1.577 + // appendgeoSPARQLSpatialRelation(expr, 1.578 + // filter,SpatialFunctionsPostGIS.SF_Contains); 1.579 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.580 + SpatialFunctionsPostGIS.SF_Contains); 1.581 + } 1.582 1.583 @Override 1.584 - protected void append(GeneralDBSqlSF_Crosses expr, GeneralDBSqlExprBuilder filter) 1.585 - throws UnsupportedRdbmsOperatorException 1.586 - { 1.587 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.SF_Crosses); 1.588 - } 1.589 + protected void append(GeneralDBSqlSF_Crosses expr, 1.590 + GeneralDBSqlExprBuilder filter) 1.591 + throws UnsupportedRdbmsOperatorException { 1.592 + // appendgeoSPARQLSpatialRelation(expr, 1.593 + // filter,SpatialFunctionsPostGIS.SF_Crosses); 1.594 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.595 + SpatialFunctionsPostGIS.SF_Crosses); 1.596 + } 1.597 1.598 @Override 1.599 - protected void append(GeneralDBSqlSF_Disjoint expr, GeneralDBSqlExprBuilder filter) 1.600 - throws UnsupportedRdbmsOperatorException 1.601 - { 1.602 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.SF_Disjoint); 1.603 - } 1.604 + protected void append(GeneralDBSqlSF_Disjoint expr, 1.605 + GeneralDBSqlExprBuilder filter) 1.606 + throws UnsupportedRdbmsOperatorException { 1.607 + // appendgeoSPARQLSpatialRelation(expr, 1.608 + // filter,SpatialFunctionsPostGIS.SF_Disjoint); 1.609 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.610 + SpatialFunctionsPostGIS.SF_Disjoint); 1.611 + } 1.612 1.613 @Override 1.614 - protected void append(GeneralDBSqlSF_Equals expr, GeneralDBSqlExprBuilder filter) 1.615 - throws UnsupportedRdbmsOperatorException 1.616 - { 1.617 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.SF_Equals); 1.618 - } 1.619 + protected void append(GeneralDBSqlSF_Equals expr, 1.620 + GeneralDBSqlExprBuilder filter) 1.621 + throws UnsupportedRdbmsOperatorException { 1.622 + // appendgeoSPARQLSpatialRelation(expr, 1.623 + // filter,SpatialFunctionsPostGIS.SF_Equals); 1.624 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.625 + SpatialFunctionsPostGIS.SF_Equals); 1.626 + } 1.627 1.628 @Override 1.629 - protected void append(GeneralDBSqlSF_Intersects expr, GeneralDBSqlExprBuilder filter) 1.630 - throws UnsupportedRdbmsOperatorException 1.631 - { 1.632 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.SF_Intersects); 1.633 - } 1.634 + protected void append(GeneralDBSqlSF_Intersects expr, 1.635 + GeneralDBSqlExprBuilder filter) 1.636 + throws UnsupportedRdbmsOperatorException { 1.637 + // appendgeoSPARQLSpatialRelation(expr, 1.638 + // filter,SpatialFunctionsPostGIS.SF_Intersects); 1.639 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.640 + SpatialFunctionsPostGIS.SF_Intersects); 1.641 + } 1.642 1.643 @Override 1.644 - protected void append(GeneralDBSqlSF_Overlaps expr, GeneralDBSqlExprBuilder filter) 1.645 - throws UnsupportedRdbmsOperatorException 1.646 - { 1.647 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.SF_Overlaps); 1.648 - } 1.649 + protected void append(GeneralDBSqlSF_Overlaps expr, 1.650 + GeneralDBSqlExprBuilder filter) 1.651 + throws UnsupportedRdbmsOperatorException { 1.652 + // appendgeoSPARQLSpatialRelation(expr, 1.653 + // filter,SpatialFunctionsPostGIS.SF_Overlaps); 1.654 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.655 + SpatialFunctionsPostGIS.SF_Overlaps); 1.656 + } 1.657 1.658 @Override 1.659 - protected void append(GeneralDBSqlSF_Touches expr, GeneralDBSqlExprBuilder filter) 1.660 - throws UnsupportedRdbmsOperatorException 1.661 - { 1.662 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.SF_Touches); 1.663 - } 1.664 + protected void append(GeneralDBSqlSF_Touches expr, 1.665 + GeneralDBSqlExprBuilder filter) 1.666 + throws UnsupportedRdbmsOperatorException { 1.667 + // appendgeoSPARQLSpatialRelation(expr, 1.668 + // filter,SpatialFunctionsPostGIS.SF_Touches); 1.669 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.670 + SpatialFunctionsPostGIS.SF_Touches); 1.671 + } 1.672 1.673 @Override 1.674 - protected void append(GeneralDBSqlSF_Within expr, GeneralDBSqlExprBuilder filter) 1.675 - throws UnsupportedRdbmsOperatorException 1.676 - { 1.677 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.SF_Within); 1.678 - } 1.679 + protected void append(GeneralDBSqlSF_Within expr, 1.680 + GeneralDBSqlExprBuilder filter) 1.681 + throws UnsupportedRdbmsOperatorException { 1.682 + // appendgeoSPARQLSpatialRelation(expr, 1.683 + // filter,SpatialFunctionsPostGIS.SF_Within); 1.684 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.685 + SpatialFunctionsPostGIS.SF_Within); 1.686 + } 1.687 1.688 - //Egenhofer 1.689 + // Egenhofer 1.690 @Override 1.691 - protected void append(GeneralDBSqlEgenhofer_CoveredBy expr, GeneralDBSqlExprBuilder filter) 1.692 - throws UnsupportedRdbmsOperatorException 1.693 - { 1.694 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.EH_CoveredBy); 1.695 - } 1.696 + protected void append(GeneralDBSqlEgenhofer_CoveredBy expr, 1.697 + GeneralDBSqlExprBuilder filter) 1.698 + throws UnsupportedRdbmsOperatorException { 1.699 + appendgeoSPARQLSpatialRelation(expr, filter, 1.700 + SpatialFunctionsPostGIS.EH_CoveredBy); 1.701 + } 1.702 1.703 @Override 1.704 - protected void append(GeneralDBSqlEgenhofer_Covers expr, GeneralDBSqlExprBuilder filter) 1.705 - throws UnsupportedRdbmsOperatorException 1.706 - { 1.707 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.EH_Covers); 1.708 - } 1.709 + protected void append(GeneralDBSqlEgenhofer_Covers expr, 1.710 + GeneralDBSqlExprBuilder filter) 1.711 + throws UnsupportedRdbmsOperatorException { 1.712 + appendgeoSPARQLSpatialRelation(expr, filter, 1.713 + SpatialFunctionsPostGIS.EH_Covers); 1.714 + } 1.715 1.716 @Override 1.717 - protected void append(GeneralDBSqlEgenhofer_Contains expr, GeneralDBSqlExprBuilder filter) 1.718 - throws UnsupportedRdbmsOperatorException 1.719 - { 1.720 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.EH_Contains); 1.721 - } 1.722 + protected void append(GeneralDBSqlEgenhofer_Contains expr, 1.723 + GeneralDBSqlExprBuilder filter) 1.724 + throws UnsupportedRdbmsOperatorException { 1.725 + appendgeoSPARQLSpatialRelation(expr, filter, 1.726 + SpatialFunctionsPostGIS.EH_Contains); 1.727 + } 1.728 1.729 @Override 1.730 - protected void append(GeneralDBSqlEgenhofer_Disjoint expr, GeneralDBSqlExprBuilder filter) 1.731 - throws UnsupportedRdbmsOperatorException 1.732 - { 1.733 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.EH_Disjoint); 1.734 - } 1.735 + protected void append(GeneralDBSqlEgenhofer_Disjoint expr, 1.736 + GeneralDBSqlExprBuilder filter) 1.737 + throws UnsupportedRdbmsOperatorException { 1.738 + appendgeoSPARQLSpatialRelation(expr, filter, 1.739 + SpatialFunctionsPostGIS.EH_Disjoint); 1.740 + } 1.741 1.742 @Override 1.743 - protected void append(GeneralDBSqlEgenhofer_Equals expr, GeneralDBSqlExprBuilder filter) 1.744 - throws UnsupportedRdbmsOperatorException 1.745 - { 1.746 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.EH_Equals); 1.747 - } 1.748 + protected void append(GeneralDBSqlEgenhofer_Equals expr, 1.749 + GeneralDBSqlExprBuilder filter) 1.750 + throws UnsupportedRdbmsOperatorException { 1.751 + appendgeoSPARQLSpatialRelation(expr, filter, 1.752 + SpatialFunctionsPostGIS.EH_Equals); 1.753 + } 1.754 1.755 @Override 1.756 - protected void append(GeneralDBSqlEgenhofer_Inside expr, GeneralDBSqlExprBuilder filter) 1.757 - throws UnsupportedRdbmsOperatorException 1.758 - { 1.759 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.EH_Inside); 1.760 - } 1.761 + protected void append(GeneralDBSqlEgenhofer_Inside expr, 1.762 + GeneralDBSqlExprBuilder filter) 1.763 + throws UnsupportedRdbmsOperatorException { 1.764 + appendgeoSPARQLSpatialRelation(expr, filter, 1.765 + SpatialFunctionsPostGIS.EH_Inside); 1.766 + } 1.767 1.768 @Override 1.769 - protected void append(GeneralDBSqlEgenhofer_Meet expr, GeneralDBSqlExprBuilder filter) 1.770 - throws UnsupportedRdbmsOperatorException 1.771 - { 1.772 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.EH_Meet); 1.773 - } 1.774 + protected void append(GeneralDBSqlEgenhofer_Meet expr, 1.775 + GeneralDBSqlExprBuilder filter) 1.776 + throws UnsupportedRdbmsOperatorException { 1.777 + appendgeoSPARQLSpatialRelation(expr, filter, 1.778 + SpatialFunctionsPostGIS.EH_Meet); 1.779 + } 1.780 1.781 @Override 1.782 - protected void append(GeneralDBSqlEgenhofer_Overlap expr, GeneralDBSqlExprBuilder filter) 1.783 - throws UnsupportedRdbmsOperatorException 1.784 - { 1.785 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.EH_Overlap); 1.786 - } 1.787 + protected void append(GeneralDBSqlEgenhofer_Overlap expr, 1.788 + GeneralDBSqlExprBuilder filter) 1.789 + throws UnsupportedRdbmsOperatorException { 1.790 + appendgeoSPARQLSpatialRelation(expr, filter, 1.791 + SpatialFunctionsPostGIS.EH_Overlap); 1.792 + } 1.793 1.794 - //RCC8 1.795 + // RCC8 1.796 @Override 1.797 - protected void append(GeneralDBSqlRCC8_Dc expr, GeneralDBSqlExprBuilder filter) 1.798 - throws UnsupportedRdbmsOperatorException 1.799 - { 1.800 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.RCC8_Dc); 1.801 - } 1.802 + protected void append(GeneralDBSqlRCC8_Dc expr, 1.803 + GeneralDBSqlExprBuilder filter) 1.804 + throws UnsupportedRdbmsOperatorException { 1.805 + appendgeoSPARQLSpatialRelation(expr, filter, 1.806 + SpatialFunctionsPostGIS.RCC8_Dc); 1.807 + } 1.808 1.809 @Override 1.810 - protected void append(GeneralDBSqlRCC8_Eq expr, GeneralDBSqlExprBuilder filter) 1.811 - throws UnsupportedRdbmsOperatorException 1.812 - { 1.813 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.RCC8_Eq); 1.814 - } 1.815 + protected void append(GeneralDBSqlRCC8_Eq expr, 1.816 + GeneralDBSqlExprBuilder filter) 1.817 + throws UnsupportedRdbmsOperatorException { 1.818 + appendgeoSPARQLSpatialRelation(expr, filter, 1.819 + SpatialFunctionsPostGIS.RCC8_Eq); 1.820 + } 1.821 1.822 @Override 1.823 - protected void append(GeneralDBSqlRCC8_Ec expr, GeneralDBSqlExprBuilder filter) 1.824 - throws UnsupportedRdbmsOperatorException 1.825 - { 1.826 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.RCC8_Ec); 1.827 - } 1.828 + protected void append(GeneralDBSqlRCC8_Ec expr, 1.829 + GeneralDBSqlExprBuilder filter) 1.830 + throws UnsupportedRdbmsOperatorException { 1.831 + appendgeoSPARQLSpatialRelation(expr, filter, 1.832 + SpatialFunctionsPostGIS.RCC8_Ec); 1.833 + } 1.834 1.835 @Override 1.836 - protected void append(GeneralDBSqlRCC8_Po expr, GeneralDBSqlExprBuilder filter) 1.837 - throws UnsupportedRdbmsOperatorException 1.838 - { 1.839 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.RCC8_Po); 1.840 - } 1.841 + protected void append(GeneralDBSqlRCC8_Po expr, 1.842 + GeneralDBSqlExprBuilder filter) 1.843 + throws UnsupportedRdbmsOperatorException { 1.844 + appendgeoSPARQLSpatialRelation(expr, filter, 1.845 + SpatialFunctionsPostGIS.RCC8_Po); 1.846 + } 1.847 1.848 @Override 1.849 - protected void append(GeneralDBSqlRCC8_Tppi expr, GeneralDBSqlExprBuilder filter) 1.850 - throws UnsupportedRdbmsOperatorException 1.851 - { 1.852 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.RCC8_Tppi); 1.853 - } 1.854 + protected void append(GeneralDBSqlRCC8_Tppi expr, 1.855 + GeneralDBSqlExprBuilder filter) 1.856 + throws UnsupportedRdbmsOperatorException { 1.857 + appendgeoSPARQLSpatialRelation(expr, filter, 1.858 + SpatialFunctionsPostGIS.RCC8_Tppi); 1.859 + } 1.860 1.861 @Override 1.862 - protected void append(GeneralDBSqlRCC8_Tpp expr, GeneralDBSqlExprBuilder filter) 1.863 - throws UnsupportedRdbmsOperatorException 1.864 - { 1.865 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.RCC8_Tpp); 1.866 - } 1.867 + protected void append(GeneralDBSqlRCC8_Tpp expr, 1.868 + GeneralDBSqlExprBuilder filter) 1.869 + throws UnsupportedRdbmsOperatorException { 1.870 + appendgeoSPARQLSpatialRelation(expr, filter, 1.871 + SpatialFunctionsPostGIS.RCC8_Tpp); 1.872 + } 1.873 1.874 @Override 1.875 - protected void append(GeneralDBSqlRCC8_Ntpp expr, GeneralDBSqlExprBuilder filter) 1.876 - throws UnsupportedRdbmsOperatorException 1.877 - { 1.878 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.RCC8_Ntpp); 1.879 - } 1.880 + protected void append(GeneralDBSqlRCC8_Ntpp expr, 1.881 + GeneralDBSqlExprBuilder filter) 1.882 + throws UnsupportedRdbmsOperatorException { 1.883 + appendgeoSPARQLSpatialRelation(expr, filter, 1.884 + SpatialFunctionsPostGIS.RCC8_Ntpp); 1.885 + } 1.886 1.887 @Override 1.888 - protected void append(GeneralDBSqlRCC8_Ntppi expr, GeneralDBSqlExprBuilder filter) 1.889 - throws UnsupportedRdbmsOperatorException 1.890 - { 1.891 - appendgeoSPARQLSpatialRelation(expr, filter,SpatialFunctionsPostGIS.RCC8_Ntppi); 1.892 - } 1.893 + protected void append(GeneralDBSqlRCC8_Ntppi expr, 1.894 + GeneralDBSqlExprBuilder filter) 1.895 + throws UnsupportedRdbmsOperatorException { 1.896 + appendgeoSPARQLSpatialRelation(expr, filter, 1.897 + SpatialFunctionsPostGIS.RCC8_Ntppi); 1.898 + } 1.899 1.900 - //Spatial Construct Functions 1.901 + // Spatial Construct Functions 1.902 @Override 1.903 - protected void append(GeneralDBSqlGeoUnion expr, GeneralDBSqlExprBuilder filter) 1.904 - throws UnsupportedRdbmsOperatorException 1.905 - { 1.906 - appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_Union); 1.907 - } 1.908 + protected void append(GeneralDBSqlGeoUnion expr, 1.909 + GeneralDBSqlExprBuilder filter) 1.910 + throws UnsupportedRdbmsOperatorException { 1.911 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.912 + SpatialFunctionsPostGIS.ST_Union); 1.913 + } 1.914 1.915 @Override 1.916 - protected void append(GeneralDBSqlGeoBuffer expr, GeneralDBSqlExprBuilder filter) 1.917 - throws UnsupportedRdbmsOperatorException 1.918 - { 1.919 - appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_Buffer); 1.920 - } 1.921 + protected void append(GeneralDBSqlGeoBuffer expr, 1.922 + GeneralDBSqlExprBuilder filter) 1.923 + throws UnsupportedRdbmsOperatorException { 1.924 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.925 + SpatialFunctionsPostGIS.ST_Buffer); 1.926 + } 1.927 1.928 - //XXX Different Behavior 1.929 + // XXX Different Behavior 1.930 @Override 1.931 - protected void append(GeneralDBSqlGeoTransform expr, GeneralDBSqlExprBuilder filter) 1.932 - throws UnsupportedRdbmsOperatorException 1.933 - { 1.934 + protected void append(GeneralDBSqlGeoTransform expr, 1.935 + GeneralDBSqlExprBuilder filter) 1.936 + throws UnsupportedRdbmsOperatorException { 1.937 appendTransformFunc(expr, filter); 1.938 - } 1.939 + } 1.940 1.941 @Override 1.942 - protected void append(GeneralDBSqlGeoEnvelope expr, GeneralDBSqlExprBuilder filter) 1.943 - throws UnsupportedRdbmsOperatorException 1.944 - { 1.945 - appendGeneralDBSpatialFunctionUnary(expr, filter, SpatialFunctionsPostGIS.ST_Envelope); 1.946 - } 1.947 + protected void append(GeneralDBSqlGeoEnvelope expr, 1.948 + GeneralDBSqlExprBuilder filter) 1.949 + throws UnsupportedRdbmsOperatorException { 1.950 + appendGeneralDBSpatialFunctionUnary(expr, filter, 1.951 + SpatialFunctionsPostGIS.ST_Envelope); 1.952 + } 1.953 1.954 @Override 1.955 - protected void append(GeneralDBSqlGeoConvexHull expr, GeneralDBSqlExprBuilder filter) 1.956 - throws UnsupportedRdbmsOperatorException 1.957 - { 1.958 - appendGeneralDBSpatialFunctionUnary(expr, filter, SpatialFunctionsPostGIS.ST_ConvexHull); 1.959 - } 1.960 + protected void append(GeneralDBSqlGeoConvexHull expr, 1.961 + GeneralDBSqlExprBuilder filter) 1.962 + throws UnsupportedRdbmsOperatorException { 1.963 + appendGeneralDBSpatialFunctionUnary(expr, filter, 1.964 + SpatialFunctionsPostGIS.ST_ConvexHull); 1.965 + } 1.966 1.967 @Override 1.968 - protected void append(GeneralDBSqlGeoBoundary expr, GeneralDBSqlExprBuilder filter) 1.969 - throws UnsupportedRdbmsOperatorException 1.970 - { 1.971 - appendGeneralDBSpatialFunctionUnary(expr, filter, SpatialFunctionsPostGIS.ST_Boundary); 1.972 - } 1.973 + protected void append(GeneralDBSqlGeoBoundary expr, 1.974 + GeneralDBSqlExprBuilder filter) 1.975 + throws UnsupportedRdbmsOperatorException { 1.976 + appendGeneralDBSpatialFunctionUnary(expr, filter, 1.977 + SpatialFunctionsPostGIS.ST_Boundary); 1.978 + } 1.979 1.980 @Override 1.981 - protected void append(GeneralDBSqlGeoIntersection expr, GeneralDBSqlExprBuilder filter) 1.982 - throws UnsupportedRdbmsOperatorException 1.983 - { 1.984 - appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_Intersection); 1.985 - } 1.986 + protected void append(GeneralDBSqlGeoIntersection expr, 1.987 + GeneralDBSqlExprBuilder filter) 1.988 + throws UnsupportedRdbmsOperatorException { 1.989 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.990 + SpatialFunctionsPostGIS.ST_Intersection); 1.991 + } 1.992 1.993 @Override 1.994 - protected void append(GeneralDBSqlGeoDifference expr, GeneralDBSqlExprBuilder filter) 1.995 - throws UnsupportedRdbmsOperatorException 1.996 - { 1.997 - appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_Difference); 1.998 - } 1.999 + protected void append(GeneralDBSqlGeoDifference expr, 1.1000 + GeneralDBSqlExprBuilder filter) 1.1001 + throws UnsupportedRdbmsOperatorException { 1.1002 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.1003 + SpatialFunctionsPostGIS.ST_Difference); 1.1004 + } 1.1005 1.1006 @Override 1.1007 - protected void append(GeneralDBSqlGeoSymDifference expr, GeneralDBSqlExprBuilder filter) 1.1008 - throws UnsupportedRdbmsOperatorException 1.1009 - { 1.1010 - appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_SymDifference); 1.1011 - } 1.1012 + protected void append(GeneralDBSqlGeoSymDifference expr, 1.1013 + GeneralDBSqlExprBuilder filter) 1.1014 + throws UnsupportedRdbmsOperatorException { 1.1015 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.1016 + SpatialFunctionsPostGIS.ST_SymDifference); 1.1017 + } 1.1018 1.1019 - /** Addition for datetime metric functions 1.1020 + /** 1.1021 + * Addition for datetime metric functions 1.1022 * 1.1023 * @author George Garbis <ggarbis@di.uoa.gr> 1.1024 * 1.1025 */ 1.1026 @Override 1.1027 - protected void append(GeneralDBSqlDiffDateTime expr, GeneralDBSqlExprBuilder filter) 1.1028 - throws UnsupportedRdbmsOperatorException 1.1029 - { 1.1030 - appendGeneralDBDateTimeFunctionBinary(expr, filter, DateTimeFunctionPostGIS.Difference); 1.1031 + protected void append(GeneralDBSqlDiffDateTime expr, 1.1032 + GeneralDBSqlExprBuilder filter) 1.1033 + throws UnsupportedRdbmsOperatorException { 1.1034 + appendGeneralDBDateTimeFunctionBinary(expr, filter, 1.1035 + DateTimeFunctionPostGIS.Difference); 1.1036 } 1.1037 + 1.1038 /***/ 1.1039 - 1.1040 - //Spatial Metric Functions 1.1041 + 1.1042 + // Spatial Metric Functions 1.1043 @Override 1.1044 - protected void append(GeneralDBSqlGeoDistance expr, GeneralDBSqlExprBuilder filter) 1.1045 - throws UnsupportedRdbmsOperatorException 1.1046 - { 1.1047 - appendGeneralDBSpatialFunctionBinary(expr, filter, SpatialFunctionsPostGIS.ST_Distance); 1.1048 - } 1.1049 + protected void append(GeneralDBSqlGeoDistance expr, 1.1050 + GeneralDBSqlExprBuilder filter) 1.1051 + throws UnsupportedRdbmsOperatorException { 1.1052 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.1053 + SpatialFunctionsPostGIS.ST_Distance); 1.1054 + } 1.1055 1.1056 @Override 1.1057 - protected void append(GeneralDBSqlGeoArea expr, GeneralDBSqlExprBuilder filter) 1.1058 - throws UnsupportedRdbmsOperatorException 1.1059 - { 1.1060 - appendGeneralDBSpatialFunctionUnary(expr, filter, SpatialFunctionsPostGIS.ST_Area); 1.1061 - } 1.1062 + protected void append(GeneralDBSqlGeoArea expr, 1.1063 + GeneralDBSqlExprBuilder filter) 1.1064 + throws UnsupportedRdbmsOperatorException { 1.1065 + appendGeneralDBSpatialFunctionUnary(expr, filter, 1.1066 + SpatialFunctionsPostGIS.ST_Area); 1.1067 + } 1.1068 1.1069 - //Spatial Property Functions 1.1070 + // Spatial Property Functions 1.1071 @Override 1.1072 - protected void append(GeneralDBSqlGeoDimension expr, GeneralDBSqlExprBuilder filter) 1.1073 - throws UnsupportedRdbmsOperatorException 1.1074 - { 1.1075 - appendGeneralDBSpatialFunctionUnary(expr, filter, SpatialFunctionsPostGIS.ST_Dimension); 1.1076 - } 1.1077 + protected void append(GeneralDBSqlGeoDimension expr, 1.1078 + GeneralDBSqlExprBuilder filter) 1.1079 + throws UnsupportedRdbmsOperatorException { 1.1080 + appendGeneralDBSpatialFunctionUnary(expr, filter, 1.1081 + SpatialFunctionsPostGIS.ST_Dimension); 1.1082 + } 1.1083 1.1084 @Override 1.1085 - protected void append(GeneralDBSqlGeoGeometryType expr, GeneralDBSqlExprBuilder filter) 1.1086 - throws UnsupportedRdbmsOperatorException 1.1087 - { 1.1088 - appendGeneralDBSpatialFunctionUnary(expr, filter, SpatialFunctionsPostGIS.ST_GeometryType); 1.1089 - } 1.1090 + protected void append(GeneralDBSqlGeoGeometryType expr, 1.1091 + GeneralDBSqlExprBuilder filter) 1.1092 + throws UnsupportedRdbmsOperatorException { 1.1093 + appendGeneralDBSpatialFunctionUnary(expr, filter, 1.1094 + SpatialFunctionsPostGIS.ST_GeometryType); 1.1095 + } 1.1096 1.1097 @Override 1.1098 - protected void append(GeneralDBSqlGeoAsText expr, GeneralDBSqlExprBuilder filter) 1.1099 - throws UnsupportedRdbmsOperatorException 1.1100 - { 1.1101 - appendGeneralDBSpatialFunctionUnary(expr, filter, SpatialFunctionsPostGIS.ST_AsText); 1.1102 - } 1.1103 + protected void append(GeneralDBSqlGeoAsText expr, 1.1104 + GeneralDBSqlExprBuilder filter) 1.1105 + throws UnsupportedRdbmsOperatorException { 1.1106 + appendGeneralDBSpatialFunctionUnary(expr, filter, 1.1107 + SpatialFunctionsPostGIS.ST_AsText); 1.1108 + } 1.1109 1.1110 @Override 1.1111 - protected void append(GeneralDBSqlGeoAsGML expr, GeneralDBSqlExprBuilder filter) 1.1112 - throws UnsupportedRdbmsOperatorException 1.1113 - { 1.1114 - appendGeneralDBSpatialFunctionUnary(expr, filter, SpatialFunctionsPostGIS.ST_AsGML); 1.1115 - } 1.1116 + protected void append(GeneralDBSqlGeoAsGML expr, 1.1117 + GeneralDBSqlExprBuilder filter) 1.1118 + throws UnsupportedRdbmsOperatorException { 1.1119 + appendGeneralDBSpatialFunctionUnary(expr, filter, 1.1120 + SpatialFunctionsPostGIS.ST_AsGML); 1.1121 + } 1.1122 1.1123 - // @Override 1.1124 - // protected void append(GeneralDBSqlGeoSrid expr, GeneralDBSqlExprBuilder filter) 1.1125 - // throws UnsupportedRdbmsOperatorException 1.1126 - // { 1.1127 - // appendGeneralDBSpatialFunctionUnary(expr, filter, SpatialFunctionsPostGIS.ST_SRID); 1.1128 - // } 1.1129 + // @Override 1.1130 + // protected void append(GeneralDBSqlGeoSrid expr, GeneralDBSqlExprBuilder 1.1131 + // filter) 1.1132 + // throws UnsupportedRdbmsOperatorException 1.1133 + // { 1.1134 + // appendGeneralDBSpatialFunctionUnary(expr, filter, 1.1135 + // SpatialFunctionsPostGIS.ST_SRID); 1.1136 + // } 1.1137 1.1138 /** 1.1139 - * Special Case because I need to retrieve a single different column from geo_values when this function occurs 1.1140 - * in the select clause 1.1141 + * Special Case because I need to retrieve a single different column from 1.1142 + * geo_values when this function occurs in the select clause 1.1143 */ 1.1144 @Override 1.1145 - protected void append(GeneralDBSqlGeoSrid expr, GeneralDBSqlExprBuilder filter) 1.1146 - throws UnsupportedRdbmsOperatorException 1.1147 - { 1.1148 + protected void append(GeneralDBSqlGeoSrid expr, 1.1149 + GeneralDBSqlExprBuilder filter) 1.1150 + throws UnsupportedRdbmsOperatorException { 1.1151 boolean sridNeeded = true; 1.1152 filter.openBracket(); 1.1153 1.1154 - boolean check1 = expr.getArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1155 + boolean check1 = expr.getArg().getClass().getCanonicalName() 1.1156 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1157 boolean check2 = false; 1.1158 - if(expr.getArg() instanceof GeneralDBLabelColumn) 1.1159 - { 1.1160 - if(((GeneralDBLabelColumn) expr.getArg()).getRdbmsVar().isResource()) 1.1161 - { 1.1162 + if (expr.getArg() instanceof GeneralDBLabelColumn) { 1.1163 + if (((GeneralDBLabelColumn) expr.getArg()).getRdbmsVar() 1.1164 + .isResource()) { 1.1165 check2 = true; 1.1166 } 1.1167 } 1.1168 - if(check1) 1.1169 - { 1.1170 - this.append((GeneralDBSqlNull)expr.getArg(), filter); 1.1171 + if (check1) { 1.1172 + this.append((GeneralDBSqlNull) expr.getArg(), filter); 1.1173 1.1174 - } 1.1175 - else if (check2) 1.1176 - { 1.1177 - appendMBB((GeneralDBLabelColumn)(expr.getArg()),filter); 1.1178 - } 1.1179 - else 1.1180 - { 1.1181 - //XXX Incorporating SRID 1.1182 + } else if (check2) { 1.1183 + appendMBB((GeneralDBLabelColumn) (expr.getArg()), filter); 1.1184 + } else { 1.1185 + // XXX Incorporating SRID 1.1186 GeneralDBSqlExpr tmp = expr; 1.1187 - if(tmp.getParentNode() == null) 1.1188 - { 1.1189 + if (tmp.getParentNode() == null) { 1.1190 String sridExpr; 1.1191 - while(true) 1.1192 - { 1.1193 + while (true) { 1.1194 GeneralDBSqlExpr child = null; 1.1195 1.1196 - if(tmp instanceof BinaryGeneralDBOperator) 1.1197 - { 1.1198 + if (tmp instanceof BinaryGeneralDBOperator) { 1.1199 child = ((BinaryGeneralDBOperator) tmp).getLeftArg(); 1.1200 - } 1.1201 - else if(tmp instanceof UnaryGeneralDBOperator) 1.1202 - { 1.1203 + } else if (tmp instanceof UnaryGeneralDBOperator) { 1.1204 child = ((UnaryGeneralDBOperator) tmp).getArg(); 1.1205 - } 1.1206 - else if(tmp instanceof GeneralDBStringValue) 1.1207 - { 1.1208 - //Constant!! 1.1209 - sridNeeded = false; 1.1210 + } else if (tmp instanceof GeneralDBStringValue) { 1.1211 + // Constant!! 1.1212 + sridNeeded = false; 1.1213 break; 1.1214 } 1.1215 1.1216 tmp = child; 1.1217 - if(tmp instanceof GeneralDBLabelColumn) 1.1218 - { 1.1219 - //Reached the innermost left var -> need to capture its SRID 1.1220 + if (tmp instanceof GeneralDBLabelColumn) { 1.1221 + // Reached the innermost left var -> need to capture its 1.1222 + // SRID 1.1223 String alias; 1.1224 - if (((GeneralDBLabelColumn) tmp).getRdbmsVar().isResource()) { 1.1225 - //Predicates used in triple patterns non-existent in db 1.1226 - alias="NULL"; 1.1227 - } 1.1228 - else 1.1229 - { 1.1230 - //Reached the innermost left var -> need to capture its SRID 1.1231 - alias = getLabelAlias(((GeneralDBLabelColumn) tmp).getRdbmsVar()); 1.1232 - alias=alias+".srid"; 1.1233 + if (((GeneralDBLabelColumn) tmp).getRdbmsVar() 1.1234 + .isResource()) { 1.1235 + // Predicates used in triple patterns non-existent 1.1236 + // in db 1.1237 + alias = "NULL"; 1.1238 + } else { 1.1239 + // Reached the innermost left var -> need to capture 1.1240 + // its SRID 1.1241 + alias = getLabelAlias(((GeneralDBLabelColumn) tmp) 1.1242 + .getRdbmsVar()); 1.1243 + alias = alias + ".srid"; 1.1244 } 1.1245 sridExpr = alias; 1.1246 filter.append(sridExpr); 1.1247 filter.closeBracket(); 1.1248 return; 1.1249 - //break; 1.1250 - } 1.1251 - else if(tmp instanceof GeneralDBStringValue) 1.1252 - { 1.1253 - //Constant!! 1.1254 - sridNeeded = false; 1.1255 + // break; 1.1256 + } else if (tmp instanceof GeneralDBStringValue) { 1.1257 + // Constant!! 1.1258 + sridNeeded = false; 1.1259 break; 1.1260 } 1.1261 1.1262 } 1.1263 } 1.1264 1.1265 - if(sridNeeded) 1.1266 - { 1.1267 + if (sridNeeded) { 1.1268 filter.appendFunction("ST_SRID"); 1.1269 filter.openBracket(); 1.1270 - if(expr.getArg() instanceof GeneralDBStringValue) 1.1271 - { 1.1272 - appendWKT(expr.getArg(),filter); 1.1273 - } 1.1274 - else if(expr.getArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.1275 - { 1.1276 + if (expr.getArg() instanceof GeneralDBStringValue) { 1.1277 + appendWKT(expr.getArg(), filter); 1.1278 + } else if (expr.getArg() instanceof GeneralDBSqlSpatialConstructBinary) { 1.1279 appendConstructFunction(expr.getArg(), filter); 1.1280 - } 1.1281 - else if(expr.getArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.1282 - { 1.1283 + } else if (expr.getArg() instanceof GeneralDBSqlSpatialConstructUnary) { 1.1284 appendConstructFunction(expr.getArg(), filter); 1.1285 - } 1.1286 - else if(expr.getArg() instanceof GeneralDBSqlCase) 1.1287 - { 1.1288 - GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn)((GeneralDBSqlCase)expr.getArg()).getEntries().get(0).getResult(); 1.1289 - appendMBB(onlyLabel,filter); 1.1290 - } 1.1291 - else 1.1292 - { 1.1293 - appendMBB((GeneralDBLabelColumn)(expr.getArg()),filter); 1.1294 + } else if (expr.getArg() instanceof GeneralDBSqlCase) { 1.1295 + GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn) ((GeneralDBSqlCase) expr 1.1296 + .getArg()).getEntries().get(0).getResult(); 1.1297 + appendMBB(onlyLabel, filter); 1.1298 + } else { 1.1299 + appendMBB((GeneralDBLabelColumn) (expr.getArg()), filter); 1.1300 } 1.1301 1.1302 filter.closeBracket(); 1.1303 - } 1.1304 - else 1.1305 - { 1.1306 - //4326 by default - Software House additions 1.1307 + } else { 1.1308 + // 4326 by default - Software House additions 1.1309 filter.append("4326"); 1.1310 } 1.1311 } 1.1312 1.1313 filter.closeBracket(); 1.1314 - } 1.1315 + } 1.1316 1.1317 @Override 1.1318 - protected void append(GeneralDBSqlGeoIsSimple expr, GeneralDBSqlExprBuilder filter) 1.1319 - throws UnsupportedRdbmsOperatorException 1.1320 - { 1.1321 - appendGeneralDBSpatialFunctionUnary(expr, filter, SpatialFunctionsPostGIS.ST_IsSimple); 1.1322 - } 1.1323 + protected void append(GeneralDBSqlGeoIsSimple expr, 1.1324 + GeneralDBSqlExprBuilder filter) 1.1325 + throws UnsupportedRdbmsOperatorException { 1.1326 + appendGeneralDBSpatialFunctionUnary(expr, filter, 1.1327 + SpatialFunctionsPostGIS.ST_IsSimple); 1.1328 + } 1.1329 1.1330 @Override 1.1331 - protected void append(GeneralDBSqlGeoIsEmpty expr, GeneralDBSqlExprBuilder filter) 1.1332 - throws UnsupportedRdbmsOperatorException 1.1333 - { 1.1334 - appendGeneralDBSpatialFunctionUnary(expr, filter, SpatialFunctionsPostGIS.ST_IsEmpty); 1.1335 - } 1.1336 - 1.1337 + protected void append(GeneralDBSqlGeoIsEmpty expr, 1.1338 + GeneralDBSqlExprBuilder filter) 1.1339 + throws UnsupportedRdbmsOperatorException { 1.1340 + appendGeneralDBSpatialFunctionUnary(expr, filter, 1.1341 + SpatialFunctionsPostGIS.ST_IsEmpty); 1.1342 + } 1.1343 1.1344 /** 1.1345 * 'helper' functions 1.1346 */ 1.1347 1.1348 @Override 1.1349 - protected String appendWKT(GeneralDBSqlExpr expr, GeneralDBSqlExprBuilder filter) 1.1350 - { 1.1351 + protected String appendWKT(GeneralDBSqlExpr expr, 1.1352 + GeneralDBSqlExprBuilder filter) { 1.1353 GeneralDBStringValue arg = (GeneralDBStringValue) expr; 1.1354 String raw = arg.getValue(); 1.1355 1.1356 StrabonPolyhedron poly = null; 1.1357 - try{ 1.1358 + try { 1.1359 poly = new StrabonPolyhedron(raw); 1.1360 } catch (Exception e) { 1.1361 e.printStackTrace(); 1.1362 } 1.1363 1.1364 - filter.append(" ST_GeomFromText('"+poly.toWKT() +"',4326)"); 1.1365 + filter.append(" ST_GeomFromText('" + poly.toWKT() + "',4326)"); 1.1366 1.1367 return raw; 1.1368 } 1.1369 1.1370 - //Used in all the generaldb boolean spatial functions of the form ?GEO1 ~ ?GEO2 1.1371 - // protected void appendStSPARQLSpatialOperand(BinaryGeneralDBOperator expr, GeneralDBSqlExprBuilder filter, SpatialOperandsPostGIS operand) throws UnsupportedRdbmsOperatorException 1.1372 - // { 1.1373 - // filter.openBracket(); 1.1374 + // Used in all the generaldb boolean spatial functions of the form ?GEO1 ~ 1.1375 + // ?GEO2 1.1376 + // protected void appendStSPARQLSpatialOperand(BinaryGeneralDBOperator expr, 1.1377 + // GeneralDBSqlExprBuilder filter, SpatialOperandsPostGIS operand) throws 1.1378 + // UnsupportedRdbmsOperatorException 1.1379 + // { 1.1380 + // filter.openBracket(); 1.1381 // 1.1382 - // boolean check1a = expr.getLeftArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1383 - // //boolean check2a = expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1384 + // boolean check1a = 1.1385 + // expr.getLeftArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1386 + // //boolean check2a = 1.1387 + // expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1388 // 1.1389 - // if(check1a) 1.1390 - // { 1.1391 - // this.append((GeneralDBSqlNull)expr.getLeftArg(), filter); 1.1392 + // if(check1a) 1.1393 + // { 1.1394 + // this.append((GeneralDBSqlNull)expr.getLeftArg(), filter); 1.1395 // 1.1396 - // } 1.1397 - //// else if(check2a) 1.1398 - //// { 1.1399 - //// this.append((GeneralDBSqlNull)expr.getRightArg(), filter); 1.1400 - //// } 1.1401 - // else 1.1402 - // { 1.1403 - // if(expr.getLeftArg() instanceof GeneralDBSqlCase) 1.1404 - // { 1.1405 - // this.append((GeneralDBSqlCase)expr.getLeftArg(), filter); 1.1406 - // } 1.1407 - // else if(expr.getLeftArg() instanceof GeneralDBStringValue) 1.1408 - // { 1.1409 - // appendWKT(expr.getLeftArg(),filter); 1.1410 - // } 1.1411 - // else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.1412 - // { 1.1413 - // appendConstructFunction(expr.getLeftArg(), filter); 1.1414 - // } 1.1415 - // else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.1416 - // { 1.1417 - // appendConstructFunction(expr.getLeftArg(), filter); 1.1418 - // } 1.1419 - // else 1.1420 - // { 1.1421 - // appendMBB((GeneralDBLabelColumn)(expr.getLeftArg()),filter); 1.1422 - // } 1.1423 + // } 1.1424 + // // else if(check2a) 1.1425 + // // { 1.1426 + // // this.append((GeneralDBSqlNull)expr.getRightArg(), filter); 1.1427 + // // } 1.1428 + // else 1.1429 + // { 1.1430 + // if(expr.getLeftArg() instanceof GeneralDBSqlCase) 1.1431 + // { 1.1432 + // this.append((GeneralDBSqlCase)expr.getLeftArg(), filter); 1.1433 + // } 1.1434 + // else if(expr.getLeftArg() instanceof GeneralDBStringValue) 1.1435 + // { 1.1436 + // appendWKT(expr.getLeftArg(),filter); 1.1437 + // } 1.1438 + // else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.1439 + // { 1.1440 + // appendConstructFunction(expr.getLeftArg(), filter); 1.1441 + // } 1.1442 + // else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.1443 + // { 1.1444 + // appendConstructFunction(expr.getLeftArg(), filter); 1.1445 + // } 1.1446 + // else 1.1447 + // { 1.1448 + // appendMBB((GeneralDBLabelColumn)(expr.getLeftArg()),filter); 1.1449 + // } 1.1450 // 1.1451 - // switch(operand) 1.1452 - // { 1.1453 - // case mbbIntersects: filter.mbbIntersects(); break; 1.1454 - // case equals: filter.equals(); break; 1.1455 - // case contains: filter.contains(); break; 1.1456 - // case inside: filter.inside(); break; 1.1457 - // case left: filter.left(); break; 1.1458 - // case right: filter.right(); break; 1.1459 - // case above: filter.above(); break; 1.1460 - // case below: filter.below(); break; 1.1461 - // } 1.1462 + // switch(operand) 1.1463 + // { 1.1464 + // case mbbIntersects: filter.mbbIntersects(); break; 1.1465 + // case equals: filter.equals(); break; 1.1466 + // case contains: filter.contains(); break; 1.1467 + // case inside: filter.inside(); break; 1.1468 + // case left: filter.left(); break; 1.1469 + // case right: filter.right(); break; 1.1470 + // case above: filter.above(); break; 1.1471 + // case below: filter.below(); break; 1.1472 + // } 1.1473 // 1.1474 - // boolean check2a = expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1475 + // boolean check2a = 1.1476 + // expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1477 // 1.1478 - // if(check2a) 1.1479 - // { 1.1480 - // this.append((GeneralDBSqlNull)expr.getRightArg(), filter); 1.1481 - // } 1.1482 - // else 1.1483 - // { 1.1484 + // if(check2a) 1.1485 + // { 1.1486 + // this.append((GeneralDBSqlNull)expr.getRightArg(), filter); 1.1487 + // } 1.1488 + // else 1.1489 + // { 1.1490 // 1.1491 - // if(expr.getRightArg() instanceof GeneralDBSqlCase) 1.1492 - // { 1.1493 - // this.append((GeneralDBSqlCase)expr.getRightArg(), filter); 1.1494 - // } 1.1495 - // else if(expr.getRightArg() instanceof GeneralDBStringValue) 1.1496 - // { 1.1497 - // appendWKT(expr.getRightArg(),filter); 1.1498 - // } 1.1499 - // else if(expr.getRightArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.1500 - // { 1.1501 - // appendConstructFunction(expr.getRightArg(), filter); 1.1502 - // } 1.1503 - // else if(expr.getRightArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.1504 - // { 1.1505 - // appendConstructFunction(expr.getRightArg(), filter); 1.1506 - // } 1.1507 - // else 1.1508 - // { 1.1509 - // appendMBB((GeneralDBLabelColumn)(expr.getRightArg()),filter); 1.1510 - // } 1.1511 + // if(expr.getRightArg() instanceof GeneralDBSqlCase) 1.1512 + // { 1.1513 + // this.append((GeneralDBSqlCase)expr.getRightArg(), filter); 1.1514 + // } 1.1515 + // else if(expr.getRightArg() instanceof GeneralDBStringValue) 1.1516 + // { 1.1517 + // appendWKT(expr.getRightArg(),filter); 1.1518 + // } 1.1519 + // else if(expr.getRightArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.1520 + // { 1.1521 + // appendConstructFunction(expr.getRightArg(), filter); 1.1522 + // } 1.1523 + // else if(expr.getRightArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.1524 + // { 1.1525 + // appendConstructFunction(expr.getRightArg(), filter); 1.1526 + // } 1.1527 + // else 1.1528 + // { 1.1529 + // appendMBB((GeneralDBLabelColumn)(expr.getRightArg()),filter); 1.1530 + // } 1.1531 // 1.1532 - // } 1.1533 - // } 1.1534 - // filter.closeBracket(); 1.1535 - // } 1.1536 + // } 1.1537 + // } 1.1538 + // filter.closeBracket(); 1.1539 + // } 1.1540 1.1541 - 1.1542 - protected void appendStSPARQLSpatialOperand(BinaryGeneralDBOperator expr, GeneralDBSqlExprBuilder filter, SpatialOperandsPostGIS operand) throws UnsupportedRdbmsOperatorException 1.1543 - { 1.1544 + protected void appendStSPARQLSpatialOperand(BinaryGeneralDBOperator expr, 1.1545 + GeneralDBSqlExprBuilder filter, SpatialOperandsPostGIS operand) 1.1546 + throws UnsupportedRdbmsOperatorException { 1.1547 filter.openBracket(); 1.1548 1.1549 - boolean check1a = expr.getLeftArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1550 - boolean check2a = expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1551 + boolean check1a = expr.getLeftArg().getClass().getCanonicalName() 1.1552 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1553 + boolean check2a = expr.getRightArg().getClass().getCanonicalName() 1.1554 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1555 1.1556 - if(check1a) 1.1557 - { 1.1558 - this.append((GeneralDBSqlNull)expr.getLeftArg(), filter); 1.1559 + if (check1a) { 1.1560 + this.append((GeneralDBSqlNull) expr.getLeftArg(), filter); 1.1561 1.1562 - } 1.1563 - else if(check2a) 1.1564 - { 1.1565 - this.append((GeneralDBSqlNull)expr.getRightArg(), filter); 1.1566 - } 1.1567 - else 1.1568 - { 1.1569 - if(expr.getLeftArg() instanceof GeneralDBSqlCase) 1.1570 - { 1.1571 - this.append((GeneralDBSqlCase)expr.getLeftArg(), filter); 1.1572 - } 1.1573 - else if(expr.getLeftArg() instanceof GeneralDBStringValue) 1.1574 - { 1.1575 - appendWKT(expr.getLeftArg(),filter); 1.1576 - } 1.1577 - else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.1578 - { 1.1579 + } else if (check2a) { 1.1580 + this.append((GeneralDBSqlNull) expr.getRightArg(), filter); 1.1581 + } else { 1.1582 + if (expr.getLeftArg() instanceof GeneralDBSqlCase) { 1.1583 + this.append((GeneralDBSqlCase) expr.getLeftArg(), filter); 1.1584 + } else if (expr.getLeftArg() instanceof GeneralDBStringValue) { 1.1585 + appendWKT(expr.getLeftArg(), filter); 1.1586 + } else if (expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructBinary) { 1.1587 appendConstructFunction(expr.getLeftArg(), filter); 1.1588 - } 1.1589 - else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.1590 - { 1.1591 + } else if (expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructUnary) { 1.1592 appendConstructFunction(expr.getLeftArg(), filter); 1.1593 - } 1.1594 - else 1.1595 - { 1.1596 - appendMBB((GeneralDBLabelColumn)(expr.getLeftArg()),filter); 1.1597 + } else { 1.1598 + appendMBB((GeneralDBLabelColumn) (expr.getLeftArg()), filter); 1.1599 } 1.1600 1.1601 - switch(operand) 1.1602 - { 1.1603 - case intersects: filter.intersectsMBB(); break; 1.1604 - case equals: filter.equalsMBB(); break; 1.1605 - case contains: filter.containsMBB(); break; 1.1606 - case inside: filter.insideMBB(); break; 1.1607 - case left: filter.leftMBB(); break; 1.1608 - case right: filter.rightMBB(); break; 1.1609 - case above: filter.aboveMBB(); break; 1.1610 - case below: filter.belowMBB(); break; 1.1611 + switch (operand) { 1.1612 + case intersects: 1.1613 + filter.intersectsMBB(); 1.1614 + break; 1.1615 + case equals: 1.1616 + filter.equalsMBB(); 1.1617 + break; 1.1618 + case contains: 1.1619 + filter.containsMBB(); 1.1620 + break; 1.1621 + case inside: 1.1622 + filter.insideMBB(); 1.1623 + break; 1.1624 + case left: 1.1625 + filter.leftMBB(); 1.1626 + break; 1.1627 + case right: 1.1628 + filter.rightMBB(); 1.1629 + break; 1.1630 + case above: 1.1631 + filter.aboveMBB(); 1.1632 + break; 1.1633 + case below: 1.1634 + filter.belowMBB(); 1.1635 + break; 1.1636 } 1.1637 1.1638 - // boolean check2a = expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1639 + // boolean check2a = 1.1640 + // expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1641 // 1.1642 - // if(check2a) 1.1643 - // { 1.1644 - // this.append((GeneralDBSqlNull)expr.getRightArg(), filter); 1.1645 - // } 1.1646 - // else 1.1647 - // { 1.1648 + // if(check2a) 1.1649 + // { 1.1650 + // this.append((GeneralDBSqlNull)expr.getRightArg(), filter); 1.1651 + // } 1.1652 + // else 1.1653 + // { 1.1654 1.1655 - if(expr.getRightArg() instanceof GeneralDBSqlCase) 1.1656 - { 1.1657 - this.append((GeneralDBSqlCase)expr.getRightArg(), filter); 1.1658 - } 1.1659 - else if(expr.getRightArg() instanceof GeneralDBStringValue) 1.1660 - { 1.1661 - appendWKT(expr.getRightArg(),filter); 1.1662 - } 1.1663 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.1664 - { 1.1665 + if (expr.getRightArg() instanceof GeneralDBSqlCase) { 1.1666 + this.append((GeneralDBSqlCase) expr.getRightArg(), filter); 1.1667 + } else if (expr.getRightArg() instanceof GeneralDBStringValue) { 1.1668 + appendWKT(expr.getRightArg(), filter); 1.1669 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialConstructBinary) { 1.1670 appendConstructFunction(expr.getRightArg(), filter); 1.1671 - } 1.1672 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.1673 - { 1.1674 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialConstructUnary) { 1.1675 appendConstructFunction(expr.getRightArg(), filter); 1.1676 - } 1.1677 - else 1.1678 - { 1.1679 - appendMBB((GeneralDBLabelColumn)(expr.getRightArg()),filter); 1.1680 + } else { 1.1681 + appendMBB((GeneralDBLabelColumn) (expr.getRightArg()), filter); 1.1682 } 1.1683 1.1684 - //} 1.1685 + // } 1.1686 } 1.1687 filter.closeBracket(); 1.1688 } 1.1689 1.1690 - //Used in all the generaldb stsparql boolean spatial functions of the form ST_Function(?GEO1,?GEO2) 1.1691 - protected void appendTransformFunc(GeneralDBSqlGeoTransform expr, GeneralDBSqlExprBuilder filter) 1.1692 - throws UnsupportedRdbmsOperatorException 1.1693 - { 1.1694 - //In the case where no variable is present in the expression! e.g ConvexHull("POLYGON((.....))") 1.1695 + // Used in all the generaldb stsparql boolean spatial functions of the form 1.1696 + // ST_Function(?GEO1,?GEO2) 1.1697 + protected void appendTransformFunc(GeneralDBSqlGeoTransform expr, 1.1698 + GeneralDBSqlExprBuilder filter) 1.1699 + throws UnsupportedRdbmsOperatorException { 1.1700 + // In the case where no variable is present in the expression! e.g 1.1701 + // ConvexHull("POLYGON((.....))") 1.1702 boolean sridNeeded = true; 1.1703 - //XXX Incorporating SRID 1.1704 + // XXX Incorporating SRID 1.1705 String sridExpr = null; 1.1706 1.1707 filter.openBracket(); 1.1708 filter.appendFunction(ST_TRANSFORM); 1.1709 filter.openBracket(); 1.1710 1.1711 - boolean check1 = expr.getLeftArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1712 - boolean check2 = expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1713 + boolean check1 = expr.getLeftArg().getClass().getCanonicalName() 1.1714 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1715 + boolean check2 = expr.getRightArg().getClass().getCanonicalName() 1.1716 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1717 1.1718 - if(check1) 1.1719 - { 1.1720 - this.append((GeneralDBSqlNull)expr.getLeftArg(), filter); 1.1721 + if (check1) { 1.1722 + this.append((GeneralDBSqlNull) expr.getLeftArg(), filter); 1.1723 1.1724 - } 1.1725 - else if(check2) 1.1726 - { 1.1727 - this.append((GeneralDBSqlNull)expr.getRightArg(), filter); 1.1728 - } 1.1729 - else 1.1730 - { 1.1731 + } else if (check2) { 1.1732 + this.append((GeneralDBSqlNull) expr.getRightArg(), filter); 1.1733 + } else { 1.1734 GeneralDBSqlExpr tmp = expr; 1.1735 - if(tmp instanceof GeneralDBSqlSpatialConstructBinary && tmp.getParentNode() == null) 1.1736 - { 1.1737 - while(true) 1.1738 - { 1.1739 + if (tmp instanceof GeneralDBSqlSpatialConstructBinary 1.1740 + && tmp.getParentNode() == null) { 1.1741 + while (true) { 1.1742 GeneralDBSqlExpr child; 1.1743 1.1744 - if(tmp instanceof BinaryGeneralDBOperator) 1.1745 - { 1.1746 + if (tmp instanceof BinaryGeneralDBOperator) { 1.1747 child = ((BinaryGeneralDBOperator) tmp).getLeftArg(); 1.1748 - } 1.1749 - else //(tmp instanceof UnaryGeneralDBOperator) 1.1750 + } else // (tmp instanceof UnaryGeneralDBOperator) 1.1751 { 1.1752 child = ((UnaryGeneralDBOperator) tmp).getArg(); 1.1753 } 1.1754 1.1755 tmp = child; 1.1756 - if(tmp instanceof GeneralDBLabelColumn) 1.1757 - { 1.1758 + if (tmp instanceof GeneralDBLabelColumn) { 1.1759 String alias; 1.1760 - if (((GeneralDBLabelColumn) tmp).getRdbmsVar().isResource()) { 1.1761 - //Predicates used in triple patterns non-existent in db 1.1762 - alias="NULL"; 1.1763 - } 1.1764 - else 1.1765 - { 1.1766 - //Reached the innermost left var -> need to capture its SRID 1.1767 - alias = getLabelAlias(((GeneralDBLabelColumn) tmp).getRdbmsVar()); 1.1768 - alias=alias+".srid"; 1.1769 + if (((GeneralDBLabelColumn) tmp).getRdbmsVar() 1.1770 + .isResource()) { 1.1771 + // Predicates used in triple patterns non-existent 1.1772 + // in db 1.1773 + alias = "NULL"; 1.1774 + } else { 1.1775 + // Reached the innermost left var -> need to capture 1.1776 + // its SRID 1.1777 + alias = getLabelAlias(((GeneralDBLabelColumn) tmp) 1.1778 + .getRdbmsVar()); 1.1779 + alias = alias + ".srid"; 1.1780 } 1.1781 sridExpr = alias; 1.1782 break; 1.1783 - } 1.1784 - else if (tmp instanceof GeneralDBStringValue) //Constant!! 1.1785 + } else if (tmp instanceof GeneralDBStringValue) // Constant!! 1.1786 { 1.1787 - sridNeeded = false; 1.1788 + sridNeeded = false; 1.1789 break; 1.1790 } 1.1791 1.1792 } 1.1793 - if(sridNeeded) 1.1794 - { 1.1795 + if (sridNeeded) { 1.1796 filter.appendFunction(ST_TRANSFORM); 1.1797 filter.openBracket(); 1.1798 } 1.1799 } 1.1800 1.1801 - if(expr.getLeftArg() instanceof GeneralDBStringValue) 1.1802 - { 1.1803 - appendWKT(expr.getLeftArg(),filter); 1.1804 - } 1.1805 - else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.1806 - { 1.1807 + if (expr.getLeftArg() instanceof GeneralDBStringValue) { 1.1808 + appendWKT(expr.getLeftArg(), filter); 1.1809 + } else if (expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructBinary) { 1.1810 appendConstructFunction(expr.getLeftArg(), filter); 1.1811 - } 1.1812 - else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.1813 - { 1.1814 + } else if (expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructUnary) { 1.1815 appendConstructFunction(expr.getLeftArg(), filter); 1.1816 - } 1.1817 - else if(expr.getLeftArg() instanceof GeneralDBSqlCase) 1.1818 - { 1.1819 - GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn)((GeneralDBSqlCase)expr.getLeftArg()).getEntries().get(0).getResult(); 1.1820 - appendMBB(onlyLabel,filter); 1.1821 - } 1.1822 - else 1.1823 - { 1.1824 - appendMBB((GeneralDBLabelColumn)(expr.getLeftArg()),filter); 1.1825 + } else if (expr.getLeftArg() instanceof GeneralDBSqlCase) { 1.1826 + GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn) ((GeneralDBSqlCase) expr 1.1827 + .getLeftArg()).getEntries().get(0).getResult(); 1.1828 + appendMBB(onlyLabel, filter); 1.1829 + } else { 1.1830 + appendMBB((GeneralDBLabelColumn) (expr.getLeftArg()), filter); 1.1831 } 1.1832 1.1833 - //SRID Support 1.1834 - if(expr instanceof GeneralDBSqlSpatialConstructBinary && expr.getParentNode() == null) 1.1835 - { 1.1836 + // SRID Support 1.1837 + if (expr instanceof GeneralDBSqlSpatialConstructBinary 1.1838 + && expr.getParentNode() == null) { 1.1839 filter.appendComma(); 1.1840 - //filter.append(((GeneralDBSqlSpatialConstructBinary)expr).getSrid()); 1.1841 + // filter.append(((GeneralDBSqlSpatialConstructBinary)expr).getSrid()); 1.1842 filter.append(sridExpr); 1.1843 filter.closeBracket(); 1.1844 } 1.1845 1.1846 filter.appendComma(); 1.1847 1.1848 - if(expr.getRightArg() instanceof GeneralDBSqlCase) //case met in transform! 1.1849 + if (expr.getRightArg() instanceof GeneralDBSqlCase) // case met in 1.1850 + // transform! 1.1851 { 1.1852 - GeneralDBURIColumn plainURI = (GeneralDBURIColumn)((GeneralDBSqlCase)expr.getRightArg()).getEntries().get(0).getResult(); 1.1853 + GeneralDBURIColumn plainURI = (GeneralDBURIColumn) ((GeneralDBSqlCase) expr 1.1854 + .getRightArg()).getEntries().get(0).getResult(); 1.1855 1.1856 - //XXX This case would be met if we recovered the SRID URI from the db!!! 1.1857 - //Need to set sridExpr to the value of this new URI, otherwise the appended uri 1.1858 - //to the spatial object will be the wrong one!!!! (Seee following case) 1.1859 + // XXX This case would be met if we recovered the SRID URI from 1.1860 + // the db!!! 1.1861 + // Need to set sridExpr to the value of this new URI, otherwise 1.1862 + // the appended uri 1.1863 + // to the spatial object will be the wrong one!!!! (Seee 1.1864 + // following case) 1.1865 filter.keepSRID_part1(); 1.1866 append(plainURI, filter); 1.1867 filter.keepSRID_part2(); 1.1868 append(plainURI, filter); 1.1869 filter.keepSRID_part3(); 1.1870 - } 1.1871 - else if(expr.getRightArg() instanceof GeneralDBStringValue) 1.1872 - { 1.1873 - String unparsedSRID = ((GeneralDBStringValue)expr.getRightArg()).getValue(); 1.1874 - // int srid = Integer.parseInt(unparsedSRID.substring(unparsedSRID.lastIndexOf('/')+1)); 1.1875 - sridExpr = unparsedSRID.substring(unparsedSRID.lastIndexOf('/')+1); 1.1876 + } else if (expr.getRightArg() instanceof GeneralDBStringValue) { 1.1877 + String unparsedSRID = ((GeneralDBStringValue) expr 1.1878 + .getRightArg()).getValue(); 1.1879 + // int srid = 1.1880 + // Integer.parseInt(unparsedSRID.substring(unparsedSRID.lastIndexOf('/')+1)); 1.1881 + sridExpr = unparsedSRID 1.1882 + .substring(unparsedSRID.lastIndexOf('/') + 1); 1.1883 filter.append(sridExpr); 1.1884 filter.closeBracket(); 1.1885 } 1.1886 1.1887 - 1.1888 } 1.1889 filter.closeBracket(); 1.1890 - //In this case, SRID is the one that has been provided by the user!! 1.1891 - //I am including this extra binding to be used in subsequent (Aggregate) steps 1.1892 - if(expr instanceof GeneralDBSqlSpatialConstructBinary && expr.getParentNode() == null) 1.1893 - { 1.1894 + // In this case, SRID is the one that has been provided by the user!! 1.1895 + // I am including this extra binding to be used in subsequent 1.1896 + // (Aggregate) steps 1.1897 + if (expr instanceof GeneralDBSqlSpatialConstructBinary 1.1898 + && expr.getParentNode() == null) { 1.1899 filter.appendComma(); 1.1900 filter.append(sridExpr); 1.1901 } 1.1902 1.1903 - } 1.1904 + } 1.1905 1.1906 - /** Addition for datetime metric functions 1.1907 + /** 1.1908 + * Addition for datetime metric functions 1.1909 * 1.1910 * @author George Garbis <ggarbis@di.uoa.gr> 1.1911 * 1.1912 */ 1.1913 - protected void appendGeneralDBDateTimeFunctionBinary(BinaryGeneralDBOperator expr, GeneralDBSqlExprBuilder filter, DateTimeFunctionPostGIS func) 1.1914 - throws UnsupportedRdbmsOperatorException 1.1915 - { 1.1916 + protected void appendGeneralDBDateTimeFunctionBinary( 1.1917 + BinaryGeneralDBOperator expr, GeneralDBSqlExprBuilder filter, 1.1918 + DateTimeFunctionPostGIS func) 1.1919 + throws UnsupportedRdbmsOperatorException { 1.1920 filter.openBracket(); 1.1921 1.1922 - boolean check1 = expr.getLeftArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1923 - boolean check2 = expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1924 + boolean check1 = expr.getLeftArg().getClass().getCanonicalName() 1.1925 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1926 + boolean check2 = expr.getRightArg().getClass().getCanonicalName() 1.1927 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.1928 1.1929 - if(check1) 1.1930 - { 1.1931 - this.append((GeneralDBSqlNull)expr.getLeftArg(), filter); 1.1932 + if (check1) { 1.1933 + this.append((GeneralDBSqlNull) expr.getLeftArg(), filter); 1.1934 1.1935 - } 1.1936 - else if(check2) 1.1937 - { 1.1938 - this.append((GeneralDBSqlNull)expr.getRightArg(), filter); 1.1939 - } 1.1940 - else 1.1941 - { 1.1942 + } else if (check2) { 1.1943 + this.append((GeneralDBSqlNull) expr.getRightArg(), filter); 1.1944 + } else { 1.1945 1.1946 GeneralDBSqlExpr tmp = expr; 1.1947 - if(tmp instanceof GeneralDBSqlSpatialConstructBinary && tmp.getParentNode() == null) 1.1948 - { 1.1949 - while(true) 1.1950 - { 1.1951 + if (tmp instanceof GeneralDBSqlSpatialConstructBinary 1.1952 + && tmp.getParentNode() == null) { 1.1953 + while (true) { 1.1954 GeneralDBSqlExpr child; 1.1955 1.1956 - if(tmp instanceof BinaryGeneralDBOperator) 1.1957 - { 1.1958 + if (tmp instanceof BinaryGeneralDBOperator) { 1.1959 child = ((BinaryGeneralDBOperator) tmp).getLeftArg(); 1.1960 - } 1.1961 - else //(tmp instanceof UnaryGeneralDBOperator) 1.1962 + } else // (tmp instanceof UnaryGeneralDBOperator) 1.1963 { 1.1964 child = ((UnaryGeneralDBOperator) tmp).getArg(); 1.1965 } 1.1966 1.1967 tmp = child; 1.1968 - if(tmp instanceof GeneralDBLabelColumn) 1.1969 - { 1.1970 - //Reached the innermost left var -> need to capture its SRID 1.1971 + if (tmp instanceof GeneralDBLabelColumn) { 1.1972 + // Reached the innermost left var -> need to capture its 1.1973 + // SRID 1.1974 String alias; 1.1975 - if (((GeneralDBLabelColumn) tmp).getRdbmsVar().isResource()) { 1.1976 - //Predicates used in triple patterns non-existent in db 1.1977 - alias="NULL"; 1.1978 - } 1.1979 - else 1.1980 - { 1.1981 - //Reached the innermost left var -> need to capture its SRID 1.1982 - alias = getLabelAlias(((GeneralDBLabelColumn) tmp).getRdbmsVar()); 1.1983 + if (((GeneralDBLabelColumn) tmp).getRdbmsVar() 1.1984 + .isResource()) { 1.1985 + // Predicates used in triple patterns non-existent 1.1986 + // in db 1.1987 + alias = "NULL"; 1.1988 + } else { 1.1989 + // Reached the innermost left var -> need to capture 1.1990 + // its SRID 1.1991 + alias = getLabelAlias(((GeneralDBLabelColumn) tmp) 1.1992 + .getRdbmsVar()); 1.1993 } 1.1994 break; 1.1995 } 1.1996 @@ -1338,640 +1348,606 @@ 1.1997 1.1998 filter.openBracket(); 1.1999 1.2000 - if(expr.getLeftArg() instanceof GeneralDBStringValue) 1.2001 - { 1.2002 - GeneralDBStringValue arg = (GeneralDBStringValue) expr.getLeftArg(); 1.2003 + if (expr.getLeftArg() instanceof GeneralDBStringValue) { 1.2004 + GeneralDBStringValue arg = (GeneralDBStringValue) expr 1.2005 + .getLeftArg(); 1.2006 String raw = arg.getValue(); 1.2007 - filter.append(" "+raw+" "); 1.2008 - } 1.2009 - else if(expr.getLeftArg() instanceof GeneralDBNumberValue) 1.2010 - { 1.2011 - append(((GeneralDBNumberValue)expr.getLeftArg()), filter); 1.2012 - } 1.2013 - else if(expr.getLeftArg() instanceof GeneralDBDateTimeColumn) 1.2014 - { 1.2015 - append(((GeneralDBDateTimeColumn)expr.getLeftArg()),filter); 1.2016 - } 1.2017 - else 1.2018 - { 1.2019 - // Den prepei na ftasei edw 1.2020 - } 1.2021 - 1.2022 - switch(func) 1.2023 - { 1.2024 - case Difference: filter.append(" - "); break; 1.2025 - } 1.2026 - 1.2027 - if(expr.getRightArg() instanceof GeneralDBStringValue) 1.2028 - { 1.2029 - GeneralDBStringValue arg = (GeneralDBStringValue) expr.getRightArg(); 1.2030 - String raw = arg.getValue(); 1.2031 - filter.append(" "+raw+" "); 1.2032 - } 1.2033 - else if(expr.getRightArg() instanceof GeneralDBNumberValue) 1.2034 - { 1.2035 - append(((GeneralDBNumberValue)expr.getRightArg()), filter); 1.2036 - } 1.2037 - else if(expr.getRightArg() instanceof GeneralDBDateTimeColumn) 1.2038 - { 1.2039 - append(((GeneralDBDateTimeColumn)expr.getRightArg()),filter); 1.2040 - } 1.2041 - else 1.2042 - { 1.2043 + filter.append(" " + raw + " "); 1.2044 + } else if (expr.getLeftArg() instanceof GeneralDBNumberValue) { 1.2045 + append(((GeneralDBNumberValue) expr.getLeftArg()), filter); 1.2046 + } else if (expr.getLeftArg() instanceof GeneralDBDateTimeColumn) { 1.2047 + append(((GeneralDBDateTimeColumn) expr.getLeftArg()), filter); 1.2048 + } else { 1.2049 // Den prepei na ftasei edw 1.2050 } 1.2051 1.2052 + switch (func) { 1.2053 + case Difference: 1.2054 + filter.append(" - "); 1.2055 + break; 1.2056 + } 1.2057 + 1.2058 + if (expr.getRightArg() instanceof GeneralDBStringValue) { 1.2059 + GeneralDBStringValue arg = (GeneralDBStringValue) expr 1.2060 + .getRightArg(); 1.2061 + String raw = arg.getValue(); 1.2062 + filter.append(" " + raw + " "); 1.2063 + } else if (expr.getRightArg() instanceof GeneralDBNumberValue) { 1.2064 + append(((GeneralDBNumberValue) expr.getRightArg()), filter); 1.2065 + } else if (expr.getRightArg() instanceof GeneralDBDateTimeColumn) { 1.2066 + append(((GeneralDBDateTimeColumn) expr.getRightArg()), filter); 1.2067 + } else { 1.2068 + // Den prepei na ftasei edw 1.2069 + } 1.2070 1.2071 filter.closeBracket(); 1.2072 } 1.2073 filter.closeBracket(); 1.2074 - } 1.2075 + } 1.2076 + 1.2077 /***/ 1.2078 1.2079 - //Used in all the generaldb stsparql boolean spatial functions of the form ST_Function(?GEO1,?GEO2) 1.2080 - //EXCEPT ST_Transform!!! 1.2081 - protected void appendGeneralDBSpatialFunctionBinary(BinaryGeneralDBOperator expr, GeneralDBSqlExprBuilder filter, SpatialFunctionsPostGIS func) 1.2082 - throws UnsupportedRdbmsOperatorException 1.2083 - { 1.2084 - //In the case where no variable is present in the expression! e.g ConvexHull("POLYGON((.....))") 1.2085 + // Used in all the generaldb stsparql boolean spatial functions of the form 1.2086 + // ST_Function(?GEO1,?GEO2) 1.2087 + // EXCEPT ST_Transform!!! 1.2088 + protected void appendGeneralDBSpatialFunctionBinary( 1.2089 + BinaryGeneralDBOperator expr, GeneralDBSqlExprBuilder filter, 1.2090 + SpatialFunctionsPostGIS func) 1.2091 + throws UnsupportedRdbmsOperatorException { 1.2092 + // In the case where no variable is present in the expression! e.g 1.2093 + // ConvexHull("POLYGON((.....))") 1.2094 boolean sridNeeded = true; 1.2095 - //XXX Incorporating SRID 1.2096 + // XXX Incorporating SRID 1.2097 String sridExpr = null; 1.2098 1.2099 filter.openBracket(); 1.2100 1.2101 - boolean check1 = expr.getLeftArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2102 - boolean check2 = expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2103 + boolean check1 = expr.getLeftArg().getClass().getCanonicalName() 1.2104 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2105 + boolean check2 = expr.getRightArg().getClass().getCanonicalName() 1.2106 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2107 1.2108 - if(check1) 1.2109 - { 1.2110 - this.append((GeneralDBSqlNull)expr.getLeftArg(), filter); 1.2111 + if (check1) { 1.2112 + this.append((GeneralDBSqlNull) expr.getLeftArg(), filter); 1.2113 1.2114 - } 1.2115 - else if(check2) 1.2116 - { 1.2117 - this.append((GeneralDBSqlNull)expr.getRightArg(), filter); 1.2118 - } 1.2119 - else 1.2120 - { 1.2121 + } else if (check2) { 1.2122 + this.append((GeneralDBSqlNull) expr.getRightArg(), filter); 1.2123 + } else { 1.2124 1.2125 GeneralDBSqlExpr tmp = expr; 1.2126 - if(tmp instanceof GeneralDBSqlSpatialConstructBinary && tmp.getParentNode() == null) 1.2127 - { 1.2128 - while(true) 1.2129 - { 1.2130 + if (tmp instanceof GeneralDBSqlSpatialConstructBinary 1.2131 + && tmp.getParentNode() == null) { 1.2132 + while (true) { 1.2133 GeneralDBSqlExpr child; 1.2134 1.2135 - if(tmp instanceof BinaryGeneralDBOperator) 1.2136 - { 1.2137 + if (tmp instanceof BinaryGeneralDBOperator) { 1.2138 child = ((BinaryGeneralDBOperator) tmp).getLeftArg(); 1.2139 - } 1.2140 - else //(tmp instanceof UnaryGeneralDBOperator) 1.2141 + } else // (tmp instanceof UnaryGeneralDBOperator) 1.2142 { 1.2143 child = ((UnaryGeneralDBOperator) tmp).getArg(); 1.2144 } 1.2145 1.2146 tmp = child; 1.2147 - if(tmp instanceof GeneralDBLabelColumn) 1.2148 - { 1.2149 - //Reached the innermost left var -> need to capture its SRID 1.2150 + if (tmp instanceof GeneralDBLabelColumn) { 1.2151 + // Reached the innermost left var -> need to capture its 1.2152 + // SRID 1.2153 String alias; 1.2154 - if (((GeneralDBLabelColumn) tmp).getRdbmsVar().isResource()) { 1.2155 - //Predicates used in triple patterns non-existent in db 1.2156 - alias="NULL"; 1.2157 - } 1.2158 - else 1.2159 - { 1.2160 - //Reached the innermost left var -> need to capture its SRID 1.2161 - alias = getLabelAlias(((GeneralDBLabelColumn) tmp).getRdbmsVar()); 1.2162 - alias=alias+".srid"; 1.2163 + if (((GeneralDBLabelColumn) tmp).getRdbmsVar() 1.2164 + .isResource()) { 1.2165 + // Predicates used in triple patterns non-existent 1.2166 + // in db 1.2167 + alias = "NULL"; 1.2168 + } else { 1.2169 + // Reached the innermost left var -> need to capture 1.2170 + // its SRID 1.2171 + alias = getLabelAlias(((GeneralDBLabelColumn) tmp) 1.2172 + .getRdbmsVar()); 1.2173 + alias = alias + ".srid"; 1.2174 } 1.2175 sridExpr = alias; 1.2176 break; 1.2177 - } 1.2178 - else if (tmp instanceof GeneralDBStringValue) //Constant!! 1.2179 + } else if (tmp instanceof GeneralDBStringValue) // Constant!! 1.2180 { 1.2181 - sridNeeded = false; 1.2182 + sridNeeded = false; 1.2183 break; 1.2184 } 1.2185 1.2186 } 1.2187 - if(sridNeeded) 1.2188 - { 1.2189 + if (sridNeeded) { 1.2190 filter.appendFunction(ST_TRANSFORM); 1.2191 filter.openBracket(); 1.2192 } 1.2193 } 1.2194 - ///// 1.2195 + // /// 1.2196 1.2197 + switch (func) { 1.2198 + // XXX Careful: ST_Transform support MISSING!!! 1.2199 + case ST_Difference: 1.2200 + filter.appendFunction("ST_Difference"); 1.2201 + break; 1.2202 + case ST_Intersection: 1.2203 + filter.appendFunction("ST_Intersection"); 1.2204 + break; 1.2205 + case ST_Union: 1.2206 + filter.appendFunction("ST_Union"); 1.2207 + break; 1.2208 + case ST_SymDifference: 1.2209 + filter.appendFunction("ST_SymDifference"); 1.2210 + break; 1.2211 + case ST_Buffer: 1.2212 + filter.appendFunction("ST_Buffer"); 1.2213 + break; 1.2214 + case ST_Distance: 1.2215 + filter.appendFunction("ST_Distance"); 1.2216 + break; 1.2217 1.2218 + case ST_Equals: 1.2219 + case SF_Equals: 1.2220 + filter.appendFunction("ST_Equals"); 1.2221 + break; 1.2222 + case ST_Disjoint: 1.2223 + case SF_Disjoint: 1.2224 + filter.appendFunction("ST_Disjoint"); 1.2225 + break; 1.2226 + case ST_Intersects: 1.2227 + case SF_Intersects: 1.2228 + filter.appendFunction("ST_Intersects"); 1.2229 + break; 1.2230 + case ST_Touches: 1.2231 + case SF_Touches: 1.2232 + filter.appendFunction("ST_Touches"); 1.2233 + break; 1.2234 + case ST_Crosses: 1.2235 + case SF_Crosses: 1.2236 + filter.appendFunction("ST_Crosses"); 1.2237 + break; 1.2238 + case ST_Within: 1.2239 + case SF_Within: 1.2240 + filter.appendFunction("ST_Within"); 1.2241 + break; 1.2242 + case ST_Contains: 1.2243 + case SF_Contains: 1.2244 + filter.appendFunction("ST_Contains"); 1.2245 + break; 1.2246 + case ST_Overlaps: 1.2247 + case SF_Overlaps: 1.2248 + filter.appendFunction("ST_Overlaps"); 1.2249 + break; 1.2250 1.2251 - switch(func) 1.2252 - { 1.2253 - //XXX Careful: ST_Transform support MISSING!!! 1.2254 - case ST_Difference: filter.appendFunction("ST_Difference"); break; 1.2255 - case ST_Intersection: filter.appendFunction("ST_Intersection"); break; 1.2256 - case ST_Union: filter.appendFunction("ST_Union"); break; 1.2257 - case ST_SymDifference: filter.appendFunction("ST_SymDifference"); break; 1.2258 - case ST_Buffer: filter.appendFunction("ST_Buffer"); break; 1.2259 - case ST_Distance: filter.appendFunction("ST_Distance"); break; 1.2260 - 1.2261 - case ST_Equals: filter.appendFunction("ST_Equals"); break; 1.2262 - case ST_Disjoint: filter.appendFunction("ST_Disjoint"); break; 1.2263 - case ST_Intersects: filter.appendFunction("ST_Intersects"); break; 1.2264 - case ST_Touches: filter.appendFunction("ST_Touches"); break; 1.2265 - case ST_Crosses: filter.appendFunction("ST_Crosses"); break; 1.2266 - case ST_Within: filter.appendFunction("ST_Within"); break; 1.2267 - case ST_Contains: filter.appendFunction("ST_Contains"); break; 1.2268 - case ST_Overlaps: filter.appendFunction("ST_Overlaps"); break; 1.2269 - 1.2270 } 1.2271 - 1.2272 + 1.2273 filter.openBracket(); 1.2274 - if(expr.getLeftArg() instanceof GeneralDBStringValue) 1.2275 - { 1.2276 - appendWKT(expr.getLeftArg(),filter); 1.2277 - } 1.2278 - else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.2279 - { 1.2280 + if (expr.getLeftArg() instanceof GeneralDBStringValue) { 1.2281 + appendWKT(expr.getLeftArg(), filter); 1.2282 + } else if (expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructBinary) { 1.2283 appendConstructFunction(expr.getLeftArg(), filter); 1.2284 - } 1.2285 - else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.2286 - { 1.2287 + } else if (expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructUnary) { 1.2288 appendConstructFunction(expr.getLeftArg(), filter); 1.2289 - } 1.2290 - else if(expr.getLeftArg() instanceof GeneralDBSqlCase) 1.2291 - { 1.2292 - GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn)((GeneralDBSqlCase)expr.getLeftArg()).getEntries().get(0).getResult(); 1.2293 - appendMBB(onlyLabel,filter); 1.2294 - } 1.2295 - else 1.2296 - { 1.2297 - appendMBB((GeneralDBLabelColumn)(expr.getLeftArg()),filter); 1.2298 + } else if (expr.getLeftArg() instanceof GeneralDBSqlCase) { 1.2299 + GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn) ((GeneralDBSqlCase) expr 1.2300 + .getLeftArg()).getEntries().get(0).getResult(); 1.2301 + appendMBB(onlyLabel, filter); 1.2302 + } else { 1.2303 + appendMBB((GeneralDBLabelColumn) (expr.getLeftArg()), filter); 1.2304 } 1.2305 filter.appendComma(); 1.2306 1.2307 - 1.2308 - if(expr.getRightArg() instanceof GeneralDBStringValue) 1.2309 + if (expr.getRightArg() instanceof GeneralDBStringValue) { 1.2310 + appendWKT(expr.getRightArg(), filter); 1.2311 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialConstructUnary) { 1.2312 + appendConstructFunction(expr.getRightArg(), filter); 1.2313 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialConstructBinary) { 1.2314 + appendConstructFunction(expr.getRightArg(), filter); 1.2315 + } else if (expr.getRightArg() instanceof GeneralDBSqlCase) { 1.2316 + GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn) ((GeneralDBSqlCase) expr 1.2317 + .getRightArg()).getEntries().get(0).getResult(); 1.2318 + appendMBB(onlyLabel, filter); 1.2319 + } else if (expr.getRightArg() instanceof GeneralDBDoubleValue) // case 1.2320 + // met 1.2321 + // in 1.2322 + // buffer! 1.2323 { 1.2324 - appendWKT(expr.getRightArg(),filter); 1.2325 - } 1.2326 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.2327 + append(((GeneralDBDoubleValue) expr.getRightArg()), filter); 1.2328 + } else if (expr.getRightArg() instanceof GeneralDBNumericColumn) // case 1.2329 + // met 1.2330 + // in 1.2331 + // buffer! 1.2332 { 1.2333 - appendConstructFunction(expr.getRightArg(), filter); 1.2334 - } 1.2335 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.2336 - { 1.2337 - appendConstructFunction(expr.getRightArg(), filter); 1.2338 - } 1.2339 - else if(expr.getRightArg() instanceof GeneralDBSqlCase) 1.2340 - { 1.2341 - GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn)((GeneralDBSqlCase)expr.getRightArg()).getEntries().get(0).getResult(); 1.2342 - appendMBB(onlyLabel,filter); 1.2343 - } 1.2344 - else if(expr.getRightArg() instanceof GeneralDBDoubleValue) //case met in buffer! 1.2345 - { 1.2346 - append(((GeneralDBDoubleValue)expr.getRightArg()), filter); 1.2347 - } 1.2348 - else if(expr.getRightArg() instanceof GeneralDBNumericColumn) //case met in buffer! 1.2349 - { 1.2350 - append(((GeneralDBNumericColumn)expr.getRightArg()), filter); 1.2351 - } 1.2352 - else if(expr.getRightArg() instanceof GeneralDBURIColumn) //case met in transform! 1.2353 + append(((GeneralDBNumericColumn) expr.getRightArg()), filter); 1.2354 + } else if (expr.getRightArg() instanceof GeneralDBURIColumn) // case 1.2355 + // met 1.2356 + // in 1.2357 + // transform! 1.2358 { 1.2359 filter.keepSRID_part1(); 1.2360 - append(((GeneralDBURIColumn)expr.getRightArg()), filter); 1.2361 + append(((GeneralDBURIColumn) expr.getRightArg()), filter); 1.2362 filter.keepSRID_part2(); 1.2363 - append(((GeneralDBURIColumn)expr.getRightArg()), filter); 1.2364 + append(((GeneralDBURIColumn) expr.getRightArg()), filter); 1.2365 filter.keepSRID_part3(); 1.2366 } 1.2367 - //case met in buffer when in select -> buffer(?spatial,?thematic) 1.2368 - else if(expr.getRightArg() instanceof GeneralDBLabelColumn && !((GeneralDBLabelColumn)expr.getRightArg()).isSpatial()) 1.2369 - { 1.2370 - append(((GeneralDBLabelColumn)expr.getRightArg()),filter); 1.2371 + // case met in buffer when in select -> buffer(?spatial,?thematic) 1.2372 + else if (expr.getRightArg() instanceof GeneralDBLabelColumn 1.2373 + && !((GeneralDBLabelColumn) expr.getRightArg()).isSpatial()) { 1.2374 + append(((GeneralDBLabelColumn) expr.getRightArg()), filter); 1.2375 appendCastToDouble(filter); 1.2376 - } 1.2377 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialMetricBinary) 1.2378 - { 1.2379 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialMetricBinary) { 1.2380 appendMetricFunction(expr.getRightArg(), filter); 1.2381 - } 1.2382 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialMetricUnary) 1.2383 - { 1.2384 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialMetricUnary) { 1.2385 appendMetricFunction(expr.getRightArg(), filter); 1.2386 - } 1.2387 - else 1.2388 - { 1.2389 - appendMBB((GeneralDBLabelColumn)(expr.getRightArg()),filter); 1.2390 + } else { 1.2391 + appendMBB((GeneralDBLabelColumn) (expr.getRightArg()), filter); 1.2392 } 1.2393 1.2394 - 1.2395 filter.closeBracket(); 1.2396 - //SRID Support 1.2397 - if(expr instanceof GeneralDBSqlSpatialConstructBinary && expr.getParentNode() == null) 1.2398 - { 1.2399 + // SRID Support 1.2400 + if (expr instanceof GeneralDBSqlSpatialConstructBinary 1.2401 + && expr.getParentNode() == null) { 1.2402 filter.appendComma(); 1.2403 - //filter.append(((GeneralDBSqlSpatialConstructBinary)expr).getSrid()); 1.2404 + // filter.append(((GeneralDBSqlSpatialConstructBinary)expr).getSrid()); 1.2405 filter.append(sridExpr); 1.2406 filter.closeBracket(); 1.2407 } 1.2408 - /// 1.2409 + // / 1.2410 } 1.2411 filter.closeBracket(); 1.2412 - //Used to explicitly include SRID 1.2413 - if(expr instanceof GeneralDBSqlSpatialConstructBinary && expr.getParentNode() == null) 1.2414 - { 1.2415 + // Used to explicitly include SRID 1.2416 + if (expr instanceof GeneralDBSqlSpatialConstructBinary 1.2417 + && expr.getParentNode() == null) { 1.2418 filter.appendComma(); 1.2419 filter.append(sridExpr); 1.2420 } 1.2421 1.2422 - } 1.2423 + } 1.2424 1.2425 - //Used in all the generaldb boolean spatial functions of the form ST_Function(?GEO1) 1.2426 - protected void appendGeneralDBSpatialFunctionUnary(UnaryGeneralDBOperator expr, GeneralDBSqlExprBuilder filter, SpatialFunctionsPostGIS func) 1.2427 - throws UnsupportedRdbmsOperatorException 1.2428 - { 1.2429 - //In the case where no variable is present in the expression! e.g ConvexHull("POLYGON((.....))") 1.2430 + // Used in all the generaldb boolean spatial functions of the form 1.2431 + // ST_Function(?GEO1) 1.2432 + protected void appendGeneralDBSpatialFunctionUnary( 1.2433 + UnaryGeneralDBOperator expr, GeneralDBSqlExprBuilder filter, 1.2434 + SpatialFunctionsPostGIS func) 1.2435 + throws UnsupportedRdbmsOperatorException { 1.2436 + // In the case where no variable is present in the expression! e.g 1.2437 + // ConvexHull("POLYGON((.....))") 1.2438 boolean sridNeeded = true; 1.2439 String sridExpr = null; 1.2440 1.2441 filter.openBracket(); 1.2442 1.2443 - boolean check1 = expr.getArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2444 + boolean check1 = expr.getArg().getClass().getCanonicalName() 1.2445 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2446 boolean check2 = false; 1.2447 - if(expr.getArg() instanceof GeneralDBLabelColumn) 1.2448 - { 1.2449 - if(((GeneralDBLabelColumn) expr.getArg()).getRdbmsVar().isResource()) 1.2450 - { 1.2451 + if (expr.getArg() instanceof GeneralDBLabelColumn) { 1.2452 + if (((GeneralDBLabelColumn) expr.getArg()).getRdbmsVar() 1.2453 + .isResource()) { 1.2454 check2 = true; 1.2455 } 1.2456 } 1.2457 - if(check1) 1.2458 - { 1.2459 - this.append((GeneralDBSqlNull)expr.getArg(), filter); 1.2460 + if (check1) { 1.2461 + this.append((GeneralDBSqlNull) expr.getArg(), filter); 1.2462 1.2463 - } 1.2464 - else if (check2) 1.2465 - { 1.2466 - appendMBB((GeneralDBLabelColumn)(expr.getArg()),filter); 1.2467 - } 1.2468 - else 1.2469 - { 1.2470 + } else if (check2) { 1.2471 + appendMBB((GeneralDBLabelColumn) (expr.getArg()), filter); 1.2472 + } else { 1.2473 1.2474 GeneralDBSqlExpr tmp = expr; 1.2475 1.2476 - 1.2477 - if(tmp instanceof GeneralDBSqlSpatialConstructUnary && tmp.getParentNode() == null) 1.2478 - { 1.2479 - while(true) 1.2480 - { 1.2481 + if (tmp instanceof GeneralDBSqlSpatialConstructUnary 1.2482 + && tmp.getParentNode() == null) { 1.2483 + while (true) { 1.2484 GeneralDBSqlExpr child = null; 1.2485 1.2486 - if(tmp instanceof BinaryGeneralDBOperator) 1.2487 - { 1.2488 + if (tmp instanceof BinaryGeneralDBOperator) { 1.2489 child = ((BinaryGeneralDBOperator) tmp).getLeftArg(); 1.2490 - } 1.2491 - else if(tmp instanceof UnaryGeneralDBOperator) 1.2492 - { 1.2493 + } else if (tmp instanceof UnaryGeneralDBOperator) { 1.2494 child = ((UnaryGeneralDBOperator) tmp).getArg(); 1.2495 - } 1.2496 - else if(tmp instanceof GeneralDBStringValue) 1.2497 - { 1.2498 - sridNeeded = false; 1.2499 + } else if (tmp instanceof GeneralDBStringValue) { 1.2500 + sridNeeded = false; 1.2501 break; 1.2502 } 1.2503 1.2504 tmp = child; 1.2505 - if(tmp instanceof GeneralDBLabelColumn) 1.2506 - { 1.2507 - //Reached the innermost left var -> need to capture its SRID 1.2508 + if (tmp instanceof GeneralDBLabelColumn) { 1.2509 + // Reached the innermost left var -> need to capture its 1.2510 + // SRID 1.2511 String alias; 1.2512 - if (((GeneralDBLabelColumn) tmp).getRdbmsVar().isResource()) { 1.2513 - //Predicates used in triple patterns non-existent in db 1.2514 - alias="NULL"; 1.2515 - } 1.2516 - else 1.2517 - { 1.2518 - //Reached the innermost left var -> need to capture its SRID 1.2519 - alias = getLabelAlias(((GeneralDBLabelColumn) tmp).getRdbmsVar()); 1.2520 - alias=alias+".srid"; 1.2521 + if (((GeneralDBLabelColumn) tmp).getRdbmsVar() 1.2522 + .isResource()) { 1.2523 + // Predicates used in triple patterns non-existent 1.2524 + // in db 1.2525 + alias = "NULL"; 1.2526 + } else { 1.2527 + // Reached the innermost left var -> need to capture 1.2528 + // its SRID 1.2529 + alias = getLabelAlias(((GeneralDBLabelColumn) tmp) 1.2530 + .getRdbmsVar()); 1.2531 + alias = alias + ".srid"; 1.2532 } 1.2533 sridExpr = alias; 1.2534 break; 1.2535 - } 1.2536 - else if (tmp instanceof GeneralDBStringValue) //Constant!! 1.2537 + } else if (tmp instanceof GeneralDBStringValue) // Constant!! 1.2538 { 1.2539 - sridNeeded = false; 1.2540 + sridNeeded = false; 1.2541 break; 1.2542 } 1.2543 1.2544 } 1.2545 - if(sridNeeded) 1.2546 - { 1.2547 + if (sridNeeded) { 1.2548 filter.appendFunction(ST_TRANSFORM); 1.2549 filter.openBracket(); 1.2550 } 1.2551 } 1.2552 - ///// 1.2553 + // /// 1.2554 1.2555 - switch(func) 1.2556 - { 1.2557 - case ST_Envelope: filter.appendFunction("ST_Envelope"); break; 1.2558 - case ST_ConvexHull: filter.appendFunction("ST_ConvexHull"); break; 1.2559 - case ST_Boundary: filter.appendFunction("ST_Boundary"); break; 1.2560 - case ST_Area: filter.appendFunction("ST_Area"); break; 1.2561 - case ST_Dimension: filter.appendFunction("ST_Dimension"); break; 1.2562 - case ST_GeometryType: filter.appendFunction("ST_GeometryType"); break; 1.2563 - case ST_AsText: filter.appendFunction("ST_AsText"); break; 1.2564 - case ST_AsGML: filter.appendFunction("ST_AsGML"); break; 1.2565 - case ST_SRID: filter.appendFunction("ST_SRID"); break; 1.2566 - case ST_IsEmpty: filter.appendFunction("ST_IsEmpty"); break; 1.2567 - case ST_IsSimple: filter.appendFunction("ST_IsSimple"); break; 1.2568 + switch (func) { 1.2569 + case ST_Envelope: 1.2570 + filter.appendFunction("ST_Envelope"); 1.2571 + break; 1.2572 + case ST_ConvexHull: 1.2573 + filter.appendFunction("ST_ConvexHull"); 1.2574 + break; 1.2575 + case ST_Boundary: 1.2576 + filter.appendFunction("ST_Boundary"); 1.2577 + break; 1.2578 + case ST_Area: 1.2579 + filter.appendFunction("ST_Area"); 1.2580 + break; 1.2581 + case ST_Dimension: 1.2582 + filter.appendFunction("ST_Dimension"); 1.2583 + break; 1.2584 + case ST_GeometryType: 1.2585 + filter.appendFunction("ST_GeometryType"); 1.2586 + break; 1.2587 + case ST_AsText: 1.2588 + filter.appendFunction("ST_AsText"); 1.2589 + break; 1.2590 + case ST_AsGML: 1.2591 + filter.appendFunction("ST_AsGML"); 1.2592 + break; 1.2593 + case ST_SRID: 1.2594 + filter.appendFunction("ST_SRID"); 1.2595 + break; 1.2596 + case ST_IsEmpty: 1.2597 + filter.appendFunction("ST_IsEmpty"); 1.2598 + break; 1.2599 + case ST_IsSimple: 1.2600 + filter.appendFunction("ST_IsSimple"); 1.2601 + break; 1.2602 } 1.2603 filter.openBracket(); 1.2604 - if(expr.getArg() instanceof GeneralDBStringValue) 1.2605 - { 1.2606 - appendWKT(expr.getArg(),filter); 1.2607 - } 1.2608 - else if(expr.getArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.2609 - { 1.2610 + if (expr.getArg() instanceof GeneralDBStringValue) { 1.2611 + appendWKT(expr.getArg(), filter); 1.2612 + } else if (expr.getArg() instanceof GeneralDBSqlSpatialConstructBinary) { 1.2613 appendConstructFunction(expr.getArg(), filter); 1.2614 - } 1.2615 - else if(expr.getArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.2616 - { 1.2617 + } else if (expr.getArg() instanceof GeneralDBSqlSpatialConstructUnary) { 1.2618 appendConstructFunction(expr.getArg(), filter); 1.2619 - } 1.2620 - else if(expr.getArg() instanceof GeneralDBSqlCase) 1.2621 - { 1.2622 - GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn)((GeneralDBSqlCase)expr.getArg()).getEntries().get(0).getResult(); 1.2623 - appendMBB(onlyLabel,filter); 1.2624 - } 1.2625 - else 1.2626 - { 1.2627 - appendMBB((GeneralDBLabelColumn)(expr.getArg()),filter); 1.2628 + } else if (expr.getArg() instanceof GeneralDBSqlCase) { 1.2629 + GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn) ((GeneralDBSqlCase) expr 1.2630 + .getArg()).getEntries().get(0).getResult(); 1.2631 + appendMBB(onlyLabel, filter); 1.2632 + } else { 1.2633 + appendMBB((GeneralDBLabelColumn) (expr.getArg()), filter); 1.2634 } 1.2635 1.2636 filter.closeBracket(); 1.2637 - // //SRID Support 1.2638 - if(sridNeeded) 1.2639 - { 1.2640 - if(expr instanceof GeneralDBSqlSpatialConstructUnary && expr.getParentNode() == null) 1.2641 - { 1.2642 + // //SRID Support 1.2643 + if (sridNeeded) { 1.2644 + if (expr instanceof GeneralDBSqlSpatialConstructUnary 1.2645 + && expr.getParentNode() == null) { 1.2646 filter.appendComma(); 1.2647 - // filter.append(((GeneralDBSqlSpatialConstructUnary)expr).getSrid()); 1.2648 + // filter.append(((GeneralDBSqlSpatialConstructUnary)expr).getSrid()); 1.2649 filter.append(sridExpr); 1.2650 filter.closeBracket(); 1.2651 } 1.2652 } 1.2653 - /// 1.2654 + // / 1.2655 } 1.2656 1.2657 filter.closeBracket(); 1.2658 - //Used to explicitly include SRID 1.2659 - if(expr instanceof GeneralDBSqlSpatialConstructUnary && expr.getParentNode() == null) 1.2660 - { 1.2661 + // Used to explicitly include SRID 1.2662 + if (expr instanceof GeneralDBSqlSpatialConstructUnary 1.2663 + && expr.getParentNode() == null) { 1.2664 filter.appendComma(); 1.2665 filter.append(sridExpr); 1.2666 } 1.2667 + } 1.2668 + 1.2669 + // Used in all the generaldb boolean spatial functions of the form 1.2670 + // ST_Function(?GEO1,?GEO2) 1.2671 + protected void appendGeneralDBSpatialFunctionTriple( 1.2672 + TripleGeneralDBOperator expr, GeneralDBSqlExprBuilder filter, 1.2673 + SpatialFunctionsPostGIS func) 1.2674 + throws UnsupportedRdbmsOperatorException { 1.2675 + filter.openBracket(); 1.2676 + 1.2677 + boolean check1a = expr.getLeftArg().getClass().getCanonicalName() 1.2678 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2679 + boolean check2a = expr.getRightArg().getClass().getCanonicalName() 1.2680 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2681 + boolean check3 = expr.getRightArg().getClass().getCanonicalName() 1.2682 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2683 + 1.2684 + if (check1a) { 1.2685 + this.append((GeneralDBSqlNull) expr.getLeftArg(), filter); 1.2686 + 1.2687 + } else if (check2a) { 1.2688 + this.append((GeneralDBSqlNull) expr.getRightArg(), filter); 1.2689 + } else if (check3) { 1.2690 + this.append((GeneralDBSqlNull) expr.getThirdArg(), filter); 1.2691 + } else { 1.2692 + switch (func) { 1.2693 + case ST_Relate: 1.2694 + filter.appendFunction("ST_Relate"); 1.2695 + break; 1.2696 + } 1.2697 + filter.openBracket(); 1.2698 + if (expr.getLeftArg() instanceof GeneralDBStringValue) { 1.2699 + appendWKT(expr.getLeftArg(), filter); 1.2700 + } else if (expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructBinary) { 1.2701 + appendConstructFunction(expr.getLeftArg(), filter); 1.2702 + } else if (expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructUnary) { 1.2703 + appendConstructFunction(expr.getLeftArg(), filter); 1.2704 + } else if (expr.getLeftArg() instanceof GeneralDBSqlCase) { 1.2705 + GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn) ((GeneralDBSqlCase) expr 1.2706 + .getLeftArg()).getEntries().get(0).getResult(); 1.2707 + appendMBB(onlyLabel, filter); 1.2708 + } else { 1.2709 + appendMBB((GeneralDBLabelColumn) (expr.getLeftArg()), filter); 1.2710 + } 1.2711 + filter.appendComma(); 1.2712 + // boolean check2 = 1.2713 + // expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2714 + // if(check2) 1.2715 + // { 1.2716 + // this.append((GeneralDBSqlNull)expr.getRightArg(), filter); 1.2717 + // } 1.2718 + // else 1.2719 + // { 1.2720 + if (expr.getRightArg() instanceof GeneralDBStringValue) { 1.2721 + appendWKT(expr.getRightArg(), filter); 1.2722 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialConstructUnary) { 1.2723 + appendConstructFunction(expr.getRightArg(), filter); 1.2724 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialConstructBinary) { 1.2725 + appendConstructFunction(expr.getRightArg(), filter); 1.2726 + } else if (expr.getRightArg() instanceof GeneralDBSqlCase) { 1.2727 + GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn) ((GeneralDBSqlCase) expr 1.2728 + .getRightArg()).getEntries().get(0).getResult(); 1.2729 + appendMBB(onlyLabel, filter); 1.2730 + } else if (expr.getRightArg() instanceof GeneralDBDoubleValue) // case 1.2731 + // met 1.2732 + // in 1.2733 + // buffer! 1.2734 + { 1.2735 + append(((GeneralDBDoubleValue) expr.getRightArg()), filter); 1.2736 + } else if (expr.getRightArg() instanceof GeneralDBNumericColumn) // case 1.2737 + // met 1.2738 + // in 1.2739 + // buffer! 1.2740 + { 1.2741 + append(((GeneralDBNumericColumn) expr.getRightArg()), filter); 1.2742 + } 1.2743 + // case met in buffer when in select -> buffer(?spatial,?thematic) 1.2744 + else if (expr.getRightArg() instanceof GeneralDBLabelColumn 1.2745 + && !((GeneralDBLabelColumn) expr.getRightArg()).isSpatial()) { 1.2746 + append(((GeneralDBLabelColumn) expr.getRightArg()), filter); 1.2747 + appendCastToDouble(filter); 1.2748 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialMetricBinary) { 1.2749 + appendMetricFunction(expr.getRightArg(), filter); 1.2750 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialMetricUnary) { 1.2751 + appendMetricFunction(expr.getRightArg(), filter); 1.2752 + } else { 1.2753 + appendMBB((GeneralDBLabelColumn) (expr.getRightArg()), filter); 1.2754 } 1.2755 1.2756 - //Used in all the generaldb boolean spatial functions of the form ST_Function(?GEO1,?GEO2) 1.2757 - protected void appendGeneralDBSpatialFunctionTriple(TripleGeneralDBOperator expr, GeneralDBSqlExprBuilder filter, SpatialFunctionsPostGIS func) 1.2758 - throws UnsupportedRdbmsOperatorException 1.2759 + // } 1.2760 + // 3rd arg 1.2761 + filter.appendComma(); 1.2762 + // boolean check3 = 1.2763 + // expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2764 + // if(check3) 1.2765 + // { 1.2766 + // this.append((GeneralDBSqlNull)expr.getThirdArg(), filter); 1.2767 + // } 1.2768 + // else 1.2769 + // { 1.2770 + 1.2771 + if (expr.getThirdArg() instanceof GeneralDBStringValue) { 1.2772 + append(((GeneralDBStringValue) expr.getThirdArg()), filter); 1.2773 + } else if (expr.getThirdArg() instanceof GeneralDBSqlCase) { 1.2774 + append(((GeneralDBSqlCase) expr.getThirdArg()), filter); 1.2775 + } 1.2776 + // case met in buffer when in select -> buffer(?spatial,?thematic) 1.2777 + else if (expr.getThirdArg() instanceof GeneralDBLabelColumn)// && 1.2778 + // !((GeneralDBLabelColumn)expr.getThirdArg()).isSpatial()) 1.2779 { 1.2780 - filter.openBracket(); 1.2781 1.2782 - boolean check1a = expr.getLeftArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2783 - boolean check2a = expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2784 - boolean check3 = expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2785 - 1.2786 - if(check1a) 1.2787 - { 1.2788 - this.append((GeneralDBSqlNull)expr.getLeftArg(), filter); 1.2789 - 1.2790 - } 1.2791 - else if(check2a) 1.2792 - { 1.2793 - this.append((GeneralDBSqlNull)expr.getRightArg(), filter); 1.2794 - } 1.2795 - else if(check3) 1.2796 - { 1.2797 - this.append((GeneralDBSqlNull)expr.getThirdArg(), filter); 1.2798 - } 1.2799 - else 1.2800 - { 1.2801 - switch(func) 1.2802 - { 1.2803 - case ST_Relate: filter.appendFunction("ST_Relate"); break; 1.2804 - } 1.2805 - filter.openBracket(); 1.2806 - if(expr.getLeftArg() instanceof GeneralDBStringValue) 1.2807 - { 1.2808 - appendWKT(expr.getLeftArg(),filter); 1.2809 - } 1.2810 - else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.2811 - { 1.2812 - appendConstructFunction(expr.getLeftArg(), filter); 1.2813 - } 1.2814 - else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.2815 - { 1.2816 - appendConstructFunction(expr.getLeftArg(), filter); 1.2817 - } 1.2818 - else if(expr.getLeftArg() instanceof GeneralDBSqlCase) 1.2819 - { 1.2820 - GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn)((GeneralDBSqlCase)expr.getLeftArg()).getEntries().get(0).getResult(); 1.2821 - appendMBB(onlyLabel,filter); 1.2822 - } 1.2823 - else 1.2824 - { 1.2825 - appendMBB((GeneralDBLabelColumn)(expr.getLeftArg()),filter); 1.2826 - } 1.2827 - filter.appendComma(); 1.2828 - // boolean check2 = expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2829 - // if(check2) 1.2830 - // { 1.2831 - // this.append((GeneralDBSqlNull)expr.getRightArg(), filter); 1.2832 - // } 1.2833 - // else 1.2834 - // { 1.2835 - if(expr.getRightArg() instanceof GeneralDBStringValue) 1.2836 - { 1.2837 - appendWKT(expr.getRightArg(),filter); 1.2838 - } 1.2839 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.2840 - { 1.2841 - appendConstructFunction(expr.getRightArg(), filter); 1.2842 - } 1.2843 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.2844 - { 1.2845 - appendConstructFunction(expr.getRightArg(), filter); 1.2846 - } 1.2847 - else if(expr.getRightArg() instanceof GeneralDBSqlCase) 1.2848 - { 1.2849 - GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn)((GeneralDBSqlCase)expr.getRightArg()).getEntries().get(0).getResult(); 1.2850 - appendMBB(onlyLabel,filter); 1.2851 - } 1.2852 - else if(expr.getRightArg() instanceof GeneralDBDoubleValue) //case met in buffer! 1.2853 - { 1.2854 - append(((GeneralDBDoubleValue)expr.getRightArg()), filter); 1.2855 - } 1.2856 - else if(expr.getRightArg() instanceof GeneralDBNumericColumn) //case met in buffer! 1.2857 - { 1.2858 - append(((GeneralDBNumericColumn)expr.getRightArg()), filter); 1.2859 - } 1.2860 - //case met in buffer when in select -> buffer(?spatial,?thematic) 1.2861 - else if(expr.getRightArg() instanceof GeneralDBLabelColumn && !((GeneralDBLabelColumn)expr.getRightArg()).isSpatial()) 1.2862 - { 1.2863 - append(((GeneralDBLabelColumn)expr.getRightArg()),filter); 1.2864 - appendCastToDouble(filter); 1.2865 - } 1.2866 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialMetricBinary) 1.2867 - { 1.2868 - appendMetricFunction(expr.getRightArg(), filter); 1.2869 - } 1.2870 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialMetricUnary) 1.2871 - { 1.2872 - appendMetricFunction(expr.getRightArg(), filter); 1.2873 - } 1.2874 - else 1.2875 - { 1.2876 - appendMBB((GeneralDBLabelColumn)(expr.getRightArg()),filter); 1.2877 + append(((GeneralDBLabelColumn) expr.getThirdArg()), filter); 1.2878 } 1.2879 1.2880 - // } 1.2881 - //3rd arg 1.2882 - filter.appendComma(); 1.2883 - // boolean check3 = expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2884 - // if(check3) 1.2885 - // { 1.2886 - // this.append((GeneralDBSqlNull)expr.getThirdArg(), filter); 1.2887 - // } 1.2888 - // else 1.2889 - // { 1.2890 - 1.2891 - if(expr.getThirdArg() instanceof GeneralDBStringValue) 1.2892 - { 1.2893 - append(((GeneralDBStringValue)expr.getThirdArg()),filter); 1.2894 - } 1.2895 - else if(expr.getThirdArg() instanceof GeneralDBSqlCase) 1.2896 - { 1.2897 - append(((GeneralDBSqlCase)expr.getThirdArg()),filter); 1.2898 - } 1.2899 - //case met in buffer when in select -> buffer(?spatial,?thematic) 1.2900 - else if(expr.getThirdArg() instanceof GeneralDBLabelColumn )//&& !((GeneralDBLabelColumn)expr.getThirdArg()).isSpatial()) 1.2901 - { 1.2902 - 1.2903 - append(((GeneralDBLabelColumn)expr.getThirdArg()),filter); 1.2904 - } 1.2905 - 1.2906 - 1.2907 - // } 1.2908 + // } 1.2909 filter.closeBracket(); 1.2910 } 1.2911 1.2912 filter.closeBracket(); 1.2913 - } 1.2914 + } 1.2915 1.2916 - 1.2917 - //GeoSPARQL 1.2918 - //XXX 1.2919 - protected void appendRelate(BinaryGeneralDBOperator expr, PostGISSqlExprBuilder filter, char[] intersectionPattern) 1.2920 - throws UnsupportedRdbmsOperatorException 1.2921 - { 1.2922 + // GeoSPARQL 1.2923 + // XXX 1.2924 + protected void appendRelate(BinaryGeneralDBOperator expr, 1.2925 + PostGISSqlExprBuilder filter, char[] intersectionPattern) 1.2926 + throws UnsupportedRdbmsOperatorException { 1.2927 filter.openBracket(); 1.2928 1.2929 - boolean check1 = expr.getLeftArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2930 - boolean check2 = expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2931 + boolean check1 = expr.getLeftArg().getClass().getCanonicalName() 1.2932 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2933 + boolean check2 = expr.getRightArg().getClass().getCanonicalName() 1.2934 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.2935 1.2936 - if(check1) 1.2937 - { 1.2938 - this.append((GeneralDBSqlNull)expr.getLeftArg(), filter); 1.2939 + if (check1) { 1.2940 + this.append((GeneralDBSqlNull) expr.getLeftArg(), filter); 1.2941 1.2942 - } 1.2943 - else if(check2) 1.2944 - { 1.2945 - this.append((GeneralDBSqlNull)expr.getRightArg(), filter); 1.2946 - } 1.2947 - else 1.2948 - { 1.2949 + } else if (check2) { 1.2950 + this.append((GeneralDBSqlNull) expr.getRightArg(), filter); 1.2951 + } else { 1.2952 filter.appendFunction("ST_Relate"); 1.2953 1.2954 - 1.2955 filter.openBracket(); 1.2956 - if(expr.getLeftArg() instanceof GeneralDBStringValue) 1.2957 - { 1.2958 - appendWKT(expr.getLeftArg(),filter); 1.2959 - } 1.2960 - else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.2961 - { 1.2962 + if (expr.getLeftArg() instanceof GeneralDBStringValue) { 1.2963 + appendWKT(expr.getLeftArg(), filter); 1.2964 + } else if (expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructBinary) { 1.2965 appendConstructFunction(expr.getLeftArg(), filter); 1.2966 - } 1.2967 - else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.2968 - { 1.2969 + } else if (expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructUnary) { 1.2970 appendConstructFunction(expr.getLeftArg(), filter); 1.2971 - } 1.2972 - else if(expr.getLeftArg() instanceof GeneralDBSqlCase) 1.2973 - { 1.2974 - GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn)((GeneralDBSqlCase)expr.getLeftArg()).getEntries().get(0).getResult(); 1.2975 - appendMBB(onlyLabel,filter); 1.2976 - } 1.2977 - else 1.2978 - { 1.2979 - appendMBB((GeneralDBLabelColumn)(expr.getLeftArg()),filter); 1.2980 + } else if (expr.getLeftArg() instanceof GeneralDBSqlCase) { 1.2981 + GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn) ((GeneralDBSqlCase) expr 1.2982 + .getLeftArg()).getEntries().get(0).getResult(); 1.2983 + appendMBB(onlyLabel, filter); 1.2984 + } else { 1.2985 + appendMBB((GeneralDBLabelColumn) (expr.getLeftArg()), filter); 1.2986 } 1.2987 filter.appendComma(); 1.2988 1.2989 - if(expr.getRightArg() instanceof GeneralDBStringValue) 1.2990 + if (expr.getRightArg() instanceof GeneralDBStringValue) { 1.2991 + appendWKT(expr.getRightArg(), filter); 1.2992 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialConstructUnary) { 1.2993 + appendConstructFunction(expr.getRightArg(), filter); 1.2994 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialConstructBinary) { 1.2995 + appendConstructFunction(expr.getRightArg(), filter); 1.2996 + } else if (expr.getRightArg() instanceof GeneralDBSqlCase) { 1.2997 + GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn) ((GeneralDBSqlCase) expr 1.2998 + .getRightArg()).getEntries().get(0).getResult(); 1.2999 + appendMBB(onlyLabel, filter); 1.3000 + } else if (expr.getRightArg() instanceof GeneralDBDoubleValue) // case 1.3001 + // met 1.3002 + // in 1.3003 + // buffer! 1.3004 { 1.3005 - appendWKT(expr.getRightArg(),filter); 1.3006 + append(((GeneralDBDoubleValue) expr.getRightArg()), filter); 1.3007 + } else if (expr.getRightArg() instanceof GeneralDBNumericColumn) // case 1.3008 + // met 1.3009 + // in 1.3010 + // buffer! 1.3011 + { 1.3012 + append(((GeneralDBNumericColumn) expr.getRightArg()), filter); 1.3013 } 1.3014 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.3015 - { 1.3016 - appendConstructFunction(expr.getRightArg(), filter); 1.3017 - } 1.3018 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.3019 - { 1.3020 - appendConstructFunction(expr.getRightArg(), filter); 1.3021 - } 1.3022 - else if(expr.getRightArg() instanceof GeneralDBSqlCase) 1.3023 - { 1.3024 - GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn)((GeneralDBSqlCase)expr.getRightArg()).getEntries().get(0).getResult(); 1.3025 - appendMBB(onlyLabel,filter); 1.3026 - } 1.3027 - else if(expr.getRightArg() instanceof GeneralDBDoubleValue) //case met in buffer! 1.3028 - { 1.3029 - append(((GeneralDBDoubleValue)expr.getRightArg()), filter); 1.3030 - } 1.3031 - else if(expr.getRightArg() instanceof GeneralDBNumericColumn) //case met in buffer! 1.3032 - { 1.3033 - append(((GeneralDBNumericColumn)expr.getRightArg()), filter); 1.3034 - } 1.3035 - //case met in buffer when in select -> buffer(?spatial,?thematic) 1.3036 - else if(expr.getRightArg() instanceof GeneralDBLabelColumn && !((GeneralDBLabelColumn)expr.getRightArg()).isSpatial()) 1.3037 - { 1.3038 - append(((GeneralDBLabelColumn)expr.getRightArg()),filter); 1.3039 + // case met in buffer when in select -> buffer(?spatial,?thematic) 1.3040 + else if (expr.getRightArg() instanceof GeneralDBLabelColumn 1.3041 + && !((GeneralDBLabelColumn) expr.getRightArg()).isSpatial()) { 1.3042 + append(((GeneralDBLabelColumn) expr.getRightArg()), filter); 1.3043 appendCastToDouble(filter); 1.3044 - } 1.3045 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialMetricBinary) 1.3046 - { 1.3047 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialMetricBinary) { 1.3048 appendMetricFunction(expr.getRightArg(), filter); 1.3049 - } 1.3050 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialMetricUnary) 1.3051 - { 1.3052 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialMetricUnary) { 1.3053 appendMetricFunction(expr.getRightArg(), filter); 1.3054 - } 1.3055 - else 1.3056 - { 1.3057 - appendMBB((GeneralDBLabelColumn)(expr.getRightArg()),filter); 1.3058 + } else { 1.3059 + appendMBB((GeneralDBLabelColumn) (expr.getRightArg()), filter); 1.3060 } 1.3061 1.3062 - //3rd arg 1.3063 + // 3rd arg 1.3064 filter.appendComma(); 1.3065 1.3066 - //must turn the table of characters I have to a valid sql value! 1.3067 + // must turn the table of characters I have to a valid sql value! 1.3068 filter.append("'"); 1.3069 - for(int i = 0; i< intersectionPattern.length; i++) 1.3070 - { 1.3071 - filter.append(intersectionPattern[i]+""); 1.3072 + for (int i = 0; i < intersectionPattern.length; i++) { 1.3073 + filter.append(intersectionPattern[i] + ""); 1.3074 } 1.3075 filter.append("'"); 1.3076 1.3077 @@ -1980,25 +1956,21 @@ 1.3078 } 1.3079 1.3080 filter.closeBracket(); 1.3081 - } 1.3082 + } 1.3083 1.3084 + protected void appendgeoSPARQLSpatialRelation(BinaryGeneralDBOperator expr, 1.3085 + GeneralDBSqlExprBuilder filter, SpatialFunctionsPostGIS func) 1.3086 + throws UnsupportedRdbmsOperatorException { 1.3087 + filter.openBracket(); 1.3088 + boolean check1 = expr.getLeftArg().getClass().getCanonicalName() 1.3089 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.3090 + if (check1) { 1.3091 + this.append((GeneralDBSqlNull) expr.getLeftArg(), filter); 1.3092 1.3093 - protected void appendgeoSPARQLSpatialRelation(BinaryGeneralDBOperator expr, GeneralDBSqlExprBuilder filter, SpatialFunctionsPostGIS func) 1.3094 - throws UnsupportedRdbmsOperatorException 1.3095 - { 1.3096 - filter.openBracket(); 1.3097 - boolean check1 = expr.getLeftArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.3098 - if(check1) 1.3099 - { 1.3100 - this.append((GeneralDBSqlNull)expr.getLeftArg(), filter); 1.3101 - 1.3102 - } 1.3103 - else 1.3104 - { 1.3105 + } else { 1.3106 char[][] intersectionPattern = null; 1.3107 - switch(func) 1.3108 - { 1.3109 - case SF_Contains: 1.3110 + switch (func) { 1.3111 + case SF_Contains: 1.3112 intersectionPattern = new char[1][9]; 1.3113 intersectionPattern[0][0] = 'T'; 1.3114 intersectionPattern[0][1] = '*'; 1.3115 @@ -2012,11 +1984,15 @@ 1.3116 break; 1.3117 case SF_Crosses: 1.3118 // FIXME BUG 1.3119 - // TODO a crosses b, they have some but not all interior points in common 1.3120 - // (and the dimension of the intersection is less than that of at least one 1.3121 - // of them). Mask selection rules are checked only when dim(a)≠dim(b), 1.3122 + // TODO a crosses b, they have some but not all interior points 1.3123 + // in common 1.3124 + // (and the dimension of the intersection is less than that of 1.3125 + // at least one 1.3126 + // of them). Mask selection rules are checked only when 1.3127 + // dim(a)≠dim(b), 1.3128 // except by point/point inputs, otherwise is false. 1.3129 - // (II=0) for points, (II ∧ IE) when dim(a)<dim(b), (II ∧ EI) when dim(a)>dim(b) 1.3130 + // (II=0) for points, (II ∧ IE) when dim(a)<dim(b), (II ∧ EI) 1.3131 + // when dim(a)>dim(b) 1.3132 intersectionPattern = new char[3][9]; 1.3133 intersectionPattern[0][0] = 'T'; 1.3134 intersectionPattern[0][1] = '*'; 1.3135 @@ -2061,9 +2037,9 @@ 1.3136 intersectionPattern[0][7] = '*'; 1.3137 intersectionPattern[0][8] = '*'; 1.3138 break; 1.3139 - case SF_Equals: 1.3140 + case SF_Equals: 1.3141 case EH_Equals: 1.3142 - case RCC8_Eq: 1.3143 + case RCC8_Eq: 1.3144 intersectionPattern = new char[1][9]; 1.3145 intersectionPattern[0][0] = 'T'; 1.3146 intersectionPattern[0][1] = 'F'; 1.3147 @@ -2078,12 +2054,14 @@ 1.3148 case SF_Overlaps: 1.3149 case EH_Overlap: 1.3150 // FIXME BUG 1.3151 - // TODO a overlaps b, they have some but not all points in common, 1.3152 - // they have the same dimension, and the intersection of the 1.3153 - // interiors of the two geometries has the same dimension as the 1.3154 - // geometries themselves. Mask selection rules are checked 1.3155 + // TODO a overlaps b, they have some but not all points in 1.3156 + // common, 1.3157 + // they have the same dimension, and the intersection of the 1.3158 + // interiors of the two geometries has the same dimension as the 1.3159 + // geometries themselves. Mask selection rules are checked 1.3160 // only when dim(a)=dim(b), otherwise is false: 1.3161 - // (II ∧ IE ∧ EI) for points or surfaces, (II=1 ∧ IE ∧ EI) for lines 1.3162 + // (II ∧ IE ∧ EI) for points or surfaces, (II=1 ∧ IE ∧ EI) for 1.3163 + // lines 1.3164 intersectionPattern = new char[2][9]; 1.3165 intersectionPattern[0][0] = 'T'; 1.3166 intersectionPattern[0][1] = '*'; 1.3167 @@ -2104,7 +2082,7 @@ 1.3168 intersectionPattern[1][7] = '*'; 1.3169 intersectionPattern[1][8] = '*'; 1.3170 break; 1.3171 - case SF_Within: 1.3172 + case SF_Within: 1.3173 intersectionPattern = new char[1][9]; 1.3174 intersectionPattern[0][0] = 'T'; 1.3175 intersectionPattern[0][1] = '*'; 1.3176 @@ -2116,7 +2094,7 @@ 1.3177 intersectionPattern[0][7] = '*'; 1.3178 intersectionPattern[0][8] = '*'; 1.3179 break; 1.3180 - case EH_Covers: 1.3181 + case EH_Covers: 1.3182 intersectionPattern = new char[1][9]; 1.3183 intersectionPattern[0][0] = 'T'; 1.3184 intersectionPattern[0][1] = '*'; 1.3185 @@ -2128,7 +2106,7 @@ 1.3186 intersectionPattern[0][7] = 'F'; 1.3187 intersectionPattern[0][8] = '*'; 1.3188 break; 1.3189 - case EH_CoveredBy: 1.3190 + case EH_CoveredBy: 1.3191 intersectionPattern = new char[1][9]; 1.3192 intersectionPattern[0][0] = 'T'; 1.3193 intersectionPattern[0][1] = 'F'; 1.3194 @@ -2140,7 +2118,7 @@ 1.3195 intersectionPattern[0][7] = '*'; 1.3196 intersectionPattern[0][8] = '*'; 1.3197 break; 1.3198 - case EH_Inside: 1.3199 + case EH_Inside: 1.3200 intersectionPattern = new char[1][9]; 1.3201 intersectionPattern[0][0] = 'T'; 1.3202 intersectionPattern[0][1] = 'F'; 1.3203 @@ -2152,7 +2130,7 @@ 1.3204 intersectionPattern[0][7] = '*'; 1.3205 intersectionPattern[0][8] = '*'; 1.3206 break; 1.3207 - case EH_Contains: 1.3208 + case EH_Contains: 1.3209 intersectionPattern = new char[1][9]; 1.3210 intersectionPattern[0][0] = 'T'; 1.3211 intersectionPattern[0][1] = '*'; 1.3212 @@ -2164,7 +2142,7 @@ 1.3213 intersectionPattern[0][7] = 'F'; 1.3214 intersectionPattern[0][8] = '*'; 1.3215 break; 1.3216 - case RCC8_Dc: 1.3217 + case RCC8_Dc: 1.3218 intersectionPattern = new char[1][9]; 1.3219 intersectionPattern[0][0] = 'F'; 1.3220 intersectionPattern[0][1] = 'F'; 1.3221 @@ -2176,7 +2154,7 @@ 1.3222 intersectionPattern[0][7] = 'T'; 1.3223 intersectionPattern[0][8] = 'T'; 1.3224 break; 1.3225 - case RCC8_Ec: 1.3226 + case RCC8_Ec: 1.3227 intersectionPattern = new char[1][9]; 1.3228 intersectionPattern[0][0] = 'F'; 1.3229 intersectionPattern[0][1] = 'F'; 1.3230 @@ -2188,7 +2166,7 @@ 1.3231 intersectionPattern[0][7] = 'T'; 1.3232 intersectionPattern[0][8] = 'T'; 1.3233 break; 1.3234 - case RCC8_Po: 1.3235 + case RCC8_Po: 1.3236 intersectionPattern = new char[1][9]; 1.3237 intersectionPattern[0][0] = 'T'; 1.3238 intersectionPattern[0][1] = 'T'; 1.3239 @@ -2200,7 +2178,7 @@ 1.3240 intersectionPattern[0][7] = 'T'; 1.3241 intersectionPattern[0][8] = 'T'; 1.3242 break; 1.3243 - case RCC8_Tppi: 1.3244 + case RCC8_Tppi: 1.3245 intersectionPattern = new char[1][9]; 1.3246 intersectionPattern[0][0] = 'T'; 1.3247 intersectionPattern[0][1] = 'T'; 1.3248 @@ -2212,7 +2190,7 @@ 1.3249 intersectionPattern[0][7] = 'F'; 1.3250 intersectionPattern[0][8] = 'T'; 1.3251 break; 1.3252 - case RCC8_Tpp: 1.3253 + case RCC8_Tpp: 1.3254 intersectionPattern = new char[1][9]; 1.3255 intersectionPattern[0][0] = 'T'; 1.3256 intersectionPattern[0][1] = 'F'; 1.3257 @@ -2224,7 +2202,7 @@ 1.3258 intersectionPattern[0][7] = 'T'; 1.3259 intersectionPattern[0][8] = 'T'; 1.3260 break; 1.3261 - case RCC8_Ntpp: 1.3262 + case RCC8_Ntpp: 1.3263 intersectionPattern = new char[1][9]; 1.3264 intersectionPattern[0][0] = 'T'; 1.3265 intersectionPattern[0][1] = 'F'; 1.3266 @@ -2236,7 +2214,7 @@ 1.3267 intersectionPattern[0][7] = 'T'; 1.3268 intersectionPattern[0][8] = 'T'; 1.3269 break; 1.3270 - case RCC8_Ntppi: 1.3271 + case RCC8_Ntppi: 1.3272 intersectionPattern = new char[1][9]; 1.3273 intersectionPattern[0][0] = 'T'; 1.3274 intersectionPattern[0][1] = 'T'; 1.3275 @@ -2248,7 +2226,7 @@ 1.3276 intersectionPattern[0][7] = 'F'; 1.3277 intersectionPattern[0][8] = 'T'; 1.3278 break; 1.3279 - case SF_Intersects: 1.3280 + case SF_Intersects: 1.3281 intersectionPattern = new char[4][9]; 1.3282 intersectionPattern[0][0] = 'T'; 1.3283 intersectionPattern[0][1] = '*'; 1.3284 @@ -2291,7 +2269,7 @@ 1.3285 intersectionPattern[3][8] = '*'; 1.3286 break; 1.3287 1.3288 - case SF_Touches: 1.3289 + case SF_Touches: 1.3290 case EH_Meet: 1.3291 intersectionPattern = new char[3][9]; 1.3292 intersectionPattern[0][0] = 'F'; 1.3293 @@ -2327,129 +2305,114 @@ 1.3294 1.3295 } 1.3296 1.3297 - for(int i = 0; i < intersectionPattern.length ; i++) 1.3298 - { 1.3299 + for (int i = 0; i < intersectionPattern.length; i++) { 1.3300 appendRelate(expr, filter, intersectionPattern[i]); 1.3301 - if(i < intersectionPattern.length - 1) 1.3302 - { 1.3303 - //append OR and continue 1.3304 + if (i < intersectionPattern.length - 1) { 1.3305 + // append OR and continue 1.3306 filter.or(); 1.3307 } 1.3308 } 1.3309 1.3310 - //Also need bounding box intersection query to enable the usage of the Gist R-tree index 1.3311 - if(func != SpatialFunctionsPostGIS.SF_Disjoint && func != SpatialFunctionsPostGIS.EH_Disjoint && func != SpatialFunctionsPostGIS.RCC8_Dc) 1.3312 - { 1.3313 + // Also need bounding box intersection query to enable the usage of 1.3314 + // the Gist R-tree index 1.3315 + if (func != SpatialFunctionsPostGIS.SF_Disjoint 1.3316 + && func != SpatialFunctionsPostGIS.EH_Disjoint 1.3317 + && func != SpatialFunctionsPostGIS.RCC8_Dc) { 1.3318 filter.and(); 1.3319 - appendGeneralDBSpatialFunctionBinary(expr, filter,SpatialFunctionsPostGIS.ST_Intersects); 1.3320 + appendGeneralDBSpatialFunctionBinary(expr, filter, 1.3321 + SpatialFunctionsPostGIS.ST_Intersects); 1.3322 } 1.3323 } 1.3324 filter.closeBracket(); 1.3325 - } 1.3326 + } 1.3327 1.3328 @Override 1.3329 - //GeoSPARQL 1.3330 - //XXX 1.3331 - 1.3332 - protected void appendRelate(BinaryGeneralDBOperator expr, GeneralDBSqlExprBuilder filter, char[] intersectionPattern) 1.3333 - throws UnsupportedRdbmsOperatorException 1.3334 - { 1.3335 + // GeoSPARQL 1.3336 + // XXX 1.3337 + protected void appendRelate(BinaryGeneralDBOperator expr, 1.3338 + GeneralDBSqlExprBuilder filter, char[] intersectionPattern) 1.3339 + throws UnsupportedRdbmsOperatorException { 1.3340 filter.openBracket(); 1.3341 System.out.println(expr.getLeftArg().getClass().getCanonicalName()); 1.3342 - boolean check1 = expr.getLeftArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.3343 - if(check1) 1.3344 - { 1.3345 - this.append((GeneralDBSqlNull)expr.getLeftArg(), filter); 1.3346 + boolean check1 = expr.getLeftArg().getClass().getCanonicalName() 1.3347 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.3348 + if (check1) { 1.3349 + this.append((GeneralDBSqlNull) expr.getLeftArg(), filter); 1.3350 1.3351 - } 1.3352 - else 1.3353 - { 1.3354 + } else { 1.3355 filter.appendFunction("ST_Relate"); 1.3356 1.3357 - 1.3358 filter.openBracket(); 1.3359 - if(expr.getLeftArg() instanceof GeneralDBStringValue) 1.3360 - { 1.3361 - appendWKT(expr.getLeftArg(),filter); 1.3362 - } 1.3363 - else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.3364 - { 1.3365 + if (expr.getLeftArg() instanceof GeneralDBStringValue) { 1.3366 + appendWKT(expr.getLeftArg(), filter); 1.3367 + } else if (expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructBinary) { 1.3368 appendConstructFunction(expr.getLeftArg(), filter); 1.3369 - } 1.3370 - else if(expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.3371 - { 1.3372 + } else if (expr.getLeftArg() instanceof GeneralDBSqlSpatialConstructUnary) { 1.3373 appendConstructFunction(expr.getLeftArg(), filter); 1.3374 - } 1.3375 - else if(expr.getLeftArg() instanceof GeneralDBSqlCase) 1.3376 - { 1.3377 - GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn)((GeneralDBSqlCase)expr.getLeftArg()).getEntries().get(0).getResult(); 1.3378 - appendMBB(onlyLabel,filter); 1.3379 - } 1.3380 - else 1.3381 - { 1.3382 - appendMBB((GeneralDBLabelColumn)(expr.getLeftArg()),filter); 1.3383 + } else if (expr.getLeftArg() instanceof GeneralDBSqlCase) { 1.3384 + GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn) ((GeneralDBSqlCase) expr 1.3385 + .getLeftArg()).getEntries().get(0).getResult(); 1.3386 + appendMBB(onlyLabel, filter); 1.3387 + } else { 1.3388 + appendMBB((GeneralDBLabelColumn) (expr.getLeftArg()), filter); 1.3389 } 1.3390 filter.appendComma(); 1.3391 - boolean check2 = expr.getRightArg().getClass().getCanonicalName().equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.3392 - if(check2) 1.3393 - { 1.3394 - this.append((GeneralDBSqlNull)expr.getRightArg(), filter); 1.3395 - } 1.3396 - else 1.3397 - { 1.3398 - if(expr.getRightArg() instanceof GeneralDBStringValue) 1.3399 + boolean check2 = expr 1.3400 + .getRightArg() 1.3401 + .getClass() 1.3402 + .getCanonicalName() 1.3403 + .equals("org.openrdf.sail.generaldb.algebra.GeneralDBSqlNull"); 1.3404 + if (check2) { 1.3405 + this.append((GeneralDBSqlNull) expr.getRightArg(), filter); 1.3406 + } else { 1.3407 + if (expr.getRightArg() instanceof GeneralDBStringValue) { 1.3408 + appendWKT(expr.getRightArg(), filter); 1.3409 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialConstructUnary) { 1.3410 + appendConstructFunction(expr.getRightArg(), filter); 1.3411 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialConstructBinary) { 1.3412 + appendConstructFunction(expr.getRightArg(), filter); 1.3413 + } else if (expr.getRightArg() instanceof GeneralDBSqlCase) { 1.3414 + GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn) ((GeneralDBSqlCase) expr 1.3415 + .getRightArg()).getEntries().get(0).getResult(); 1.3416 + appendMBB(onlyLabel, filter); 1.3417 + } else if (expr.getRightArg() instanceof GeneralDBDoubleValue) // case 1.3418 + // met 1.3419 + // in 1.3420 + // buffer! 1.3421 { 1.3422 - appendWKT(expr.getRightArg(),filter); 1.3423 + append(((GeneralDBDoubleValue) expr.getRightArg()), filter); 1.3424 + } else if (expr.getRightArg() instanceof GeneralDBNumericColumn) // case 1.3425 + // met 1.3426 + // in 1.3427 + // buffer! 1.3428 + { 1.3429 + append(((GeneralDBNumericColumn) expr.getRightArg()), 1.3430 + filter); 1.3431 } 1.3432 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialConstructUnary) 1.3433 - { 1.3434 - appendConstructFunction(expr.getRightArg(), filter); 1.3435 - } 1.3436 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialConstructBinary) 1.3437 - { 1.3438 - appendConstructFunction(expr.getRightArg(), filter); 1.3439 - } 1.3440 - else if(expr.getRightArg() instanceof GeneralDBSqlCase) 1.3441 - { 1.3442 - GeneralDBLabelColumn onlyLabel = (GeneralDBLabelColumn)((GeneralDBSqlCase)expr.getRightArg()).getEntries().get(0).getResult(); 1.3443 - appendMBB(onlyLabel,filter); 1.3444 - } 1.3445 - else if(expr.getRightArg() instanceof GeneralDBDoubleValue) //case met in buffer! 1.3446 - { 1.3447 - append(((GeneralDBDoubleValue)expr.getRightArg()), filter); 1.3448 - } 1.3449 - else if(expr.getRightArg() instanceof GeneralDBNumericColumn) //case met in buffer! 1.3450 - { 1.3451 - append(((GeneralDBNumericColumn)expr.getRightArg()), filter); 1.3452 - } 1.3453 - //case met in buffer when in select -> buffer(?spatial,?thematic) 1.3454 - else if(expr.getRightArg() instanceof GeneralDBLabelColumn && !((GeneralDBLabelColumn)expr.getRightArg()).isSpatial()) 1.3455 - { 1.3456 - append(((GeneralDBLabelColumn)expr.getRightArg()),filter); 1.3457 + // case met in buffer when in select -> 1.3458 + // buffer(?spatial,?thematic) 1.3459 + else if (expr.getRightArg() instanceof GeneralDBLabelColumn 1.3460 + && !((GeneralDBLabelColumn) expr.getRightArg()) 1.3461 + .isSpatial()) { 1.3462 + append(((GeneralDBLabelColumn) expr.getRightArg()), filter); 1.3463 appendCastToDouble(filter); 1.3464 - } 1.3465 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialMetricBinary) 1.3466 - { 1.3467 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialMetricBinary) { 1.3468 appendMetricFunction(expr.getRightArg(), filter); 1.3469 - } 1.3470 - else if(expr.getRightArg() instanceof GeneralDBSqlSpatialMetricUnary) 1.3471 - { 1.3472 + } else if (expr.getRightArg() instanceof GeneralDBSqlSpatialMetricUnary) { 1.3473 appendMetricFunction(expr.getRightArg(), filter); 1.3474 - } 1.3475 - else 1.3476 - { 1.3477 - appendMBB((GeneralDBLabelColumn)(expr.getRightArg()),filter); 1.3478 + } else { 1.3479 + appendMBB((GeneralDBLabelColumn) (expr.getRightArg()), 1.3480 + filter); 1.3481 } 1.3482 1.3483 } 1.3484 - //3rd arg 1.3485 + // 3rd arg 1.3486 filter.appendComma(); 1.3487 1.3488 - //must turn the table of characters I have to a valid sql value! 1.3489 + // must turn the table of characters I have to a valid sql value! 1.3490 filter.append("'"); 1.3491 - for(int i = 0; i< intersectionPattern.length; i++) 1.3492 - { 1.3493 - filter.append(intersectionPattern[i]+""); 1.3494 + for (int i = 0; i < intersectionPattern.length; i++) { 1.3495 + filter.append(intersectionPattern[i] + ""); 1.3496 } 1.3497 filter.append("'"); 1.3498 1.3499 @@ -2457,6 +2420,6 @@ 1.3500 } 1.3501 1.3502 filter.closeBracket(); 1.3503 - } 1.3504 + } 1.3505 1.3506 }