// Copyright (c) 2003-2013, LogMeIn, Inc. All rights reserved. // This is part of Xively4J library, it is under the BSD 3-Clause license. package com.xively.client.model; import com.xively.client.utils.ObjectUtil; import org.codehaus.jackson.annotate.JsonIgnore; import org.codehaus.jackson.annotate.JsonProperty; import org.codehaus.jackson.map.annotate.JsonRootName; /** * Location that describes the {@link Feed}. * * @author s0pau * */ @JsonRootName("location") public class Location { @JsonRootName("exposure") public enum Exposure { indoor, outdoor } @JsonRootName("disposition") public enum Disposition { fixed, mobile } @JsonRootName("domain") public enum Domain { physical, virtual } private String name; @JsonProperty("lat") private double latitiude; @JsonProperty("lon") private double longitute; @JsonProperty("ele") private double elevation; private Exposure exposure; private Domain domain; private Disposition disposition; public String getName() { return name; } public void setName(String name) { this.name = name; } public double getLatitiude() { return latitiude; } public void setLatitiude(double latitiude) { this.latitiude = latitiude; } public double getLongitute() { return longitute; } public void setLongitute(double longitute) { this.longitute = longitute; } public double getElevation() { return elevation; } public void setElevation(double elevation) { this.elevation = elevation; } public Exposure getExposure() { return exposure; } public void setExposure(Exposure exposure) { this.exposure = exposure; } public Domain getDomain() { return domain; } public void setDomain(Domain domain) { this.domain = domain; } public Disposition getDisposition() { return disposition; } public void setDisposition(Disposition disposition) { this.disposition = disposition; } @JsonIgnore @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (this == obj) { return true; } if (!(obj instanceof Location)) { return false; } Location other = (Location) obj; if (!ObjectUtil.nullCheckEquals(this.disposition, other.getDisposition())) { return false; } if (!ObjectUtil.nullCheckEquals(this.domain, other.getDomain())) { return false; } if (!ObjectUtil.nullCheckEquals(this.elevation, other.getElevation())) { return false; } if (!ObjectUtil.nullCheckEquals(this.latitiude, other.getLatitiude())) { return false; } if (!ObjectUtil.nullCheckEquals(this.longitute, other.getLongitute())) { return false; } if (!ObjectUtil.nullCheckEquals(this.name, other.getName())) { return false; } return true; } @JsonIgnore @Override public int hashCode() { int retval = 1; retval += disposition == null ? 0 : disposition.hashCode() * 37; retval += domain == null ? 0 : domain.hashCode() * 37; retval += elevation * 37; retval += exposure == null ? 0 : exposure.hashCode() * 37; retval += latitiude * 37; retval += longitute * 37; retval += name == null ? 0 : name.hashCode() * 37; return retval; } }