Skip to content

Commit 333a3bb

Browse files
committed
Add null value (empty map) for blob metadata
1 parent 0dd3d97 commit 333a3bb

1 file changed

Lines changed: 15 additions & 3 deletions

File tree

  • gcloud-java-storage/src/main/java/com/google/gcloud/storage

gcloud-java-storage/src/main/java/com/google/gcloud/storage/BlobInfo.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,16 @@
2828
import com.google.common.base.MoreObjects;
2929
import com.google.common.collect.ImmutableList;
3030
import com.google.common.collect.ImmutableMap;
31+
import com.google.common.collect.ImmutableSet;
3132
import com.google.common.collect.Lists;
3233

3334
import java.io.Serializable;
3435
import java.math.BigInteger;
36+
import java.util.AbstractMap;
3537
import java.util.List;
3638
import java.util.Map;
3739
import java.util.Objects;
40+
import java.util.Set;
3841

3942
/**
4043
* Google Storage object metadata.
@@ -81,6 +84,14 @@ public StorageObject apply(BlobInfo blobInfo) {
8184
private final String contentLanguage;
8285
private final Integer componentCount;
8386

87+
public static final class ImmutableEmptyMap<K, V> extends AbstractMap<K, V> {
88+
89+
@Override
90+
public Set<Entry<K, V>> entrySet() {
91+
return ImmutableSet.of();
92+
}
93+
}
94+
8495
public static final class Builder {
8596

8697
private BlobId blobId;
@@ -99,7 +110,7 @@ public static final class Builder {
99110
private String md5;
100111
private String crc32c;
101112
private String mediaLink;
102-
private ImmutableMap<String, String> metadata;
113+
private Map<String, String> metadata;
103114
private Long generation;
104115
private Long metageneration;
105116
private Long deleteTime;
@@ -188,7 +199,8 @@ Builder mediaLink(String mediaLink) {
188199
}
189200

190201
public Builder metadata(Map<String, String> metadata) {
191-
this.metadata = metadata != null ? ImmutableMap.copyOf(metadata) : null;
202+
this.metadata = metadata != null ?
203+
ImmutableMap.copyOf(metadata) : Data.<Map>nullOf(ImmutableEmptyMap.class);
192204
return this;
193205
}
194206

@@ -315,7 +327,7 @@ public String mediaLink() {
315327
}
316328

317329
public Map<String, String> metadata() {
318-
return metadata;
330+
return Data.isNull(metadata) ? null : metadata;
319331
}
320332

321333
public Long generation() {

0 commit comments

Comments
 (0)