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()); + } + +}
