Repository: jclouds Updated Branches: refs/heads/master b50c518f7 -> a3376d4ef
Consistently implement domain object methods Including equals, hashCode, and toString. Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/a3376d4e Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/a3376d4e Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/a3376d4e Branch: refs/heads/master Commit: a3376d4efe86fafc38b631d3b741444f3df50493 Parents: b50c518 Author: Andrew Gaul <[email protected]> Authored: Sun Jan 24 21:17:27 2016 -0800 Committer: Andrew Gaul <[email protected]> Committed: Sun Jan 24 21:58:39 2016 -0800 ---------------------------------------------------------------------- .../domain/internal/BlobMetadataImpl.java | 10 ++++ .../internal/MutableBlobMetadataImpl.java | 10 ++++ .../internal/MutableStorageMetadataImpl.java | 11 ++++ .../domain/internal/StorageMetadataImpl.java | 14 ++++- .../internal/MutableResourceMetadataImpl.java | 56 +++++++------------- .../domain/internal/ResourceMetadataImpl.java | 5 +- 6 files changed, 67 insertions(+), 39 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/a3376d4e/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/BlobMetadataImpl.java ---------------------------------------------------------------------- diff --git a/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/BlobMetadataImpl.java b/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/BlobMetadataImpl.java index f7a545c..71671e6 100644 --- a/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/BlobMetadataImpl.java +++ b/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/BlobMetadataImpl.java @@ -23,6 +23,8 @@ import java.util.Date; import java.util.Map; import com.google.common.base.Objects; +import com.google.common.base.Objects.ToStringHelper; + import org.jclouds.blobstore.domain.BlobMetadata; import org.jclouds.blobstore.domain.StorageType; import org.jclouds.domain.Location; @@ -91,4 +93,12 @@ public class BlobMetadataImpl extends StorageMetadataImpl implements BlobMetadat public int hashCode() { return Objects.hashCode(super.hashCode(), publicUri, container, contentMetadata); } + + @Override + protected ToStringHelper string() { + return super.string() + .add("publicUri", publicUri) + .add("container", container) + .add("contentMetadata", contentMetadata); + } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/a3376d4e/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/MutableBlobMetadataImpl.java ---------------------------------------------------------------------- diff --git a/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/MutableBlobMetadataImpl.java b/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/MutableBlobMetadataImpl.java index f6f65a2..0cae35a 100644 --- a/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/MutableBlobMetadataImpl.java +++ b/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/MutableBlobMetadataImpl.java @@ -19,6 +19,8 @@ package org.jclouds.blobstore.domain.internal; import java.net.URI; import com.google.common.base.Objects; +import com.google.common.base.Objects.ToStringHelper; + import org.jclouds.blobstore.domain.BlobMetadata; import org.jclouds.blobstore.domain.MutableBlobMetadata; import org.jclouds.blobstore.domain.StorageType; @@ -115,4 +117,12 @@ public class MutableBlobMetadataImpl extends MutableStorageMetadataImpl implemen public int hashCode() { return Objects.hashCode(super.hashCode(), contentMetadata, publicUri, container); } + + @Override + protected ToStringHelper string() { + return super.string() + .add("publicUri", publicUri) + .add("container", container) + .add("contentMetadata", contentMetadata); + } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/a3376d4e/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/MutableStorageMetadataImpl.java ---------------------------------------------------------------------- diff --git a/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/MutableStorageMetadataImpl.java b/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/MutableStorageMetadataImpl.java index 8ae0736..677d470 100644 --- a/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/MutableStorageMetadataImpl.java +++ b/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/MutableStorageMetadataImpl.java @@ -19,6 +19,8 @@ package org.jclouds.blobstore.domain.internal; import java.util.Date; import com.google.common.base.Objects; +import com.google.common.base.Objects.ToStringHelper; + import org.jclouds.blobstore.domain.MutableStorageMetadata; import org.jclouds.blobstore.domain.StorageMetadata; import org.jclouds.blobstore.domain.StorageType; @@ -118,4 +120,13 @@ public class MutableStorageMetadataImpl extends MutableResourceMetadataImpl<Stor public int hashCode() { return Objects.hashCode(super.hashCode(), eTag, creationDate, lastModified, size); } + + @Override + protected ToStringHelper string() { + return super.string() + .add("eTag", eTag) + .add("creationDate", creationDate) + .add("lastModified", lastModified) + .add("size", size); + } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/a3376d4e/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/StorageMetadataImpl.java ---------------------------------------------------------------------- diff --git a/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/StorageMetadataImpl.java b/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/StorageMetadataImpl.java index 135dbbe..6ff32bd 100644 --- a/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/StorageMetadataImpl.java +++ b/blobstore/src/main/java/org/jclouds/blobstore/domain/internal/StorageMetadataImpl.java @@ -23,6 +23,7 @@ import java.util.Date; import java.util.Map; import com.google.common.base.Objects; +import com.google.common.base.Objects.ToStringHelper; import org.jclouds.blobstore.domain.StorageMetadata; import org.jclouds.blobstore.domain.StorageType; @@ -77,7 +78,7 @@ public class StorageMetadataImpl extends ResourceMetadataImpl<StorageType> imple @Override public int hashCode() { return Objects.hashCode(super.hashCode(), eTag, creationDate, - lastModified, type); + lastModified, type, size); } @Override @@ -93,9 +94,20 @@ public class StorageMetadataImpl extends ResourceMetadataImpl<StorageType> imple if (!Objects.equal(creationDate, other.creationDate)) { return false; } if (!Objects.equal(lastModified, other.lastModified)) { return false; } if (!Objects.equal(type, other.type)) { return false; } + if (!Objects.equal(size, other.size)) { return false; } return true; } + @Override + protected ToStringHelper string() { + return super.string() + .add("eTag", eTag) + .add("creationDate", creationDate) + .add("lastModified", lastModified) + .add("type", type) + .add("size", size); + } + /** * {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/jclouds/blob/a3376d4e/core/src/main/java/org/jclouds/domain/internal/MutableResourceMetadataImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/jclouds/domain/internal/MutableResourceMetadataImpl.java b/core/src/main/java/org/jclouds/domain/internal/MutableResourceMetadataImpl.java index 9ed188c..9d7cca8 100644 --- a/core/src/main/java/org/jclouds/domain/internal/MutableResourceMetadataImpl.java +++ b/core/src/main/java/org/jclouds/domain/internal/MutableResourceMetadataImpl.java @@ -23,6 +23,8 @@ import org.jclouds.domain.Location; import org.jclouds.domain.MutableResourceMetadata; import org.jclouds.domain.ResourceMetadata; +import com.google.common.base.Objects; +import com.google.common.base.Objects.ToStringHelper; import com.google.common.collect.Maps; /** @@ -158,20 +160,22 @@ public class MutableResourceMetadataImpl<T extends Enum<T>> implements MutableRe @Override public String toString() { - return "[type=" + type + ", id=" + id + ", name=" + name + ", location=" + location - + ", uri=" + uri + ", userMetadata=" + userMetadata + "]"; + return string().toString(); + } + + protected ToStringHelper string() { + return Objects.toStringHelper("").omitNullValues() + .add("id", id) + .add("location", location) + .add("name", name) + .add("type", getType()) + .add("uri", uri) + .add("userMetadata", userMetadata); } @Override public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((id == null) ? 0 : id.hashCode()); - result = prime * result + ((location == null) ? 0 : location.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((type == null) ? 0 : type.hashCode()); - result = prime * result + ((uri == null) ? 0 : uri.hashCode()); - return result; + return Objects.hashCode(id, location, name, type, uri, userMetadata); } @Override @@ -183,32 +187,12 @@ public class MutableResourceMetadataImpl<T extends Enum<T>> implements MutableRe if (!(obj instanceof MutableResourceMetadata<?>)) return false; MutableResourceMetadata<?> other = (MutableResourceMetadata<?>) obj; - if (id == null) { - if (other.getProviderId() != null) - return false; - } else if (!id.equals(other.getProviderId())) - return false; - if (location == null) { - if (other.getLocation() != null) - return false; - } else if (!location.equals(other.getLocation())) - return false; - if (name == null) { - if (other.getName() != null) - return false; - } else if (!name.equals(other.getName())) - return false; - if (type == null) { - if (other.getType() != null) - return false; - } else if (!type.equals(other.getType())) - return false; - if (uri == null) { - if (other.getUri() != null) - return false; - } else if (!uri.equals(other.getUri())) - return false; - return true; + return Objects.equal(id, other.getProviderId()) + && Objects.equal(location, other.getLocation()) + && Objects.equal(name, other.getName()) + && Objects.equal(type, other.getType()) + && Objects.equal(uri, other.getUri()) + && Objects.equal(userMetadata, other.getUserMetadata()); } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/a3376d4e/core/src/main/java/org/jclouds/domain/internal/ResourceMetadataImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/jclouds/domain/internal/ResourceMetadataImpl.java b/core/src/main/java/org/jclouds/domain/internal/ResourceMetadataImpl.java index 220732d..7426b97 100644 --- a/core/src/main/java/org/jclouds/domain/internal/ResourceMetadataImpl.java +++ b/core/src/main/java/org/jclouds/domain/internal/ResourceMetadataImpl.java @@ -114,12 +114,13 @@ public abstract class ResourceMetadataImpl<T extends Enum<T>> implements Resourc return false; ResourceMetadataImpl<?> that = ResourceMetadataImpl.class.cast(o); return equal(this.getType(), that.getType()) && equal(this.providerId, that.providerId) - && equal(this.name, that.name) && equal(this.location, that.location) && equal(this.uri, that.uri); + && equal(this.name, that.name) && equal(this.location, that.location) && equal(this.uri, that.uri) + && equal(this.userMetadata, that.userMetadata); } @Override public int hashCode() { - return Objects.hashCode(getType(), providerId, name, location, uri); + return Objects.hashCode(getType(), providerId, name, location, uri, userMetadata); } @Override
