1 package geo.google.datamodel; 2 3 4 import java.io.Serializable; 5 6 import org.apache.commons.lang.StringUtils; 7 import org.apache.commons.lang.builder.EqualsBuilder; 8 import org.apache.commons.lang.builder.HashCodeBuilder; 9 import org.apache.commons.lang.builder.ToStringBuilder; 10 import org.apache.commons.lang.builder.ToStringStyle; 11 /*** 12 * A simple data class for US address info. 13 * @see GeoAddress 14 * 15 * @author jliang 16 * 17 */ 18 public class GeoUsAddress implements Serializable{ 19 private static final long serialVersionUID = 2701695885973529100L; 20 private String _addressLine1 = StringUtils.EMPTY; 21 private String _addressLine2 = StringUtils.EMPTY; 22 private String _city = StringUtils.EMPTY; 23 private String _county = StringUtils.EMPTY; 24 private String _state = StringUtils.EMPTY; 25 private String _postalCode = StringUtils.EMPTY; 26 private String _country = StringUtils.EMPTY; 27 private GeoCoordinate _coordinate = new GeoCoordinate(); 28 private GeoAddressAccuracy _accuracy = GeoAddressAccuracy.UNKNOWN_LOCATION; 29 30 public GeoUsAddress() { 31 } 32 33 public GeoUsAddress(String addressLine1, String addressLine2, String city, 34 String county, String state, String postalCode, String country, 35 GeoCoordinate coordinate, GeoAddressAccuracy accuracy) { 36 _addressLine1 = addressLine1; 37 _addressLine2 = addressLine2; 38 _city = city; 39 _county = county; 40 _state = state; 41 _postalCode = postalCode; 42 _country = country; 43 _coordinate = coordinate; 44 } 45 46 public String getAddressLine1() { 47 return _addressLine1; 48 } 49 50 public void setAddressLine1(String addressLine1) { 51 _addressLine1 = addressLine1; 52 } 53 54 public String getAddressLine2() { 55 return _addressLine2; 56 } 57 58 public void setAddressLine2(String addressLine2) { 59 _addressLine2 = addressLine2; 60 } 61 62 public String getCity() { 63 return _city; 64 } 65 66 public void setCity(String city) { 67 _city = city; 68 } 69 70 public String getCounty() { 71 return _county; 72 } 73 74 public void setCounty(String county) { 75 _county = county; 76 } 77 78 public String getPostalCode() { 79 return _postalCode; 80 } 81 82 public void setPostalCode(String postalCode) { 83 _postalCode = postalCode; 84 } 85 86 public String getState() { 87 return _state; 88 } 89 90 public void setState(String state) { 91 _state = state; 92 } 93 public String getCountry() { 94 return _country; 95 } 96 97 public void setCountry(String country) { 98 _country = country; 99 } 100 101 public GeoCoordinate getCoordinate() { 102 return _coordinate; 103 } 104 105 public void setCoordinate(GeoCoordinate coordinate) { 106 _coordinate = coordinate; 107 } 108 109 public GeoAddressAccuracy getAccuracy() { 110 return _accuracy; 111 } 112 113 public void setAccuracy(GeoAddressAccuracy accuracy) { 114 _accuracy = accuracy; 115 } 116 117 @Override 118 public boolean equals(Object o) { 119 return EqualsBuilder.reflectionEquals(this, o); 120 } 121 122 @Override 123 public int hashCode() { 124 return HashCodeBuilder.reflectionHashCode(this); 125 } 126 127 @Override 128 public String toString() { 129 return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE); 130 } 131 132 /*** 133 * Return a single line representation of this address in the format of: 134 * <pre> 135 * <addressLine1>, <city>, <state> <postalCode> 136 * </pre> 137 * The standardizer will send this address line string to google's geocode service. 138 * Extend this class and override this method if it needs to be encoded differently. 139 */ 140 public String toAddressLine(){ 141 StringBuilder sb = new StringBuilder(); 142 sb.append(_addressLine1) 143 .append(", ") 144 .append(_city) 145 .append(", ") 146 .append(_state) 147 .append(" ") 148 .append(_postalCode); 149 return sb.toString(); 150 } 151 152 }