2525import com .google .common .base .Function ;
2626import com .google .common .base .MoreObjects ;
2727import com .google .common .collect .ImmutableList ;
28+ import com .google .common .collect .ImmutableMap ;
2829import com .google .common .collect .Lists ;
29-
3030import java .io .Serializable ;
3131import java .util .List ;
32+ import java .util .Map ;
3233import java .util .Objects ;
3334
3435/**
@@ -68,6 +69,7 @@ public Dataset apply(DatasetInfo datasetInfo) {
6869 private final Long lastModified ;
6970 private final String location ;
7071 private final String selfLink ;
72+ private final Map <String , String > labels ;
7173
7274 /**
7375 * A builder for {@code DatasetInfo} objects.
@@ -134,6 +136,8 @@ public abstract static class Builder {
134136
135137 abstract Builder setSelfLink (String selfLink );
136138
139+ public abstract Builder setLabels (Map <String , String > labels );
140+
137141 /**
138142 * Creates a {@code DatasetInfo} object.
139143 */
@@ -153,6 +157,7 @@ static final class BuilderImpl extends Builder {
153157 private Long lastModified ;
154158 private String location ;
155159 private String selfLink ;
160+ private Map <String , String > labels ;
156161
157162 BuilderImpl () {}
158163
@@ -168,6 +173,9 @@ static final class BuilderImpl extends Builder {
168173 this .lastModified = datasetInfo .lastModified ;
169174 this .location = datasetInfo .location ;
170175 this .selfLink = datasetInfo .selfLink ;
176+ this .labels = datasetInfo .labels != null
177+ ? ImmutableMap .copyOf (datasetInfo .labels )
178+ : null ;
171179 }
172180
173181 BuilderImpl (com .google .api .services .bigquery .model .Dataset datasetPb ) {
@@ -191,6 +199,9 @@ public Acl apply(Dataset.Access accessPb) {
191199 this .lastModified = datasetPb .getLastModifiedTime ();
192200 this .location = datasetPb .getLocation ();
193201 this .selfLink = datasetPb .getSelfLink ();
202+ this .labels = datasetPb .getLabels () != null
203+ ? ImmutableMap .copyOf (datasetPb .getLabels ())
204+ : null ;
194205 }
195206
196207
@@ -266,6 +277,12 @@ Builder setSelfLink(String selfLink) {
266277 return this ;
267278 }
268279
280+ @ Override
281+ public Builder setLabels (Map <String , String > labels ) {
282+ this .labels = ImmutableMap .copyOf (labels );
283+ return this ;
284+ }
285+
269286 @ Override
270287 public DatasetInfo build () {
271288 return new DatasetInfo (this );
@@ -284,6 +301,7 @@ public DatasetInfo build() {
284301 lastModified = builder .lastModified ;
285302 location = builder .location ;
286303 selfLink = builder .selfLink ;
304+ labels = builder .labels ;
287305 }
288306
289307
@@ -387,6 +405,15 @@ public String getSelfLink() {
387405 return selfLink ;
388406 }
389407
408+ /**
409+ * Return a map for labels applied to the dataset.
410+ *
411+ * @see <a href="https://cloud.google.com/bigquery/docs/labeling-datasets">Labeling Datasets</a>
412+ */
413+ public Map <String , String > getLabels () {
414+ return labels ;
415+ }
416+
390417 /**
391418 * Returns a builder for the dataset object.
392419 */
@@ -408,6 +435,7 @@ public String toString() {
408435 .add ("location" , location )
409436 .add ("selfLink" , selfLink )
410437 .add ("acl" , acl )
438+ .add ("labels" , labels )
411439 .toString ();
412440 }
413441
@@ -466,6 +494,9 @@ public Dataset.Access apply(Acl acl) {
466494 }
467495 }));
468496 }
497+ if (labels != null ) {
498+ datasetPb .setLabels (labels );
499+ }
469500 return datasetPb ;
470501 }
471502
0 commit comments