AbstractOverpassQuery() { this(new OverpassQueryBuilderImpl()); }
@Override public OverpassQueryBuilder equals(String name, String value) { return paramRel(name, "=", value); }
@Override public OverpassQueryBuilder around(double radius, double lat, double lon) { return append( String.format( LOCALE, "(around:%s,%s,%s)", radius, lat, lon ) ); }
@Override public OverpassQueryBuilder around(double radius) { return append( String.format( LOCALE, "(around:%s)", radius ) ); }
@Override public OverpassQueryBuilder regexMatches(String name, String value) { return paramRel(name, "~", value); }
@Before public void setUp() throws Exception { queryBuilder = new OverpassQueryBuilderImpl(); }
@Override public OverpassQueryBuilder boundingBox(double lat1, double lon1, double lat2, double lon2) { return append( String.format( LOCALE, "(%s,%s,%s,%s)", lat1, lon1, lat2, lon2 ) ); }
@Override public OverpassQueryBuilder setting(String name, String value) { return paramRel(name, ":", value, false); }
private OverpassQueryBuilder paramRel(String name, String rel, String value, boolean quoteName) { String quotedValue = value.isEmpty() ? "" : String.format("\"%s\"", value); String pattern = quoteName ? "[\"%s\"%s%s]" : "[%s%s%s]"; return append( String.format( LOCALE, pattern, name, rel, quotedValue ) ); }
@Override public OverpassQueryBuilder standaloneParam(String name) { return paramRel(name, "", ""); }
@Override public OverpassQueryBuilder notEquals(String name, String value) { return paramRel(name, "!=", value); }
@Override public OverpassQueryBuilder clause(String name, String value) { return paramRel(name, ":", value); }
@Override public OverpassQueryBuilder regexDoesntMatch(String name, String value) { return paramRel(name, "!~", value); }
private OverpassQueryBuilder paramRel(String name, String rel, String value) { return paramRel(name, rel, value, true); }
@Override public OverpassQueryBuilder multipleValues(String name, Set<String> values) { StringBuilder joiner = new StringBuilder(); for (String value : values) { joiner.append(value); joiner.append("|"); } joiner.setLength(joiner.length() - 1); return paramRel(name, "~", joiner.toString()); }