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 00d60cca3a..f7a545c164 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 @@ -22,6 +22,7 @@ import java.net.URI; import java.util.Date; import java.util.Map; +import com.google.common.base.Objects; import org.jclouds.blobstore.domain.BlobMetadata; import org.jclouds.blobstore.domain.StorageType; import org.jclouds.domain.Location; @@ -71,4 +72,23 @@ public class BlobMetadataImpl extends StorageMetadataImpl implements BlobMetadat return contentMetadata; } + @Override + public boolean equals(Object object) { + if (object == this) { + return true; + } + if (!(object instanceof BlobMetadataImpl)) { + return false; + } + BlobMetadataImpl that = (BlobMetadataImpl) object; + return super.equals(that) && + Objects.equal(publicUri, that.publicUri) && + Objects.equal(container, that.container) && + Objects.equal(contentMetadata, that.contentMetadata); + } + + @Override + public int hashCode() { + return Objects.hashCode(super.hashCode(), publicUri, container, contentMetadata); + } } 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 52e63b0c9c..f6f65a2b20 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 @@ -18,6 +18,7 @@ package org.jclouds.blobstore.domain.internal; import java.net.URI; +import com.google.common.base.Objects; import org.jclouds.blobstore.domain.BlobMetadata; import org.jclouds.blobstore.domain.MutableBlobMetadata; import org.jclouds.blobstore.domain.StorageType; @@ -95,4 +96,23 @@ public class MutableBlobMetadataImpl extends MutableStorageMetadataImpl implemen this.container = container; } + @Override + public boolean equals(Object object) { + if (object == this) { + return true; + } + if (!(object instanceof MutableBlobMetadataImpl)) { + return false; + } + MutableBlobMetadataImpl that = (MutableBlobMetadataImpl) object; + return super.equals(that) && + Objects.equal(contentMetadata, that.contentMetadata) && + Objects.equal(publicUri, that.publicUri) && + Objects.equal(container, that.container); + } + + @Override + public int hashCode() { + return Objects.hashCode(super.hashCode(), contentMetadata, publicUri, container); + } } 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 f56afa110c..8ae0736da3 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 @@ -18,6 +18,7 @@ package org.jclouds.blobstore.domain.internal; import java.util.Date; +import com.google.common.base.Objects; import org.jclouds.blobstore.domain.MutableStorageMetadata; import org.jclouds.blobstore.domain.StorageMetadata; import org.jclouds.blobstore.domain.StorageType; @@ -96,4 +97,25 @@ public class MutableStorageMetadataImpl extends MutableResourceMetadataImpl