diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2016-12-31 11:35:58 +1300 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2016-12-31 11:35:58 +1300 |
commit | 68569c05fb4be377baed5cd0ecb1b75176d24f01 (patch) | |
tree | 2b50b96a047e8626d33121c7e6fcd0a102f61c77 /src/org/traccar/geocoder/AddressFormat.java | |
parent | e8cd15c0fb192f635808adfde4e8614e6b4b3c3f (diff) | |
download | trackermap-server-68569c05fb4be377baed5cd0ecb1b75176d24f01.tar.gz trackermap-server-68569c05fb4be377baed5cd0ecb1b75176d24f01.tar.bz2 trackermap-server-68569c05fb4be377baed5cd0ecb1b75176d24f01.zip |
Rename geocode package to geocoder
Diffstat (limited to 'src/org/traccar/geocoder/AddressFormat.java')
-rw-r--r-- | src/org/traccar/geocoder/AddressFormat.java | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/org/traccar/geocoder/AddressFormat.java b/src/org/traccar/geocoder/AddressFormat.java new file mode 100644 index 000000000..0800d6dcc --- /dev/null +++ b/src/org/traccar/geocoder/AddressFormat.java @@ -0,0 +1,80 @@ +/* + * Copyright 2015 Anton Tananaev (anton@traccar.org) + * + * Licensed 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.traccar.geocoder; + +import java.text.FieldPosition; +import java.text.Format; +import java.text.ParsePosition; + +/** + * Available parameters: + * + * %p - postcode + * %c - country + * %s - state + * %d - district + * %t - settlement (town) + * %u - suburb + * %r - street (road) + * %h - house + * + */ +public class AddressFormat extends Format { + + private final String format; + + public AddressFormat() { + this("%h %r, %t, %s, %c"); + } + + public AddressFormat(String format) { + this.format = format; + } + + private static String replace(String s, String key, String value) { + if (value != null) { + s = s.replace(key, value); + } else { + s = s.replaceAll("[, ]*" + key, ""); + } + return s; + } + + @Override + public StringBuffer format(Object o, StringBuffer stringBuffer, FieldPosition fieldPosition) { + Address address = (Address) o; + String result = format; + + result = replace(result, "%p", address.getPostcode()); + result = replace(result, "%c", address.getCountry()); + result = replace(result, "%s", address.getState()); + result = replace(result, "%d", address.getDistrict()); + result = replace(result, "%t", address.getSettlement()); + result = replace(result, "%u", address.getSuburb()); + result = replace(result, "%r", address.getStreet()); + result = replace(result, "%h", address.getHouse()); + + result = result.replaceAll("^[, ]*", ""); + + return stringBuffer.append(result); + } + + @Override + public Address parseObject(String s, ParsePosition parsePosition) { + throw new UnsupportedOperationException(); + } + +} |