package org.apereo.cas.authentication.adaptive.geo;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
/**
* This is {@link GeoLocationRequest}.
*
* @author Misagh Moayyed
* @since 5.0.0
*/
public class GeoLocationRequest {
private String latitude;
private String longitude;
private String accuracy;
private String timestamp;
public GeoLocationRequest() {
}
public GeoLocationRequest(final double latitude, final double longitude) {
this.latitude = String.valueOf(latitude);
this.longitude = String.valueOf(longitude);
}
public String getLatitude() {
return this.latitude;
}
public void setLatitude(final String latitude) {
this.latitude = latitude;
}
public String getLongitude() {
return this.longitude;
}
public void setLongitude(final String longitude) {
this.longitude = longitude;
}
public String getAccuracy() {
return this.accuracy;
}
public void setAccuracy(final String accuracy) {
this.accuracy = accuracy;
}
public String getTimestamp() {
return this.timestamp;
}
public void setTimestamp(final String timestamp) {
this.timestamp = timestamp;
}
/**
* Check whether the geolocation contains enough data to proceed.
*
* @return true/false
*/
public boolean isValid() {
return StringUtils.isNotBlank(this.latitude) && StringUtils.isNotBlank(this.longitude)
&& StringUtils.isNotBlank(this.accuracy) && StringUtils.isNotBlank(this.timestamp);
}
@Override
public String toString() {
return new ToStringBuilder(this)
.append("latitude", latitude)
.append("longitude", longitude)
.append("accuracy", accuracy)
.append("timestamp", timestamp)
.toString();
}
@Override
public boolean equals(final Object obj) {
if (obj == null) {
return false;
}
if (obj == this) {
return true;
}
if (obj.getClass() != getClass()) {
return false;
}
final GeoLocationRequest rhs = (GeoLocationRequest) obj;
return new EqualsBuilder()
.append(this.latitude, rhs.latitude)
.append(this.longitude, rhs.longitude)
.isEquals();
}
@Override
public int hashCode() {
return new HashCodeBuilder()
.append(latitude)
.append(longitude)
.toHashCode();
}
}