refactored hashCode, etc. as in NL sometimes date fields are not present

This commit is contained in:
Adrian Cole 2012-03-07 12:59:58 -08:00
parent 7e87185858
commit cf0b725b26
2 changed files with 50 additions and 150 deletions

View File

@ -18,7 +18,10 @@
*/ */
package org.jclouds.gogrid.domain; package org.jclouds.gogrid.domain;
import static com.google.common.base.Objects.equal;
import static com.google.common.base.Objects.toStringHelper;
import com.google.common.base.Objects;
import com.google.common.primitives.Longs; import com.google.common.primitives.Longs;
/** /**
@ -46,7 +49,7 @@ public class Server implements Comparable<Server> {
} }
public Server(long id, Option datacenter, boolean sandbox, String name, String description, ServerState state, public Server(long id, Option datacenter, boolean sandbox, String name, String description, ServerState state,
Option type, Option ram, Option os, Ip ip, ServerImage image) { Option type, Option ram, Option os, Ip ip, ServerImage image) {
this.id = id; this.id = id;
this.isSandbox = sandbox; this.isSandbox = sandbox;
this.name = name; this.name = name;
@ -105,93 +108,37 @@ public class Server implements Comparable<Server> {
} }
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object object) {
if (this == obj) if (this == object) {
return true; return true;
if (obj == null) }
if (object instanceof Server) {
final Server other = Server.class.cast(object);
return equal(id, other.id) && equal(name, other.name);
} else {
return false; return false;
if (getClass() != obj.getClass()) }
return false;
Server other = (Server) obj;
if (datacenter == null) {
if (other.datacenter != null)
return false;
} else if (!datacenter.equals(other.datacenter))
return false;
if (description == null) {
if (other.description != null)
return false;
} else if (!description.equals(other.description))
return false;
if (id != other.id)
return false;
if (image == null) {
if (other.image != null)
return false;
} else if (!image.equals(other.image))
return false;
if (ip == null) {
if (other.ip != null)
return false;
} else if (!ip.equals(other.ip))
return false;
if (isSandbox != other.isSandbox)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (os == null) {
if (other.os != null)
return false;
} else if (!os.equals(other.os))
return false;
if (ram == null) {
if (other.ram != null)
return false;
} else if (!ram.equals(other.ram))
return false;
if (state == null) {
if (other.state != null)
return false;
} else if (!state.equals(other.state))
return false;
if (type == null) {
if (other.type != null)
return false;
} else if (!type.equals(other.type))
return false;
return true;
} }
@Override @Override
public int hashCode() { public int hashCode() {
final int prime = 31; return Objects.hashCode(id, name);
int result = 1;
result = prime * result + ((datacenter == null) ? 0 : datacenter.hashCode());
result = prime * result + ((description == null) ? 0 : description.hashCode());
result = prime * result + (int) (id ^ (id >>> 32));
result = prime * result + ((image == null) ? 0 : image.hashCode());
result = prime * result + ((ip == null) ? 0 : ip.hashCode());
result = prime * result + (isSandbox ? 1231 : 1237);
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((os == null) ? 0 : os.hashCode());
result = prime * result + ((ram == null) ? 0 : ram.hashCode());
result = prime * result + ((state == null) ? 0 : state.hashCode());
result = prime * result + ((type == null) ? 0 : type.hashCode());
return result;
} }
@Override @Override
public int compareTo(Server o) { public int compareTo(Server that) {
return Longs.compare(id, o.getId()); if (that == null)
return 1;
if (this == that)
return 0;
return Longs.compare(id, that.getId());
} }
@Override @Override
public String toString() { public String toString() {
return "Server [datacenter=" + datacenter + ", description=" + description + ", id=" + id + ", image=" + image return toStringHelper("").add("id", id).add("name", name).add("description", description).add("os", os).add(
+ ", ip=" + ip + ", isSandbox=" + isSandbox + ", name=" + name + ", os=" + os + ", ram=" + ram + ", state=" "image", image).add("datacenter", datacenter).add("state", state).add("ip", ip).add("isSandbox",
+ state + ", type=" + type + "]"; isSandbox).add("ram", ram).add("type", type).toString();
} }
} }

View File

@ -18,9 +18,13 @@
*/ */
package org.jclouds.gogrid.domain; package org.jclouds.gogrid.domain;
import static com.google.common.base.Objects.equal;
import static com.google.common.base.Objects.toStringHelper;
import java.util.Date; import java.util.Date;
import java.util.Set; import java.util.Set;
import com.google.common.base.Objects;
import com.google.common.primitives.Longs; import com.google.common.primitives.Longs;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
@ -53,10 +57,9 @@ public class ServerImage implements Comparable<ServerImage> {
public ServerImage() { public ServerImage() {
} }
public ServerImage(long id, String name, String friendlyName, String description, Option os, public ServerImage(long id, String name, String friendlyName, String description, Option os, Option architecture,
Option architecture, ServerImageType type, ServerImageState state, double price, ServerImageType type, ServerImageState state, double price, String location, boolean active,
String location, boolean active, boolean aPublic, Date createdTime, Date updatedTime, boolean aPublic, Date createdTime, Date updatedTime, Set<BillingToken> billingTokens, Customer owner) {
Set<BillingToken> billingTokens, Customer owner) {
this.id = id; this.id = id;
this.name = name; this.name = name;
this.friendlyName = friendlyName; this.friendlyName = friendlyName;
@ -142,88 +145,38 @@ public class ServerImage implements Comparable<ServerImage> {
} }
@Override @Override
public boolean equals(Object o) { public boolean equals(Object object) {
if (this == o) if (this == object) {
return true; return true;
if (o == null || getClass() != o.getClass()) }
if (object instanceof ServerImage) {
final ServerImage other = ServerImage.class.cast(object);
return equal(id, other.id) && equal(name, other.name);
} else {
return false; return false;
}
ServerImage that = (ServerImage) o;
if (id != that.id)
return false;
if (isActive != that.isActive)
return false;
if (isPublic != that.isPublic)
return false;
if (Double.compare(that.price, price) != 0)
return false;
if (architecture != null ? !architecture.equals(that.architecture)
: that.architecture != null)
return false;
if (billingTokens != null ? !billingTokens.equals(that.billingTokens)
: that.billingTokens != null)
return false;
if (!createdTime.equals(that.createdTime))
return false;
if (description != null ? !description.equals(that.description) : that.description != null)
return false;
if (friendlyName != null ? !friendlyName.equals(that.friendlyName)
: that.friendlyName != null)
return false;
if (location != null ? !location.equals(that.location) : that.location != null)
return false;
if (!name.equals(that.name))
return false;
if (!os.equals(that.os))
return false;
if (owner != null ? !owner.equals(that.owner) : that.owner != null)
return false;
if (!state.equals(that.state))
return false;
if (!type.equals(that.type))
return false;
if (updatedTime != null ? !updatedTime.equals(that.updatedTime) : that.updatedTime != null)
return false;
return true;
} }
@Override @Override
public int hashCode() { public int hashCode() {
int result; return Objects.hashCode(id, name);
long temp;
result = (int) (id ^ (id >>> 32));
result = 31 * result + name.hashCode();
result = 31 * result + (friendlyName != null ? friendlyName.hashCode() : 0);
result = 31 * result + (description != null ? description.hashCode() : 0);
result = 31 * result + os.hashCode();
result = 31 * result + type.hashCode();
result = 31 * result + state.hashCode();
temp = price != +0.0d ? Double.doubleToLongBits(price) : 0L;
result = 31 * result + (int) (temp ^ (temp >>> 32));
result = 31 * result + (location != null ? location.hashCode() : 0);
result = 31 * result + (isActive ? 1 : 0);
result = 31 * result + (isPublic ? 1 : 0);
result = 31 * result + createdTime.hashCode();
result = 31 * result + (updatedTime != null ? updatedTime.hashCode() : 0);
result = 31 * result + (billingTokens != null ? billingTokens.hashCode() : 0);
result = 31 * result + (owner != null ? owner.hashCode() : 0);
return result;
} }
@Override @Override
public int compareTo(ServerImage o) { public int compareTo(ServerImage that) {
return Longs.compare(id, o.getId()); if (that == null)
return 1;
if (this == that)
return 0;
return Longs.compare(id, that.getId());
} }
@Override @Override
public String toString() { public String toString() {
return "ServerImage{" + "id=" + id + ", name='" + name + '\'' + ", friendlyName='" return toStringHelper("").add("id", id).add("name", name).add("friendlyName", friendlyName).add("friendlyName",
+ friendlyName + '\'' + ", description='" + description + '\'' + ", os=" + os friendlyName).add("description", description).add("os", os).add("architecture", architecture).add(
+ ", architecture=" + architecture + ", type=" + type + ", state=" + state "type", type).add("state", state).add("price", price).add("location", location)
+ ", price=" + price + ", location='" + location + '\'' + ", isActive=" + isActive .add("isActive", isActive).add("isPublic", isPublic).add("createdTime", createdTime).add("updatedTime",
+ ", isPublic=" + isPublic + ", createdTime=" + createdTime + ", updatedTime=" updatedTime).add("billingTokens", billingTokens).add("owner", owner).toString();
+ updatedTime + ", billingTokens=" + billingTokens + ", owner=" + owner + '}';
} }
} }