Double resolveAsDouble(final TermNode termNode, final IBindingSet bs) { String s = resolveAsString(termNode, bs); if (s == null || s.isEmpty()) { return null; } try { return Double.valueOf(s); } catch (NumberFormatException e) { throw new GeoSpatialSearchException("Input could not be resolved as double value: '" + s + "'."); } }
Object[] resolveAsLongDoubleArr(final TermNode termNode, final ValueType[] valueTypes, final IBindingSet bs) { final String[] stringArr = resolveAsStringArr(termNode, bs);
final URI searchDatatypeUri = resolveSearchDatatype( this.searchDatatype, bs); final GeoFunction searchFunction = resolveAsGeoFunction( this.searchFunction, bs); final PointLatLon spatialCircleCenter = resolveAsPoint( this.spatialCircleCenter, bs); final Double spatialCircleRadius = resolveAsDouble( this.spatialCircleRadius, bs); final PointLatLon spatialRectangleUpperLeft = resolveAsPoint( this.spatialRectangleSouthWest, bs); final PointLatLon spatialRectangleLowerRight = resolveAsPoint( this.spatialRectangleNorthEast, bs); final UNITS spatialUnit = resolveAsSpatialDistanceUnit( this.spatialUnit, bs); final Long coordSystem = resolveAsLong(this.coordSystem, bs); final Long timeStart = resolveAsLong(this.timeStart, bs); final Long timeEnd = resolveAsLong(this.timeEnd, bs); final String[] customFields = resolveAsStringArr(this.customFields, bs); resolveAsLongDoubleArr(this.customFieldsLowerBounds, customFieldsVTs, bs); final Object[] customFieldsUpperBounds = resolveAsLongDoubleArr(this.customFieldsUpperBounds, customFieldsVTs, bs);
final URI searchDatatypeUri = resolveSearchDatatype( this.searchDatatype, bs); final GeoFunction searchFunction = resolveAsGeoFunction( this.searchFunction, bs); final PointLatLon spatialCircleCenter = resolveAsPoint( this.spatialCircleCenter, bs); final Double spatialCircleRadius = resolveAsDouble( this.spatialCircleRadius, bs); final PointLatLon spatialRectangleUpperLeft = resolveAsPoint( this.spatialRectangleSouthWest, bs); final PointLatLon spatialRectangleLowerRight = resolveAsPoint( this.spatialRectangleNorthEast, bs); final UNITS spatialUnit = resolveAsSpatialDistanceUnit( this.spatialUnit, bs); final Long coordSystem = resolveAsLong(this.coordSystem, bs); final Long timeStart = resolveAsLong(this.timeStart, bs); final Long timeEnd = resolveAsLong(this.timeEnd, bs); final String[] customFields = resolveAsStringArr(this.customFields, bs); resolveAsLongDoubleArr(this.customFieldsLowerBounds, customFieldsVTs, bs); final Object[] customFieldsUpperBounds = resolveAsLongDoubleArr(this.customFieldsUpperBounds, customFieldsVTs, bs);
new GeoSpatialServiceCallConfiguration( dflts, kb.getLexiconRelation().getLexiconConfiguration().getGeoSpatialConfig(), searchVar, sps);
new GeoSpatialServiceCallConfiguration( dflts, kb.getLexiconRelation().getLexiconConfiguration().getGeoSpatialConfig(), searchVar, sps);
PointLatLon resolveAsPoint(final TermNode termNode, final IBindingSet bs) { final Literal lit = resolveAsLiteral(termNode, bs); if (lit == null || lit.stringValue().isEmpty()) { return null;
PointLatLon resolveAsPoint(final TermNode termNode, final IBindingSet bs) { final Literal lit = resolveAsLiteral(termNode, bs); if (lit == null || lit.stringValue().isEmpty()) { return null;
Object[] resolveAsLongDoubleArr(final TermNode termNode, final ValueType[] valueTypes, final IBindingSet bs) { final String[] stringArr = resolveAsStringArr(termNode, bs);
GeoFunction resolveAsGeoFunction(final TermNode termNode, final IBindingSet bs) { if (termNode==null) { return GeoFunction.UNDEFINED; // no geo function defined } String geoFunctionStr = resolveAsString(termNode, bs); // try override with system default, if not set if (geoFunctionStr == null) { geoFunctionStr = defaults.getDefaultFunction(); } if (geoFunctionStr != null && !geoFunctionStr.isEmpty()) { final GeoFunction gf = GeoFunction.forName(geoFunctionStr); if (gf==null) { throw new GeoSpatialSearchException("Geo function '" + geoFunctionStr + "' not known."); } return gf; } return GeoFunction.UNDEFINED; // fallback }
UNITS resolveAsSpatialDistanceUnit(final TermNode termNode, final IBindingSet bs) { String spatialUnitStr = resolveAsString(termNode, bs); // try override with system default, if not set if (spatialUnitStr == null) { spatialUnitStr = defaults.getDefaultSpatialDistanceUnit(); } if (spatialUnitStr != null && !spatialUnitStr.isEmpty()) { final UNITS u = UNITS.valueOf(spatialUnitStr); if (u==null) { throw new GeoSpatialSearchException("Input could not be parsed as unit: '" + spatialUnitStr + "'."); } return u; } return GeoSpatial.Options.DEFAULT_GEO_SPATIAL_UNIT; // fallback }
GeoFunction resolveAsGeoFunction(final TermNode termNode, final IBindingSet bs) { if (termNode==null) { return GeoFunction.UNDEFINED; // no geo function defined } String geoFunctionStr = resolveAsString(termNode, bs); // try override with system default, if not set if (geoFunctionStr == null) { geoFunctionStr = defaults.getDefaultFunction(); } if (geoFunctionStr != null && !geoFunctionStr.isEmpty()) { final GeoFunction gf = GeoFunction.forName(geoFunctionStr); if (gf==null) { throw new GeoSpatialSearchException("Geo function '" + geoFunctionStr + "' not known."); } return gf; } return GeoFunction.UNDEFINED; // fallback }
UNITS resolveAsSpatialDistanceUnit(final TermNode termNode, final IBindingSet bs) { String spatialUnitStr = resolveAsString(termNode, bs); // try override with system default, if not set if (spatialUnitStr == null) { spatialUnitStr = defaults.getDefaultSpatialDistanceUnit(); } if (spatialUnitStr != null && !spatialUnitStr.isEmpty()) { final UNITS u = UNITS.valueOf(spatialUnitStr); if (u==null) { throw new GeoSpatialSearchException("Input could not be parsed as unit: '" + spatialUnitStr + "'."); } return u; } return GeoSpatial.Options.DEFAULT_GEO_SPATIAL_UNIT; // fallback }
String[] resolveAsStringArr(final TermNode termNode, final IBindingSet bs) { final String toSplit = resolveAsString(termNode, bs); if (toSplit==null) return new String[0]; return toSplit.split(GeoSpatial.CUSTOM_FIELDS_SEPARATOR); }
Long resolveAsLong(final TermNode termNode, final IBindingSet bs) { String s = resolveAsString(termNode, bs); if (s == null || s.isEmpty()) { return null; } try { return Long.valueOf(s); } catch (NumberFormatException e) { throw new GeoSpatialSearchException("Input could not be resolved as long value: '" + s + "'."); } }
String[] resolveAsStringArr(final TermNode termNode, final IBindingSet bs) { final String toSplit = resolveAsString(termNode, bs); if (toSplit==null) return new String[0]; return toSplit.split(GeoSpatial.CUSTOM_FIELDS_SEPARATOR); }
Long resolveAsLong(final TermNode termNode, final IBindingSet bs) { String s = resolveAsString(termNode, bs); if (s == null || s.isEmpty()) { return null; } try { return Long.valueOf(s); } catch (NumberFormatException e) { throw new GeoSpatialSearchException("Input could not be resolved as long value: '" + s + "'."); } }
Double resolveAsDouble(final TermNode termNode, final IBindingSet bs) { String s = resolveAsString(termNode, bs); if (s == null || s.isEmpty()) { return null; } try { return Double.valueOf(s); } catch (NumberFormatException e) { throw new GeoSpatialSearchException("Input could not be resolved as double value: '" + s + "'."); } }