Index: plugin.xml
===================================================================
--- plugin.xml (revision 9774)
+++ plugin.xml (working copy)
@@ -130,6 +130,8 @@
+
+
+
+
+
+
Index: src/java/org/datanucleus/store/rdbms/sql/method/SpatialBboxTestMethod.java
===================================================================
--- src/java/org/datanucleus/store/rdbms/sql/method/SpatialBboxTestMethod.java (revision 0)
+++ src/java/org/datanucleus/store/rdbms/sql/method/SpatialBboxTestMethod.java (revision 0)
@@ -0,0 +1,33 @@
+package org.datanucleus.store.rdbms.sql.method;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.datanucleus.exceptions.NucleusUserException;
+import org.datanucleus.query.expression.Expression;
+import org.datanucleus.query.expression.Expression.DyadicOperator;
+import org.datanucleus.store.mapped.mapping.JavaTypeMapping;
+import org.datanucleus.store.rdbms.sql.expression.BooleanExpression;
+import org.datanucleus.store.rdbms.sql.expression.GeometryExpression;
+import org.datanucleus.store.rdbms.sql.expression.SQLExpression;
+
+public class SpatialBboxTestMethod extends AbstractSQLMethod
+{
+ private static final DyadicOperator BBOX_OVERLAPS = new Expression.DyadicOperator("&&", 3, false);
+
+ /* (non-Javadoc)
+ * @see org.datanucleus.store.rdbms.sql.method.SQLMethod#getExpression(org.datanucleus.store.rdbms.sql.expression.SQLExpression, java.util.List)
+ */
+ public SQLExpression getExpression(SQLExpression ignore, List args)
+ {
+ if (args == null || args.size() != 2)
+ {
+ throw new NucleusUserException("Cannot invoke Spatial.overlaps without 2 arguments");
+ }
+
+ SQLExpression argExpr1 = (SQLExpression)args.get(0); // Geometry 1
+ SQLExpression argExpr2 = (SQLExpression)args.get(1); // Geometry 2
+
+ return new BooleanExpression(argExpr1,BBOX_OVERLAPS,argExpr2);
+ }
+}
\ No newline at end of file