You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2016/05/14 16:10:28 UTC
[04/41] jena git commit: Fix line-ending changes.
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/DirectionWithPointPFBase.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/DirectionWithPointPFBase.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/DirectionWithPointPFBase.java
index 29bb81f..2f49963 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/DirectionWithPointPFBase.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/DirectionWithPointPFBase.java
@@ -1,146 +1,146 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial.pfunction;
-
-import java.util.List;
-
-import org.apache.jena.datatypes.xsd.XSDDatatype ;
-import org.apache.jena.graph.Node ;
-import org.apache.jena.graph.impl.LiteralLabel ;
-import org.apache.jena.query.QueryBuildException ;
-import org.apache.jena.query.spatial.SpatialIndexException;
-import org.apache.jena.query.spatial.SpatialValueUtil;
-import org.apache.jena.sparql.engine.ExecutionContext ;
-import org.apache.jena.sparql.pfunction.PropFuncArg ;
-import org.apache.jena.sparql.util.NodeFactoryExtra ;
-import org.apache.lucene.spatial.query.SpatialOperation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public abstract class DirectionWithPointPFBase extends SpatialOperationPFBase {
-
- private static Logger log = LoggerFactory.getLogger(DirectionWithPointPFBase.class);
-
- public DirectionWithPointPFBase() {
-
- }
-
- @Override
- public void build(PropFuncArg argSubject, Node predicate,
- PropFuncArg argObject, ExecutionContext execCxt) {
- super.build(argSubject, predicate, argObject, execCxt);
-
- if (!argSubject.isNode())
- throw new QueryBuildException("Subject is not a single node: "
- + argSubject);
-
- if (argObject.isList()) {
- List<Node> list = argObject.getArgList();
- if (list.size() < 2)
- throw new QueryBuildException("Not enough arguments in list");
-
- if (list.size() > 3)
- throw new QueryBuildException("Too many arguments in list : "
- + list);
- }
- }
-
-
- /** Deconstruct the node or list object argument and make a SpatialMatch */
- @Override
- protected SpatialMatch objectToStruct(PropFuncArg argObject) {
- if (argObject.isNode()) {
- log.warn("Object not a List: " + argObject);
- return null;
- }
-
- List<Node> list = argObject.getArgList();
-
- if (list.size() < 2 || list.size() > 3)
- throw new SpatialIndexException("Change in object list size");
-
- int idx = 0;
-
- Node x = list.get(idx);
- if (!x.isLiteral()) {
- log.warn("Latitude is not a literal " + list);
- return null;
- }
- if (!SpatialValueUtil.isDecimal(x)) {
- log.warn("Latitude is not a decimal " + list);
- return null;
- }
- Double latitude = Double.parseDouble(x.getLiteralLexicalForm());
-
- idx++;
-
- x = list.get(idx);
- if (!x.isLiteral()) {
- log.warn("Longitude is not a literal " + list);
- return null;
- }
- if (!SpatialValueUtil.isDecimal(x)) {
- log.warn("Longitude is not a decimal " + list);
- return null;
- }
- Double longitude = Double.parseDouble(x.getLiteralLexicalForm());
-
- idx++;
-
- int limit =-1;
-
- if (idx < list.size()) {
- x = list.get(idx);
-
- if (!x.isLiteral()) {
- log.warn("Limit is not a literal " + list);
- return null;
- }
-
- LiteralLabel lit = x.getLiteral();
-
- if (!XSDDatatype.XSDinteger.isValidLiteral(lit)) {
- log.warn("Limit is not an integer " + list);
- return null;
- }
-
- int v = NodeFactoryExtra.nodeToInt(x);
- limit = (v < 0) ? -1 : v;
-
- idx++;
- if (idx < list.size()) {
- log.warn("Limit is not the last parameter " + list);
- return null;
- }
- }
-
- SpatialMatch match = this.getSpatialMatch(latitude, longitude, limit);
- if (log.isDebugEnabled())
- log.debug("Trying SpatialMatch: " + match.toString());
- return match;
- }
-
- protected abstract SpatialMatch getSpatialMatch(Double latitude, Double longitude, int limit);
-
- @Override
- protected SpatialOperation getSpatialOperation() {
- return SpatialOperation.IsWithin;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial.pfunction;
+
+import java.util.List;
+
+import org.apache.jena.datatypes.xsd.XSDDatatype ;
+import org.apache.jena.graph.Node ;
+import org.apache.jena.graph.impl.LiteralLabel ;
+import org.apache.jena.query.QueryBuildException ;
+import org.apache.jena.query.spatial.SpatialIndexException;
+import org.apache.jena.query.spatial.SpatialValueUtil;
+import org.apache.jena.sparql.engine.ExecutionContext ;
+import org.apache.jena.sparql.pfunction.PropFuncArg ;
+import org.apache.jena.sparql.util.NodeFactoryExtra ;
+import org.apache.lucene.spatial.query.SpatialOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public abstract class DirectionWithPointPFBase extends SpatialOperationPFBase {
+
+ private static Logger log = LoggerFactory.getLogger(DirectionWithPointPFBase.class);
+
+ public DirectionWithPointPFBase() {
+
+ }
+
+ @Override
+ public void build(PropFuncArg argSubject, Node predicate,
+ PropFuncArg argObject, ExecutionContext execCxt) {
+ super.build(argSubject, predicate, argObject, execCxt);
+
+ if (!argSubject.isNode())
+ throw new QueryBuildException("Subject is not a single node: "
+ + argSubject);
+
+ if (argObject.isList()) {
+ List<Node> list = argObject.getArgList();
+ if (list.size() < 2)
+ throw new QueryBuildException("Not enough arguments in list");
+
+ if (list.size() > 3)
+ throw new QueryBuildException("Too many arguments in list : "
+ + list);
+ }
+ }
+
+
+ /** Deconstruct the node or list object argument and make a SpatialMatch */
+ @Override
+ protected SpatialMatch objectToStruct(PropFuncArg argObject) {
+ if (argObject.isNode()) {
+ log.warn("Object not a List: " + argObject);
+ return null;
+ }
+
+ List<Node> list = argObject.getArgList();
+
+ if (list.size() < 2 || list.size() > 3)
+ throw new SpatialIndexException("Change in object list size");
+
+ int idx = 0;
+
+ Node x = list.get(idx);
+ if (!x.isLiteral()) {
+ log.warn("Latitude is not a literal " + list);
+ return null;
+ }
+ if (!SpatialValueUtil.isDecimal(x)) {
+ log.warn("Latitude is not a decimal " + list);
+ return null;
+ }
+ Double latitude = Double.parseDouble(x.getLiteralLexicalForm());
+
+ idx++;
+
+ x = list.get(idx);
+ if (!x.isLiteral()) {
+ log.warn("Longitude is not a literal " + list);
+ return null;
+ }
+ if (!SpatialValueUtil.isDecimal(x)) {
+ log.warn("Longitude is not a decimal " + list);
+ return null;
+ }
+ Double longitude = Double.parseDouble(x.getLiteralLexicalForm());
+
+ idx++;
+
+ int limit =-1;
+
+ if (idx < list.size()) {
+ x = list.get(idx);
+
+ if (!x.isLiteral()) {
+ log.warn("Limit is not a literal " + list);
+ return null;
+ }
+
+ LiteralLabel lit = x.getLiteral();
+
+ if (!XSDDatatype.XSDinteger.isValidLiteral(lit)) {
+ log.warn("Limit is not an integer " + list);
+ return null;
+ }
+
+ int v = NodeFactoryExtra.nodeToInt(x);
+ limit = (v < 0) ? -1 : v;
+
+ idx++;
+ if (idx < list.size()) {
+ log.warn("Limit is not the last parameter " + list);
+ return null;
+ }
+ }
+
+ SpatialMatch match = this.getSpatialMatch(latitude, longitude, limit);
+ if (log.isDebugEnabled())
+ log.debug("Trying SpatialMatch: " + match.toString());
+ return match;
+ }
+
+ protected abstract SpatialMatch getSpatialMatch(Double latitude, Double longitude, int limit);
+
+ @Override
+ protected SpatialOperation getSpatialOperation() {
+ return SpatialOperation.IsWithin;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialMatch.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialMatch.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialMatch.java
index 0d8275c..10832ed 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialMatch.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialMatch.java
@@ -1,67 +1,67 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial.pfunction;
-
-import org.apache.jena.query.spatial.DistanceUnitsUtils;
-import org.apache.jena.query.spatial.SpatialQuery;
-import org.apache.lucene.spatial.query.SpatialOperation;
-
-import com.spatial4j.core.shape.Shape;
-
-public class SpatialMatch {
-
- private final Shape shape;
- private final int limit;
- private final SpatialOperation operation;
-
- public SpatialMatch(Double latitude, Double longitude, Double radius,
- String units, int limit, SpatialOperation operation) {
-
- double degrees = DistanceUnitsUtils.dist2Degrees(radius, units);
- this.shape = SpatialQuery.ctx.makeCircle(longitude, latitude, degrees);
- //System.out.println( SpatialQuery.ctx.toString(shape) );
- this.limit = limit;
- this.operation = operation;
- }
-
- public SpatialMatch(Double latitude1, Double longitude1, Double latitude2,
- Double longitude2, int limit, SpatialOperation operation) {
- this.shape = SpatialQuery.ctx.makeRectangle(longitude1, longitude2, latitude1, latitude2);
- this.limit = limit;
- this.operation = operation;
- }
-
- public Shape getShape() {
- return shape;
- }
-
- public int getLimit() {
- return limit;
- }
-
- public SpatialOperation getSpatialOperation() {
- return operation;
- }
-
- @Override
- public String toString() {
- return "(" + shape + " " + limit + " " + operation + ")";
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial.pfunction;
+
+import org.apache.jena.query.spatial.DistanceUnitsUtils;
+import org.apache.jena.query.spatial.SpatialQuery;
+import org.apache.lucene.spatial.query.SpatialOperation;
+
+import com.spatial4j.core.shape.Shape;
+
+public class SpatialMatch {
+
+ private final Shape shape;
+ private final int limit;
+ private final SpatialOperation operation;
+
+ public SpatialMatch(Double latitude, Double longitude, Double radius,
+ String units, int limit, SpatialOperation operation) {
+
+ double degrees = DistanceUnitsUtils.dist2Degrees(radius, units);
+ this.shape = SpatialQuery.ctx.makeCircle(longitude, latitude, degrees);
+ //System.out.println( SpatialQuery.ctx.toString(shape) );
+ this.limit = limit;
+ this.operation = operation;
+ }
+
+ public SpatialMatch(Double latitude1, Double longitude1, Double latitude2,
+ Double longitude2, int limit, SpatialOperation operation) {
+ this.shape = SpatialQuery.ctx.makeRectangle(longitude1, longitude2, latitude1, latitude2);
+ this.limit = limit;
+ this.operation = operation;
+ }
+
+ public Shape getShape() {
+ return shape;
+ }
+
+ public int getLimit() {
+ return limit;
+ }
+
+ public SpatialOperation getSpatialOperation() {
+ return operation;
+ }
+
+ @Override
+ public String toString() {
+ return "(" + shape + " " + limit + " " + operation + ")";
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialOperationPFBase.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialOperationPFBase.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialOperationPFBase.java
index 82d7b4f..2f8b638 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialOperationPFBase.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialOperationPFBase.java
@@ -1,163 +1,163 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial.pfunction;
-
-import java.util.List ;
-
-import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.lib.InternalErrorException ;
-import org.apache.jena.atlas.logging.Log ;
-import org.apache.jena.graph.Node ;
-import org.apache.jena.query.spatial.DatasetGraphSpatial ;
-import org.apache.jena.query.spatial.SpatialIndex ;
-import org.apache.jena.query.spatial.SpatialQuery ;
-import org.apache.jena.sparql.core.DatasetGraph ;
-import org.apache.jena.sparql.core.Substitute ;
-import org.apache.jena.sparql.core.Var ;
-import org.apache.jena.sparql.engine.ExecutionContext ;
-import org.apache.jena.sparql.engine.QueryIterator ;
-import org.apache.jena.sparql.engine.binding.Binding ;
-import org.apache.jena.sparql.engine.iterator.QueryIterExtendByVar ;
-import org.apache.jena.sparql.engine.iterator.QueryIterSlice ;
-import org.apache.jena.sparql.pfunction.PropFuncArg ;
-import org.apache.jena.sparql.pfunction.PropertyFunctionBase ;
-import org.apache.jena.sparql.util.IterLib ;
-import org.apache.lucene.spatial.query.SpatialOperation ;
-import org.slf4j.Logger ;
-import org.slf4j.LoggerFactory ;
-
-public abstract class SpatialOperationPFBase extends PropertyFunctionBase {
-
- private static Logger log = LoggerFactory.getLogger(SpatialOperationPFBase.class);
-
- protected SpatialIndex server = null;
- private boolean warningIssued = false;
-
- public SpatialOperationPFBase() {
- }
-
- @Override
- public void build(PropFuncArg argSubject, Node predicate,
- PropFuncArg argObject, ExecutionContext execCxt) {
- super.build(argSubject, predicate, argObject, execCxt);
- DatasetGraph dsg = execCxt.getDataset();
- server = chooseTextIndex(dsg);
- }
-
- protected SpatialIndex chooseTextIndex(DatasetGraph dsg) {
- Object obj = dsg.getContext().get(SpatialQuery.spatialIndex);
-
- if (obj != null) {
- try {
- return (SpatialIndex) obj;
- } catch (ClassCastException ex) {
- Log.warn(SpatialOperationWithCircleBase.class, "Context setting '"
- + SpatialQuery.spatialIndex + "'is not a SpatialIndex");
- }
- }
-
- if (dsg instanceof DatasetGraphSpatial) {
- DatasetGraphSpatial x = (DatasetGraphSpatial) dsg;
- return x.getSpatialIndex();
- }
- Log.warn(
- SpatialOperationWithCircleBase.class,
- "Failed to find the spatial index : tried context and as a spatial-enabled dataset");
- return null;
- }
-
- @Override
- public QueryIterator exec(Binding binding, PropFuncArg argSubject,
- Node predicate, PropFuncArg argObject, ExecutionContext execCxt) {
- if (server == null) {
- if (!warningIssued) {
- Log.warn(getClass(), "No spatial index - no spatial search performed");
- warningIssued = true;
- }
- // Not a text dataset - no-op
- return IterLib.result(binding, execCxt);
- }
-
- DatasetGraph dsg = execCxt.getDataset();
-
- argSubject = Substitute.substitute(argSubject, binding) ;
- argObject = Substitute.substitute(argObject, binding) ;
-
- if (!argSubject.isNode())
- throw new InternalErrorException("Subject is not a node (it was earlier!)");
-
- Node s = argSubject.getArg();
-
- if (s.isLiteral())
- // Does not match
- return IterLib.noResults(execCxt);
-
- SpatialMatch match = objectToStruct(argObject);
-
- if (match == null) {
- // can't match
- return IterLib.noResults(execCxt);
- }
-
- // ----
-
- QueryIterator qIter = (Var.isVar(s)) ? variableSubject(binding, s,
- match, execCxt) : concreteSubject(binding, s, match, execCxt);
- if (match.getLimit() >= 0)
- qIter = new QueryIterSlice(qIter, 0, match.getLimit(), execCxt);
- return qIter;
- }
-
- private QueryIterator variableSubject(Binding binding, Node s,
- SpatialMatch match, ExecutionContext execCxt) {
-
- Var v = Var.alloc(s);
- List<Node> r = query(match);
- // Make distinct. Note interaction with limit is imperfect
- r = Iter.iter(r).distinct().toList();
- QueryIterator qIter = new QueryIterExtendByVar(binding, v,
- r.iterator(), execCxt);
- return qIter;
- }
-
- private QueryIterator concreteSubject(Binding binding, Node s,
- SpatialMatch match, ExecutionContext execCxt) {
- if (!s.isURI()) {
- log.warn("Subject not a URI: " + s);
- return IterLib.noResults(execCxt);
- }
-
- List<Node> x = query(match);
- if (x == null || !x.contains(s))
- return IterLib.noResults(execCxt);
- else
- return IterLib.result(binding, execCxt);
- }
-
- private List<Node> query(SpatialMatch match) {
-
- return server.query(match.getShape(), match.getLimit(),
- match.getSpatialOperation());
- }
-
- /** Deconstruct the node or list object argument and make a SpatialMatch */
- protected abstract SpatialMatch objectToStruct(PropFuncArg argObject);
-
- protected abstract SpatialOperation getSpatialOperation();
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial.pfunction;
+
+import java.util.List ;
+
+import org.apache.jena.atlas.iterator.Iter ;
+import org.apache.jena.atlas.lib.InternalErrorException ;
+import org.apache.jena.atlas.logging.Log ;
+import org.apache.jena.graph.Node ;
+import org.apache.jena.query.spatial.DatasetGraphSpatial ;
+import org.apache.jena.query.spatial.SpatialIndex ;
+import org.apache.jena.query.spatial.SpatialQuery ;
+import org.apache.jena.sparql.core.DatasetGraph ;
+import org.apache.jena.sparql.core.Substitute ;
+import org.apache.jena.sparql.core.Var ;
+import org.apache.jena.sparql.engine.ExecutionContext ;
+import org.apache.jena.sparql.engine.QueryIterator ;
+import org.apache.jena.sparql.engine.binding.Binding ;
+import org.apache.jena.sparql.engine.iterator.QueryIterExtendByVar ;
+import org.apache.jena.sparql.engine.iterator.QueryIterSlice ;
+import org.apache.jena.sparql.pfunction.PropFuncArg ;
+import org.apache.jena.sparql.pfunction.PropertyFunctionBase ;
+import org.apache.jena.sparql.util.IterLib ;
+import org.apache.lucene.spatial.query.SpatialOperation ;
+import org.slf4j.Logger ;
+import org.slf4j.LoggerFactory ;
+
+public abstract class SpatialOperationPFBase extends PropertyFunctionBase {
+
+ private static Logger log = LoggerFactory.getLogger(SpatialOperationPFBase.class);
+
+ protected SpatialIndex server = null;
+ private boolean warningIssued = false;
+
+ public SpatialOperationPFBase() {
+ }
+
+ @Override
+ public void build(PropFuncArg argSubject, Node predicate,
+ PropFuncArg argObject, ExecutionContext execCxt) {
+ super.build(argSubject, predicate, argObject, execCxt);
+ DatasetGraph dsg = execCxt.getDataset();
+ server = chooseTextIndex(dsg);
+ }
+
+ protected SpatialIndex chooseTextIndex(DatasetGraph dsg) {
+ Object obj = dsg.getContext().get(SpatialQuery.spatialIndex);
+
+ if (obj != null) {
+ try {
+ return (SpatialIndex) obj;
+ } catch (ClassCastException ex) {
+ Log.warn(SpatialOperationWithCircleBase.class, "Context setting '"
+ + SpatialQuery.spatialIndex + "'is not a SpatialIndex");
+ }
+ }
+
+ if (dsg instanceof DatasetGraphSpatial) {
+ DatasetGraphSpatial x = (DatasetGraphSpatial) dsg;
+ return x.getSpatialIndex();
+ }
+ Log.warn(
+ SpatialOperationWithCircleBase.class,
+ "Failed to find the spatial index : tried context and as a spatial-enabled dataset");
+ return null;
+ }
+
+ @Override
+ public QueryIterator exec(Binding binding, PropFuncArg argSubject,
+ Node predicate, PropFuncArg argObject, ExecutionContext execCxt) {
+ if (server == null) {
+ if (!warningIssued) {
+ Log.warn(getClass(), "No spatial index - no spatial search performed");
+ warningIssued = true;
+ }
+ // Not a text dataset - no-op
+ return IterLib.result(binding, execCxt);
+ }
+
+ DatasetGraph dsg = execCxt.getDataset();
+
+ argSubject = Substitute.substitute(argSubject, binding) ;
+ argObject = Substitute.substitute(argObject, binding) ;
+
+ if (!argSubject.isNode())
+ throw new InternalErrorException("Subject is not a node (it was earlier!)");
+
+ Node s = argSubject.getArg();
+
+ if (s.isLiteral())
+ // Does not match
+ return IterLib.noResults(execCxt);
+
+ SpatialMatch match = objectToStruct(argObject);
+
+ if (match == null) {
+ // can't match
+ return IterLib.noResults(execCxt);
+ }
+
+ // ----
+
+ QueryIterator qIter = (Var.isVar(s)) ? variableSubject(binding, s,
+ match, execCxt) : concreteSubject(binding, s, match, execCxt);
+ if (match.getLimit() >= 0)
+ qIter = new QueryIterSlice(qIter, 0, match.getLimit(), execCxt);
+ return qIter;
+ }
+
+ private QueryIterator variableSubject(Binding binding, Node s,
+ SpatialMatch match, ExecutionContext execCxt) {
+
+ Var v = Var.alloc(s);
+ List<Node> r = query(match);
+ // Make distinct. Note interaction with limit is imperfect
+ r = Iter.iter(r).distinct().toList();
+ QueryIterator qIter = new QueryIterExtendByVar(binding, v,
+ r.iterator(), execCxt);
+ return qIter;
+ }
+
+ private QueryIterator concreteSubject(Binding binding, Node s,
+ SpatialMatch match, ExecutionContext execCxt) {
+ if (!s.isURI()) {
+ log.warn("Subject not a URI: " + s);
+ return IterLib.noResults(execCxt);
+ }
+
+ List<Node> x = query(match);
+ if (x == null || !x.contains(s))
+ return IterLib.noResults(execCxt);
+ else
+ return IterLib.result(binding, execCxt);
+ }
+
+ private List<Node> query(SpatialMatch match) {
+
+ return server.query(match.getShape(), match.getLimit(),
+ match.getSpatialOperation());
+ }
+
+ /** Deconstruct the node or list object argument and make a SpatialMatch */
+ protected abstract SpatialMatch objectToStruct(PropFuncArg argObject);
+
+ protected abstract SpatialOperation getSpatialOperation();
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialOperationWithBoxPFBase.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialOperationWithBoxPFBase.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialOperationWithBoxPFBase.java
index e200134..ee44773 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialOperationWithBoxPFBase.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialOperationWithBoxPFBase.java
@@ -1,164 +1,164 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial.pfunction;
-
-import java.util.List;
-
-import org.apache.jena.datatypes.xsd.XSDDatatype ;
-import org.apache.jena.graph.Node ;
-import org.apache.jena.graph.impl.LiteralLabel ;
-import org.apache.jena.query.QueryBuildException ;
-import org.apache.jena.query.spatial.SpatialIndexException;
-import org.apache.jena.query.spatial.SpatialValueUtil;
-import org.apache.jena.sparql.engine.ExecutionContext ;
-import org.apache.jena.sparql.pfunction.PropFuncArg ;
-import org.apache.jena.sparql.util.NodeFactoryExtra ;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public abstract class SpatialOperationWithBoxPFBase extends SpatialOperationPFBase {
- private static Logger log = LoggerFactory.getLogger(SpatialOperationWithCircleBase.class);
-
- public SpatialOperationWithBoxPFBase() {
- }
-
- @Override
- public void build(PropFuncArg argSubject, Node predicate,
- PropFuncArg argObject, ExecutionContext execCxt) {
- super.build(argSubject, predicate, argObject, execCxt);
-
- if (!argSubject.isNode())
- throw new QueryBuildException("Subject is not a single node: "
- + argSubject);
-
- if (argObject.isList()) {
- List<Node> list = argObject.getArgList();
- if (list.size() < 4)
- throw new QueryBuildException("Not enough arguments in list");
-
- if (list.size() > 5)
- throw new QueryBuildException("Too many arguments in list : "
- + list);
- }
- }
-
- /** Deconstruct the node or list object argument and make a SpatialMatch */
- @Override
- protected SpatialMatch objectToStruct(PropFuncArg argObject) {
-
- if (argObject.isNode()) {
- log.warn("Object not a List: " + argObject);
- return null;
- }
-
- List<Node> list = argObject.getArgList();
-
- if (list.size() < 4 || list.size() > 5)
- throw new SpatialIndexException("Change in object list size");
-
- int idx = 0;
-
- Node x = list.get(idx);
- if (!x.isLiteral()) {
- log.warn("Latitude 1 is not a literal " + list);
- return null;
- }
- if (!SpatialValueUtil.isDecimal(x)) {
- log.warn("Latitude 1 is not a decimal " + list);
- return null;
- }
- Double latitude1 = Double.parseDouble(x.getLiteralLexicalForm());
-
- idx++;
-
- x = list.get(idx);
- if (!x.isLiteral()) {
- log.warn("Longitude 1 is not a literal " + list);
- return null;
- }
- if (!SpatialValueUtil.isDecimal(x)) {
- log.warn("Longitude 1 is not a decimal " + list);
- return null;
- }
- Double longtitude1 = Double.parseDouble(x.getLiteralLexicalForm());
-
- idx++;
-
- x = list.get(idx);
- if (!x.isLiteral()) {
- log.warn("Latitude 2 is not a literal " + list);
- return null;
- }
- if (!SpatialValueUtil.isDecimal(x)) {
- log.warn("Latitude 2 is not a decimal " + list);
- return null;
- }
- Double latitude2 = Double.parseDouble(x.getLiteralLexicalForm());
-
- idx++;
-
- x = list.get(idx);
- if (!x.isLiteral()) {
- log.warn("Longitude 2 is not a literal " + list);
- return null;
- }
- if (!SpatialValueUtil.isDecimal(x)) {
- log.warn("Longitude 2 is not a decimal " + list);
- return null;
- }
- Double longtitude2 = Double.parseDouble(x.getLiteralLexicalForm());
-
- idx++;
- int limit =-1;
-
- if (idx < list.size()) {
- x = list.get(idx);
-
- if (!x.isLiteral()) {
- log.warn("Limit is not a literal " + list);
- return null;
- }
-
- LiteralLabel lit = x.getLiteral();
-
- if (!XSDDatatype.XSDinteger.isValidLiteral(lit)) {
- log.warn("Limit is not an integer " + list);
- return null;
- }
-
- int v = NodeFactoryExtra.nodeToInt(x);
- limit = (v < 0) ? -1 : v;
-
- idx++;
- if (idx < list.size()) {
- log.warn("Limit is not the last parameter " + list);
- return null;
- }
- }
-
- SpatialMatch match = new SpatialMatch(latitude1, longtitude1,
- latitude2, longtitude2, limit, getSpatialOperation());
-
- if (log.isDebugEnabled())
- log.debug("Trying SpatialMatch: " + match.toString());
- return match;
- }
-
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial.pfunction;
+
+import java.util.List;
+
+import org.apache.jena.datatypes.xsd.XSDDatatype ;
+import org.apache.jena.graph.Node ;
+import org.apache.jena.graph.impl.LiteralLabel ;
+import org.apache.jena.query.QueryBuildException ;
+import org.apache.jena.query.spatial.SpatialIndexException;
+import org.apache.jena.query.spatial.SpatialValueUtil;
+import org.apache.jena.sparql.engine.ExecutionContext ;
+import org.apache.jena.sparql.pfunction.PropFuncArg ;
+import org.apache.jena.sparql.util.NodeFactoryExtra ;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public abstract class SpatialOperationWithBoxPFBase extends SpatialOperationPFBase {
+ private static Logger log = LoggerFactory.getLogger(SpatialOperationWithCircleBase.class);
+
+ public SpatialOperationWithBoxPFBase() {
+ }
+
+ @Override
+ public void build(PropFuncArg argSubject, Node predicate,
+ PropFuncArg argObject, ExecutionContext execCxt) {
+ super.build(argSubject, predicate, argObject, execCxt);
+
+ if (!argSubject.isNode())
+ throw new QueryBuildException("Subject is not a single node: "
+ + argSubject);
+
+ if (argObject.isList()) {
+ List<Node> list = argObject.getArgList();
+ if (list.size() < 4)
+ throw new QueryBuildException("Not enough arguments in list");
+
+ if (list.size() > 5)
+ throw new QueryBuildException("Too many arguments in list : "
+ + list);
+ }
+ }
+
+ /** Deconstruct the node or list object argument and make a SpatialMatch */
+ @Override
+ protected SpatialMatch objectToStruct(PropFuncArg argObject) {
+
+ if (argObject.isNode()) {
+ log.warn("Object not a List: " + argObject);
+ return null;
+ }
+
+ List<Node> list = argObject.getArgList();
+
+ if (list.size() < 4 || list.size() > 5)
+ throw new SpatialIndexException("Change in object list size");
+
+ int idx = 0;
+
+ Node x = list.get(idx);
+ if (!x.isLiteral()) {
+ log.warn("Latitude 1 is not a literal " + list);
+ return null;
+ }
+ if (!SpatialValueUtil.isDecimal(x)) {
+ log.warn("Latitude 1 is not a decimal " + list);
+ return null;
+ }
+ Double latitude1 = Double.parseDouble(x.getLiteralLexicalForm());
+
+ idx++;
+
+ x = list.get(idx);
+ if (!x.isLiteral()) {
+ log.warn("Longitude 1 is not a literal " + list);
+ return null;
+ }
+ if (!SpatialValueUtil.isDecimal(x)) {
+ log.warn("Longitude 1 is not a decimal " + list);
+ return null;
+ }
+ Double longtitude1 = Double.parseDouble(x.getLiteralLexicalForm());
+
+ idx++;
+
+ x = list.get(idx);
+ if (!x.isLiteral()) {
+ log.warn("Latitude 2 is not a literal " + list);
+ return null;
+ }
+ if (!SpatialValueUtil.isDecimal(x)) {
+ log.warn("Latitude 2 is not a decimal " + list);
+ return null;
+ }
+ Double latitude2 = Double.parseDouble(x.getLiteralLexicalForm());
+
+ idx++;
+
+ x = list.get(idx);
+ if (!x.isLiteral()) {
+ log.warn("Longitude 2 is not a literal " + list);
+ return null;
+ }
+ if (!SpatialValueUtil.isDecimal(x)) {
+ log.warn("Longitude 2 is not a decimal " + list);
+ return null;
+ }
+ Double longtitude2 = Double.parseDouble(x.getLiteralLexicalForm());
+
+ idx++;
+ int limit =-1;
+
+ if (idx < list.size()) {
+ x = list.get(idx);
+
+ if (!x.isLiteral()) {
+ log.warn("Limit is not a literal " + list);
+ return null;
+ }
+
+ LiteralLabel lit = x.getLiteral();
+
+ if (!XSDDatatype.XSDinteger.isValidLiteral(lit)) {
+ log.warn("Limit is not an integer " + list);
+ return null;
+ }
+
+ int v = NodeFactoryExtra.nodeToInt(x);
+ limit = (v < 0) ? -1 : v;
+
+ idx++;
+ if (idx < list.size()) {
+ log.warn("Limit is not the last parameter " + list);
+ return null;
+ }
+ }
+
+ SpatialMatch match = new SpatialMatch(latitude1, longtitude1,
+ latitude2, longtitude2, limit, getSpatialOperation());
+
+ if (log.isDebugEnabled())
+ log.debug("Trying SpatialMatch: " + match.toString());
+ return match;
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/EastPF.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/EastPF.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/EastPF.java
index 6c40cfa..96e5519 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/EastPF.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/EastPF.java
@@ -1,44 +1,44 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial.pfunction.library;
-
-import org.apache.jena.query.spatial.SpatialQuery;
-import org.apache.jena.query.spatial.pfunction.DirectionWithPointPFBase;
-import org.apache.jena.query.spatial.pfunction.SpatialMatch;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class EastPF extends DirectionWithPointPFBase {
-
- private static Logger log = LoggerFactory.getLogger(EastPF.class);
-
- public EastPF() {
- // TODO Auto-generated constructor stub
- }
-
- /** Deconstruct the node or list object argument and make a SpatialMatch */
- @Override
- protected SpatialMatch getSpatialMatch(Double latitude, Double longitude, int limit) {
- SpatialMatch match = new SpatialMatch(SpatialQuery.ctx.getWorldBounds().getMinY(),
- longitude, SpatialQuery.ctx.getWorldBounds().getMaxY(), SpatialQuery.ctx.getWorldBounds()
- .getMaxX(), limit, getSpatialOperation());
- return match;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial.pfunction.library;
+
+import org.apache.jena.query.spatial.SpatialQuery;
+import org.apache.jena.query.spatial.pfunction.DirectionWithPointPFBase;
+import org.apache.jena.query.spatial.pfunction.SpatialMatch;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class EastPF extends DirectionWithPointPFBase {
+
+ private static Logger log = LoggerFactory.getLogger(EastPF.class);
+
+ public EastPF() {
+ // TODO Auto-generated constructor stub
+ }
+
+ /** Deconstruct the node or list object argument and make a SpatialMatch */
+ @Override
+ protected SpatialMatch getSpatialMatch(Double latitude, Double longitude, int limit) {
+ SpatialMatch match = new SpatialMatch(SpatialQuery.ctx.getWorldBounds().getMinY(),
+ longitude, SpatialQuery.ctx.getWorldBounds().getMaxY(), SpatialQuery.ctx.getWorldBounds()
+ .getMaxX(), limit, getSpatialOperation());
+ return match;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IntersectsBoxPF.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IntersectsBoxPF.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IntersectsBoxPF.java
index d71f050..8d6b426 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IntersectsBoxPF.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IntersectsBoxPF.java
@@ -1,35 +1,35 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial.pfunction.library;
-
-import org.apache.jena.query.spatial.pfunction.SpatialOperationWithBoxPFBase;
-import org.apache.lucene.spatial.query.SpatialOperation;
-
-public class IntersectsBoxPF extends SpatialOperationWithBoxPFBase {
-
- public IntersectsBoxPF() {
- }
-
-
- @Override
- protected SpatialOperation getSpatialOperation() {
- return SpatialOperation.Intersects;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial.pfunction.library;
+
+import org.apache.jena.query.spatial.pfunction.SpatialOperationWithBoxPFBase;
+import org.apache.lucene.spatial.query.SpatialOperation;
+
+public class IntersectsBoxPF extends SpatialOperationWithBoxPFBase {
+
+ public IntersectsBoxPF() {
+ }
+
+
+ @Override
+ protected SpatialOperation getSpatialOperation() {
+ return SpatialOperation.Intersects;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IsNearByPF.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IsNearByPF.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IsNearByPF.java
index a5a44d4..75df1d1 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IsNearByPF.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IsNearByPF.java
@@ -1,23 +1,23 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial.pfunction.library;
-
-public class IsNearByPF extends IsWithinCirclePF {
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial.pfunction.library;
+
+public class IsNearByPF extends IsWithinCirclePF {
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IsWithinBoxPF.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IsWithinBoxPF.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IsWithinBoxPF.java
index 078bd10..048d0b2 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IsWithinBoxPF.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IsWithinBoxPF.java
@@ -1,34 +1,34 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial.pfunction.library;
-
-import org.apache.jena.query.spatial.pfunction.SpatialOperationWithBoxPFBase;
-import org.apache.lucene.spatial.query.SpatialOperation;
-
-public class IsWithinBoxPF extends SpatialOperationWithBoxPFBase {
-
- public IsWithinBoxPF() {
- }
-
- @Override
- protected SpatialOperation getSpatialOperation() {
- return SpatialOperation.IsWithin;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial.pfunction.library;
+
+import org.apache.jena.query.spatial.pfunction.SpatialOperationWithBoxPFBase;
+import org.apache.lucene.spatial.query.SpatialOperation;
+
+public class IsWithinBoxPF extends SpatialOperationWithBoxPFBase {
+
+ public IsWithinBoxPF() {
+ }
+
+ @Override
+ protected SpatialOperation getSpatialOperation() {
+ return SpatialOperation.IsWithin;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IsWithinCirclePF.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IsWithinCirclePF.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IsWithinCirclePF.java
index c10c4e2..322e442 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IsWithinCirclePF.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/IsWithinCirclePF.java
@@ -1,35 +1,35 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial.pfunction.library;
-
-import org.apache.jena.query.spatial.pfunction.SpatialOperationWithCircleBase;
-import org.apache.lucene.spatial.query.SpatialOperation;
-
-public class IsWithinCirclePF extends SpatialOperationWithCircleBase {
-
- public IsWithinCirclePF() {
- // TODO Auto-generated constructor stub
- }
-
- @Override
- protected SpatialOperation getSpatialOperation() {
- return SpatialOperation.IsWithin;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial.pfunction.library;
+
+import org.apache.jena.query.spatial.pfunction.SpatialOperationWithCircleBase;
+import org.apache.lucene.spatial.query.SpatialOperation;
+
+public class IsWithinCirclePF extends SpatialOperationWithCircleBase {
+
+ public IsWithinCirclePF() {
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected SpatialOperation getSpatialOperation() {
+ return SpatialOperation.IsWithin;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/NorthPF.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/NorthPF.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/NorthPF.java
index e2cfbb1..9576fe3 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/NorthPF.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/NorthPF.java
@@ -1,45 +1,45 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial.pfunction.library;
-
-import org.apache.jena.query.spatial.SpatialQuery;
-import org.apache.jena.query.spatial.pfunction.DirectionWithPointPFBase;
-import org.apache.jena.query.spatial.pfunction.SpatialMatch;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class NorthPF extends DirectionWithPointPFBase {
-
- private static Logger log = LoggerFactory.getLogger(NorthPF.class);
-
- public NorthPF() {
- // TODO Auto-generated constructor stub
- }
-
- /** Deconstruct the node or list object argument and make a SpatialMatch */
- @Override
- protected SpatialMatch getSpatialMatch(Double latitude, Double longitude, int limit) {
- SpatialMatch match = new SpatialMatch(latitude, SpatialQuery.ctx
- .getWorldBounds().getMinX(), SpatialQuery.ctx.getWorldBounds()
- .getMaxY(), SpatialQuery.ctx.getWorldBounds().getMaxX(), limit,
- getSpatialOperation());
- return match;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial.pfunction.library;
+
+import org.apache.jena.query.spatial.SpatialQuery;
+import org.apache.jena.query.spatial.pfunction.DirectionWithPointPFBase;
+import org.apache.jena.query.spatial.pfunction.SpatialMatch;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class NorthPF extends DirectionWithPointPFBase {
+
+ private static Logger log = LoggerFactory.getLogger(NorthPF.class);
+
+ public NorthPF() {
+ // TODO Auto-generated constructor stub
+ }
+
+ /** Deconstruct the node or list object argument and make a SpatialMatch */
+ @Override
+ protected SpatialMatch getSpatialMatch(Double latitude, Double longitude, int limit) {
+ SpatialMatch match = new SpatialMatch(latitude, SpatialQuery.ctx
+ .getWorldBounds().getMinX(), SpatialQuery.ctx.getWorldBounds()
+ .getMaxY(), SpatialQuery.ctx.getWorldBounds().getMaxX(), limit,
+ getSpatialOperation());
+ return match;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/SouthPF.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/SouthPF.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/SouthPF.java
index 431531b..cf8a467 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/SouthPF.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/SouthPF.java
@@ -1,43 +1,43 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial.pfunction.library;
-
-import org.apache.jena.query.spatial.SpatialQuery;
-import org.apache.jena.query.spatial.pfunction.DirectionWithPointPFBase;
-import org.apache.jena.query.spatial.pfunction.SpatialMatch;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class SouthPF extends DirectionWithPointPFBase {
-
- private static Logger log = LoggerFactory.getLogger(SouthPF.class);
-
- public SouthPF() {
- // TODO Auto-generated constructor stub
- }
-
- /** Deconstruct the node or list object argument and make a SpatialMatch */
- @Override
- protected SpatialMatch getSpatialMatch(Double latitude, Double longitude, int limit) { SpatialMatch match = new SpatialMatch(SpatialQuery.ctx.getWorldBounds().getMinY(),
- SpatialQuery.ctx.getWorldBounds().getMinX(), latitude, SpatialQuery.ctx.getWorldBounds()
- .getMaxX(), limit, getSpatialOperation());
- return match;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial.pfunction.library;
+
+import org.apache.jena.query.spatial.SpatialQuery;
+import org.apache.jena.query.spatial.pfunction.DirectionWithPointPFBase;
+import org.apache.jena.query.spatial.pfunction.SpatialMatch;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class SouthPF extends DirectionWithPointPFBase {
+
+ private static Logger log = LoggerFactory.getLogger(SouthPF.class);
+
+ public SouthPF() {
+ // TODO Auto-generated constructor stub
+ }
+
+ /** Deconstruct the node or list object argument and make a SpatialMatch */
+ @Override
+ protected SpatialMatch getSpatialMatch(Double latitude, Double longitude, int limit) { SpatialMatch match = new SpatialMatch(SpatialQuery.ctx.getWorldBounds().getMinY(),
+ SpatialQuery.ctx.getWorldBounds().getMinX(), latitude, SpatialQuery.ctx.getWorldBounds()
+ .getMaxX(), limit, getSpatialOperation());
+ return match;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/WestPF.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/WestPF.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/WestPF.java
index 9ddf6b7..5b3f568 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/WestPF.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/library/WestPF.java
@@ -1,44 +1,44 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial.pfunction.library;
-
-import org.apache.jena.query.spatial.SpatialQuery;
-import org.apache.jena.query.spatial.pfunction.DirectionWithPointPFBase;
-import org.apache.jena.query.spatial.pfunction.SpatialMatch;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class WestPF extends DirectionWithPointPFBase {
-
- private static Logger log = LoggerFactory.getLogger(WestPF.class);
-
- public WestPF() {
- // TODO Auto-generated constructor stub
- }
-
- /** Deconstruct the node or list object argument and make a SpatialMatch */
- @Override
- protected SpatialMatch getSpatialMatch(Double latitude, Double longitude, int limit) {
- SpatialMatch match = new SpatialMatch(SpatialQuery.ctx.getWorldBounds().getMinY(),
- SpatialQuery.ctx.getWorldBounds().getMinX(), SpatialQuery.ctx.getWorldBounds().getMaxY(),
- longitude, limit, getSpatialOperation());
- return match;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial.pfunction.library;
+
+import org.apache.jena.query.spatial.SpatialQuery;
+import org.apache.jena.query.spatial.pfunction.DirectionWithPointPFBase;
+import org.apache.jena.query.spatial.pfunction.SpatialMatch;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class WestPF extends DirectionWithPointPFBase {
+
+ private static Logger log = LoggerFactory.getLogger(WestPF.class);
+
+ public WestPF() {
+ // TODO Auto-generated constructor stub
+ }
+
+ /** Deconstruct the node or list object argument and make a SpatialMatch */
+ @Override
+ protected SpatialMatch getSpatialMatch(Double latitude, Double longitude, int limit) {
+ SpatialMatch match = new SpatialMatch(SpatialQuery.ctx.getWorldBounds().getMinY(),
+ SpatialQuery.ctx.getWorldBounds().getMinX(), SpatialQuery.ctx.getWorldBounds().getMaxY(),
+ longitude, limit, getSpatialOperation());
+ return match;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/test/java/org/apache/jena/query/spatial/AbstractTestIndexingSpatialData.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/test/java/org/apache/jena/query/spatial/AbstractTestIndexingSpatialData.java b/jena-spatial/src/test/java/org/apache/jena/query/spatial/AbstractTestIndexingSpatialData.java
index 3fdeaca..0780961 100644
--- a/jena-spatial/src/test/java/org/apache/jena/query/spatial/AbstractTestIndexingSpatialData.java
+++ b/jena-spatial/src/test/java/org/apache/jena/query/spatial/AbstractTestIndexingSpatialData.java
@@ -1,93 +1,93 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.jena.atlas.lib.StrUtils;
-import org.junit.Test;
-import static org.junit.Assert.fail;
-
-import com.spatial4j.core.exception.InvalidShapeException;
-
-public class AbstractTestIndexingSpatialData extends
- AbstractTestDatasetWithSpatialIndex {
-
- @Test
- public void testIndexingStringLiteral() {
- final String turtle = StrUtils.strjoinNL(TURTLE_PROLOG, "<"
- + RESOURCE_BASE + "testIndexingStringLiteral>",
- " geo:lat '51.3827' ;", " geo:long '-2.71909' ", ".");
- String queryString = StrUtils
- .strjoinNL(
- QUERY_PROLOG,
- "SELECT ?s",
- "WHERE {",
- " ?s spatial:nearby (51.3000 -2.71000 100.0 'miles' -1) .",
- "}");
- Set<String> expectedURIs = (new HashSet<String>());
- expectedURIs
- .addAll(Arrays
- .asList((new String[] { "http://example.org/data/resource/testIndexingStringLiteral" })));
- doTestSearch(turtle, queryString, expectedURIs);
- }
-
- @Test
- public void testIndexingWKTLiteral() {
- boolean jts_context_ready = false;
- try {
- SpatialIndex index = (SpatialIndex) dataset.getContext().get(
- SpatialQuery.spatialIndex);
- index.getDocDef().setSpatialContextFactory(
- SpatialQuery.JTS_SPATIAL_CONTEXT_FACTORY_CLASS);
- jts_context_ready = true;
- }catch (NoClassDefFoundError e){
- //Log.warn(this, "JTS lib is not on the classpath!");
- }
-
- final String turtle = StrUtils
- .strjoinNL(
- TURTLE_PROLOG,
- "<" + RESOURCE_BASE + "testIndexingWKTLiteral>",
- " wkt:asWKT 'POINT(-1.74803 52.4539)'^^wkt:wktLiteral ",
- ".");
- String queryString = StrUtils
- .strjoinNL(
- QUERY_PROLOG,
- "SELECT ?s",
- "WHERE {",
- " ?s spatial:nearby (51.3000 -2.71000 100.0 'miles' -1) .",
- "}");
- Set<String> expectedURIs = (new HashSet<String>());
- expectedURIs
- .addAll(Arrays
- .asList((new String[] { "http://example.org/data/resource/testIndexingWKTLiteral" })));
-
- try {
- doTestSearch(turtle, queryString, expectedURIs);
- }catch (InvalidShapeException e){
- if (jts_context_ready){
- fail("The exception is not supposed to be thrown: "+ e.getMessage());
- }
- }
- }
-
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.jena.atlas.lib.StrUtils;
+import org.junit.Test;
+import static org.junit.Assert.fail;
+
+import com.spatial4j.core.exception.InvalidShapeException;
+
+public class AbstractTestIndexingSpatialData extends
+ AbstractTestDatasetWithSpatialIndex {
+
+ @Test
+ public void testIndexingStringLiteral() {
+ final String turtle = StrUtils.strjoinNL(TURTLE_PROLOG, "<"
+ + RESOURCE_BASE + "testIndexingStringLiteral>",
+ " geo:lat '51.3827' ;", " geo:long '-2.71909' ", ".");
+ String queryString = StrUtils
+ .strjoinNL(
+ QUERY_PROLOG,
+ "SELECT ?s",
+ "WHERE {",
+ " ?s spatial:nearby (51.3000 -2.71000 100.0 'miles' -1) .",
+ "}");
+ Set<String> expectedURIs = (new HashSet<String>());
+ expectedURIs
+ .addAll(Arrays
+ .asList((new String[] { "http://example.org/data/resource/testIndexingStringLiteral" })));
+ doTestSearch(turtle, queryString, expectedURIs);
+ }
+
+ @Test
+ public void testIndexingWKTLiteral() {
+ boolean jts_context_ready = false;
+ try {
+ SpatialIndex index = (SpatialIndex) dataset.getContext().get(
+ SpatialQuery.spatialIndex);
+ index.getDocDef().setSpatialContextFactory(
+ SpatialQuery.JTS_SPATIAL_CONTEXT_FACTORY_CLASS);
+ jts_context_ready = true;
+ }catch (NoClassDefFoundError e){
+ //Log.warn(this, "JTS lib is not on the classpath!");
+ }
+
+ final String turtle = StrUtils
+ .strjoinNL(
+ TURTLE_PROLOG,
+ "<" + RESOURCE_BASE + "testIndexingWKTLiteral>",
+ " wkt:asWKT 'POINT(-1.74803 52.4539)'^^wkt:wktLiteral ",
+ ".");
+ String queryString = StrUtils
+ .strjoinNL(
+ QUERY_PROLOG,
+ "SELECT ?s",
+ "WHERE {",
+ " ?s spatial:nearby (51.3000 -2.71000 100.0 'miles' -1) .",
+ "}");
+ Set<String> expectedURIs = (new HashSet<String>());
+ expectedURIs
+ .addAll(Arrays
+ .asList((new String[] { "http://example.org/data/resource/testIndexingWKTLiteral" })));
+
+ try {
+ doTestSearch(turtle, queryString, expectedURIs);
+ }catch (InvalidShapeException e){
+ if (jts_context_ready){
+ fail("The exception is not supposed to be thrown: "+ e.getMessage());
+ }
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/test/java/org/apache/jena/query/spatial/TestIndexingSpatialDataWithLucene.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/test/java/org/apache/jena/query/spatial/TestIndexingSpatialDataWithLucene.java b/jena-spatial/src/test/java/org/apache/jena/query/spatial/TestIndexingSpatialDataWithLucene.java
index af3ad7a..1a1a2bf 100644
--- a/jena-spatial/src/test/java/org/apache/jena/query/spatial/TestIndexingSpatialDataWithLucene.java
+++ b/jena-spatial/src/test/java/org/apache/jena/query/spatial/TestIndexingSpatialDataWithLucene.java
@@ -1,42 +1,42 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial;
-
-import java.io.File;
-import java.io.IOException;
-import org.junit.After;
-import org.junit.Before;
-
-public class TestIndexingSpatialDataWithLucene extends
- AbstractTestIndexingSpatialData {
- private static final String INDEX_PATH = "target/test/IsNearByPFWithLuceneSpatialIndex";
- private static final File INDEX_DIR = new File(INDEX_PATH);
-
- @Before
- public void init() throws IOException {
- dataset = SpatialSearchUtil
- .initInMemoryDatasetWithLuceneSpatitalIndex(INDEX_DIR);
- }
-
- @After
- public void destroy() {
- SpatialSearchUtil.deleteOldFiles(INDEX_DIR);
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial;
+
+import java.io.File;
+import java.io.IOException;
+import org.junit.After;
+import org.junit.Before;
+
+public class TestIndexingSpatialDataWithLucene extends
+ AbstractTestIndexingSpatialData {
+ private static final String INDEX_PATH = "target/test/IsNearByPFWithLuceneSpatialIndex";
+ private static final File INDEX_DIR = new File(INDEX_PATH);
+
+ @Before
+ public void init() throws IOException {
+ dataset = SpatialSearchUtil
+ .initInMemoryDatasetWithLuceneSpatitalIndex(INDEX_DIR);
+ }
+
+ @After
+ public void destroy() {
+ SpatialSearchUtil.deleteOldFiles(INDEX_DIR);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/test/java/org/apache/jena/query/spatial/TestIndexingSpatialDataWithSolr.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/test/java/org/apache/jena/query/spatial/TestIndexingSpatialDataWithSolr.java b/jena-spatial/src/test/java/org/apache/jena/query/spatial/TestIndexingSpatialDataWithSolr.java
index d3f70cd..3a94f55 100644
--- a/jena-spatial/src/test/java/org/apache/jena/query/spatial/TestIndexingSpatialDataWithSolr.java
+++ b/jena-spatial/src/test/java/org/apache/jena/query/spatial/TestIndexingSpatialDataWithSolr.java
@@ -1,40 +1,40 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial;
-
-import org.junit.After;
-import org.junit.Before;
-
-public class TestIndexingSpatialDataWithSolr extends
- AbstractTestIndexingSpatialData {
-
- @Before
- public void init() {
- dataset = SpatialSearchUtil.initInMemoryDatasetWithSolrSpatitalIndex();
- }
-
- @After
- public void destroy() {
- SpatialIndexSolr index = (SpatialIndexSolr) dataset.getContext().get(
- SpatialQuery.spatialIndex);
- index.getServer().shutdown();
- SpatialSearchUtil.deleteOldSolrDataDir();
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial;
+
+import org.junit.After;
+import org.junit.Before;
+
+public class TestIndexingSpatialDataWithSolr extends
+ AbstractTestIndexingSpatialData {
+
+ @Before
+ public void init() {
+ dataset = SpatialSearchUtil.initInMemoryDatasetWithSolrSpatitalIndex();
+ }
+
+ @After
+ public void destroy() {
+ SpatialIndexSolr index = (SpatialIndexSolr) dataset.getContext().get(
+ SpatialQuery.spatialIndex);
+ index.getServer().shutdown();
+ SpatialSearchUtil.deleteOldSolrDataDir();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/3d70d735/jena-spatial/src/test/java/org/apache/jena/query/spatial/TestSpatialPredicatePairValue.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/test/java/org/apache/jena/query/spatial/TestSpatialPredicatePairValue.java b/jena-spatial/src/test/java/org/apache/jena/query/spatial/TestSpatialPredicatePairValue.java
index e98f459..6e01f71 100644
--- a/jena-spatial/src/test/java/org/apache/jena/query/spatial/TestSpatialPredicatePairValue.java
+++ b/jena-spatial/src/test/java/org/apache/jena/query/spatial/TestSpatialPredicatePairValue.java
@@ -1,59 +1,59 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.spatial;
-
-import junit.framework.TestCase;
-
-import org.junit.Test;
-
-public class TestSpatialPredicatePairValue {
-
- @Test public void testEqualsAndHashcode(){
- SpatialPredicatePair pair1 = new SpatialPredicatePair(
- EntityDefinition.geo_latitude.asNode(),
- EntityDefinition.geo_longitude.asNode());
- SpatialPredicatePair pair2 = new SpatialPredicatePair(
- EntityDefinition.geo_latitude.asNode(),
- EntityDefinition.geo_longitude.asNode());
- TestCase.assertTrue(pair1.equals(pair2));
- TestCase.assertTrue(pair1.hashCode() == pair2.hashCode());
-
- SpatialPredicatePairValue value1 = new SpatialPredicatePairValue(pair1);
- value1.setValue(EntityDefinition.geo_latitude.asNode(), 12.0);
- value1.setValue(EntityDefinition.geo_longitude.asNode(), 23.0);
-
- SpatialPredicatePairValue value2 = new SpatialPredicatePairValue(pair2);
- value2.setValue(EntityDefinition.geo_latitude.asNode(), 12.0);
- value2.setValue(EntityDefinition.geo_longitude.asNode(), 23.0);
-
- TestCase.assertTrue(value1.equals(value2));
- TestCase.assertTrue(value1.hashCode() == value2.hashCode());
-
- value1.setValue(EntityDefinition.geo_latitude.asNode(),null);
- value2.setValue(EntityDefinition.geo_latitude.asNode(),null);
-
- TestCase.assertTrue(value1.equals(value2));
- TestCase.assertTrue(value1.hashCode() == value2.hashCode());
-
- value2.setValue(EntityDefinition.geo_latitude.asNode(),23.0);
- TestCase.assertFalse(value1.equals(value2));
- TestCase.assertFalse(value1.hashCode() == value2.hashCode());
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.spatial;
+
+import junit.framework.TestCase;
+
+import org.junit.Test;
+
+public class TestSpatialPredicatePairValue {
+
+ @Test public void testEqualsAndHashcode(){
+ SpatialPredicatePair pair1 = new SpatialPredicatePair(
+ EntityDefinition.geo_latitude.asNode(),
+ EntityDefinition.geo_longitude.asNode());
+ SpatialPredicatePair pair2 = new SpatialPredicatePair(
+ EntityDefinition.geo_latitude.asNode(),
+ EntityDefinition.geo_longitude.asNode());
+ TestCase.assertTrue(pair1.equals(pair2));
+ TestCase.assertTrue(pair1.hashCode() == pair2.hashCode());
+
+ SpatialPredicatePairValue value1 = new SpatialPredicatePairValue(pair1);
+ value1.setValue(EntityDefinition.geo_latitude.asNode(), 12.0);
+ value1.setValue(EntityDefinition.geo_longitude.asNode(), 23.0);
+
+ SpatialPredicatePairValue value2 = new SpatialPredicatePairValue(pair2);
+ value2.setValue(EntityDefinition.geo_latitude.asNode(), 12.0);
+ value2.setValue(EntityDefinition.geo_longitude.asNode(), 23.0);
+
+ TestCase.assertTrue(value1.equals(value2));
+ TestCase.assertTrue(value1.hashCode() == value2.hashCode());
+
+ value1.setValue(EntityDefinition.geo_latitude.asNode(),null);
+ value2.setValue(EntityDefinition.geo_latitude.asNode(),null);
+
+ TestCase.assertTrue(value1.equals(value2));
+ TestCase.assertTrue(value1.hashCode() == value2.hashCode());
+
+ value2.setValue(EntityDefinition.geo_latitude.asNode(),23.0);
+ TestCase.assertFalse(value1.equals(value2));
+ TestCase.assertFalse(value1.hashCode() == value2.hashCode());
+ }
+
+}