Last active
February 28, 2018 07:06
-
-
Save andrewmunn/e5adca62f19d0929e19229e51dda980e to your computer and use it in GitHub Desktop.
PostalAddress in Java using AutoValue
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Encapsulates a postal address. | |
*/ | |
@AutoValue | |
public abstract class PostalAddress { | |
public static Builder builder() { | |
return new AutoValue_PostalAddress.Builder(); | |
} | |
public @Nullable abstract String getName(); | |
public abstract String getStreet1(); | |
public @Nullable abstract String getStreet2(); | |
public @Nullable abstract String getStreet3(); | |
public @Nullable abstract String getStreet4(); | |
public abstract String getCity(); | |
public abstract String getState(); | |
public abstract String getPostalCode(); | |
public abstract Builder toBuilder(); | |
public String toSingleLineStringForDisplay() { | |
StringBuilder sb = new StringBuilder(); | |
sb.append(getStreet1()).append(", "); | |
if (getStreet2() != null) { | |
sb.append(getStreet2()).append(", "); | |
} | |
if (getStreet3() != null) { | |
sb.append(getStreet3()).append(", "); | |
} | |
if (getStreet4() != null) { | |
sb.append(getStreet4()).append(", "); | |
} | |
sb.append(getCity()).append(", ") | |
.append(getState()).append(" ") | |
.append(getPostalCode()); | |
return sb.toString(); | |
} | |
@AutoValue.Builder | |
public abstract static class Builder { | |
public abstract Builder setName(@Nullable String value); | |
public abstract Builder setStreet1(String value); | |
public abstract Builder setStreet2(@Nullable String value); | |
public abstract Builder setStreet3(@Nullable String value); | |
public abstract Builder setStreet4(@Nullable String value); | |
public abstract Builder setCity(String value); | |
public abstract Builder setState(String value); | |
public abstract Builder setPostalCode(String value); | |
abstract PostalAddress build(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment