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 + "'."); } }
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 + "'."); } }
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 + "'."); } }
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 + "'."); } }