no.nav.sbl.soknadsosialhjelp.soknad.adresse.JsonAdresse Maven / Gradle / Ivy
package no.nav.sbl.soknadsosialhjelp.soknad.adresse;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.annotation.JsonValue;
import no.nav.sbl.soknadsosialhjelp.soknad.common.JsonKilde;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
/**
* Angir en adresse.
*
*
*
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"kilde",
"type"
})
public class JsonAdresse {
/**
* Kilden for dataene.
*
* "bruker" når data kommer fra en bruker, "system" når data kommer fra et register og "utdatert" hvis data ikke lenger er relevant (og da ikke lenger kan vises saksbehandler).
* (Required)
*
*/
@JsonProperty("kilde")
@JsonPropertyDescription("\"bruker\" n\u00e5r data kommer fra en bruker, \"system\" n\u00e5r data kommer fra et register og \"utdatert\" hvis data ikke lenger er relevant (og da ikke lenger kan vises saksbehandler).")
private JsonKilde kilde;
/**
* Angir adressetypen og dermed hvilke felter som er satt.
*
* Eventuelle nye adressetyper vil enten bli lagt til som en ny major-version eller som nye felt under søknaden (for eksempel "folkeregistrertAdresseV2").
* (Required)
*
*/
@JsonProperty("type")
@JsonPropertyDescription("Eventuelle nye adressetyper vil enten bli lagt til som en ny major-version eller som nye felt under s\u00f8knaden (for eksempel \"folkeregistrertAdresseV2\").")
private JsonAdresse.Type type;
@JsonIgnore
private Map additionalProperties = new HashMap();
/**
* Kilden for dataene.
*
* "bruker" når data kommer fra en bruker, "system" når data kommer fra et register og "utdatert" hvis data ikke lenger er relevant (og da ikke lenger kan vises saksbehandler).
* (Required)
*
*/
@JsonProperty("kilde")
public JsonKilde getKilde() {
return kilde;
}
/**
* Kilden for dataene.
*
* "bruker" når data kommer fra en bruker, "system" når data kommer fra et register og "utdatert" hvis data ikke lenger er relevant (og da ikke lenger kan vises saksbehandler).
* (Required)
*
*/
@JsonProperty("kilde")
public void setKilde(JsonKilde kilde) {
this.kilde = kilde;
}
public JsonAdresse withKilde(JsonKilde kilde) {
this.kilde = kilde;
return this;
}
/**
* Angir adressetypen og dermed hvilke felter som er satt.
*
* Eventuelle nye adressetyper vil enten bli lagt til som en ny major-version eller som nye felt under søknaden (for eksempel "folkeregistrertAdresseV2").
* (Required)
*
*/
@JsonProperty("type")
public JsonAdresse.Type getType() {
return type;
}
/**
* Angir adressetypen og dermed hvilke felter som er satt.
*
* Eventuelle nye adressetyper vil enten bli lagt til som en ny major-version eller som nye felt under søknaden (for eksempel "folkeregistrertAdresseV2").
* (Required)
*
*/
@JsonProperty("type")
public void setType(JsonAdresse.Type type) {
this.type = type;
}
public JsonAdresse withType(JsonAdresse.Type type) {
this.type = type;
return this;
}
@JsonAnyGetter
public Map getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
public JsonAdresse withAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
return this;
}
@Override
public String toString() {
return new ToStringBuilder(this).append("kilde", kilde).append("type", type).append("additionalProperties", additionalProperties).toString();
}
@Override
public int hashCode() {
return new HashCodeBuilder().append(kilde).append(additionalProperties).append(type).toHashCode();
}
@Override
public boolean equals(Object other) {
if (other == this) {
return true;
}
if ((other instanceof JsonAdresse) == false) {
return false;
}
JsonAdresse rhs = ((JsonAdresse) other);
return new EqualsBuilder().append(kilde, rhs.kilde).append(additionalProperties, rhs.additionalProperties).append(type, rhs.type).isEquals();
}
public enum Type {
GATEADRESSE("gateadresse"),
MATRIKKELADRESSE("matrikkeladresse"),
POSTBOKS("postboks"),
USTRUKTURERT("ustrukturert");
private final String value;
private final static Map CONSTANTS = new HashMap();
static {
for (JsonAdresse.Type c: values()) {
CONSTANTS.put(c.value, c);
}
}
private Type(String value) {
this.value = value;
}
@Override
public String toString() {
return this.value;
}
@JsonValue
public String value() {
return this.value;
}
@JsonCreator
public static JsonAdresse.Type fromValue(String value) {
JsonAdresse.Type constant = CONSTANTS.get(value);
if (constant == null) {
throw new IllegalArgumentException(value);
} else {
return constant;
}
}
}
}