com.evrythng.thng.resource.model.store.EmbeddedLocation Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of thng-resource-model Show documentation
Show all versions of thng-resource-model Show documentation
Models for REST resources representations.
/*
* (c) Copyright 2013 EVRYTHNG Ltd London / Zurich
* www.evrythng.com
*/
package com.evrythng.thng.resource.model.store;
import com.evrythng.commons.annotations.csv.CsvSerializer;
import com.evrythng.thng.resource.model.store.geojson.GeoJsonPoint;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.io.Serializable;
import java.util.Map;
/**
* Location to be used within a parent model.
*/
@CsvSerializer("toCsvString")
public class EmbeddedLocation implements Locatable, Serializable {
private static final long serialVersionUID = 3095613094764949496L;
private String place;
private Double latitude;
private Double longitude;
private GeoJsonPoint position;
private Map customFields;
public EmbeddedLocation() {
}
public EmbeddedLocation(final String place, final Double latitude, final Double longitude) {
this.latitude = latitude;
this.longitude = longitude;
this.setPosition(new GeoJsonPoint(latitude, longitude));
this.place = place;
}
@Override
public String getPlace() {
return place;
}
@Override
public void setPlace(final String place) {
this.place = place;
}
/**
* TODO For API backward compatibility. Once compatibility is not needed
* anymore, use {@link JsonIgnore}.
*/
@Override
public Double getLatitude() {
return latitude;
}
/**
* TODO For API backward compatibility. Once compatibility is not needed
* anymore, use {@link JsonIgnore}.
*/
@Override
public void setLatitude(final Double latitude) {
this.latitude = latitude;
}
/**
* TODO For API backward compatibility. Once compatibility is not needed
* anymore, use {@link JsonIgnore}.
*/
@Override
public Double getLongitude() {
return longitude;
}
/**
* TODO For API backward compatibility. Once compatibility is not needed
* anymore, use {@link JsonIgnore}.
*/
@Override
public void setLongitude(final Double longitude) {
this.longitude = longitude;
}
@Override
public GeoJsonPoint getPosition() {
return position;
}
@JsonIgnore
public boolean hasPosition() {
return position != null && position.getLatitude() != null && position.getLongitude() != null;
}
@Override
public void setPosition(final GeoJsonPoint position) {
this.position = position;
}
@Override
public Map getCustomFields() {
return customFields;
}
@Override
public void setCustomFields(final Map customFields) {
this.customFields = customFields;
}
public static EmbeddedLocation copyFrom(final Locatable source) {
EmbeddedLocation loc = new EmbeddedLocation();
LocationHelper.copy(source, loc);
return loc;
}
@Override
public String toString() {
return "EmbeddedLocation [place=" + place + ", latitude=" + latitude + ", longitude=" + longitude + ", position=" + position + ", customFields=" + customFields + ", getPlace()=" + getPlace() + ", getLatitude()=" + getLatitude()
+ ", getLongitude()=" + getLongitude() + ", getPosition()=" + getPosition() + ", getCustomFields()=" + getCustomFields() + "]";
}
public String toCsvString() {
return String.format("(%.4f;%.4f)", getLatitude(), getLongitude());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy