22
22
import com .google .common .base .MoreObjects .ToStringHelper ;
23
23
import com .google .common .base .Strings ;
24
24
import com .google .common .collect .ImmutableList ;
25
+ import com .google .common .collect .Lists ;
25
26
import com .google .common .primitives .Ints ;
26
27
import java .util .List ;
27
28
import java .util .Map ;
@@ -58,6 +59,10 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load
58
59
private final HivePartitioningOptions hivePartitioningOptions ;
59
60
private final String referenceFileSchemaUri ;
60
61
62
+ private final List <ConnectionProperty > connectionProperties ;
63
+
64
+ private final Boolean createSession ;
65
+
61
66
public static final class Builder extends JobConfiguration .Builder <LoadJobConfiguration , Builder >
62
67
implements LoadConfiguration .Builder {
63
68
@@ -83,6 +88,8 @@ public static final class Builder extends JobConfiguration.Builder<LoadJobConfig
83
88
private RangePartitioning rangePartitioning ;
84
89
private HivePartitioningOptions hivePartitioningOptions ;
85
90
private String referenceFileSchemaUri ;
91
+ private List <ConnectionProperty > connectionProperties ;
92
+ private Boolean createSession ;
86
93
87
94
private Builder () {
88
95
super (Type .LOAD );
@@ -112,6 +119,8 @@ private Builder(LoadJobConfiguration loadConfiguration) {
112
119
this .rangePartitioning = loadConfiguration .rangePartitioning ;
113
120
this .hivePartitioningOptions = loadConfiguration .hivePartitioningOptions ;
114
121
this .referenceFileSchemaUri = loadConfiguration .referenceFileSchemaUri ;
122
+ this .connectionProperties = loadConfiguration .connectionProperties ;
123
+ this .createSession = loadConfiguration .createSession ;
115
124
}
116
125
117
126
private Builder (com .google .api .services .bigquery .model .JobConfiguration configurationPb ) {
@@ -205,6 +214,13 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur
205
214
if (loadConfigurationPb .getReferenceFileSchemaUri () != null ) {
206
215
this .referenceFileSchemaUri = loadConfigurationPb .getReferenceFileSchemaUri ();
207
216
}
217
+ if (loadConfigurationPb .getConnectionProperties () != null ) {
218
+
219
+ this .connectionProperties =
220
+ Lists .transform (
221
+ loadConfigurationPb .getConnectionProperties (), ConnectionProperty .FROM_PB_FUNCTION );
222
+ }
223
+ createSession = loadConfigurationPb .getCreateSession ();
208
224
}
209
225
210
226
@ Override
@@ -368,6 +384,16 @@ public Builder setReferenceFileSchemaUri(String referenceFileSchemaUri) {
368
384
return this ;
369
385
}
370
386
387
+ public Builder setConnectionProperties (List <ConnectionProperty > connectionProperties ) {
388
+ this .connectionProperties = ImmutableList .copyOf (connectionProperties );
389
+ return this ;
390
+ }
391
+
392
+ public Builder setCreateSession (Boolean createSession ) {
393
+ this .createSession = createSession ;
394
+ return this ;
395
+ }
396
+
371
397
@ Override
372
398
public LoadJobConfiguration build () {
373
399
return new LoadJobConfiguration (this );
@@ -397,6 +423,8 @@ private LoadJobConfiguration(Builder builder) {
397
423
this .rangePartitioning = builder .rangePartitioning ;
398
424
this .hivePartitioningOptions = builder .hivePartitioningOptions ;
399
425
this .referenceFileSchemaUri = builder .referenceFileSchemaUri ;
426
+ this .connectionProperties = builder .connectionProperties ;
427
+ this .createSession = builder .createSession ;
400
428
}
401
429
402
430
@ Override
@@ -520,6 +548,14 @@ public String getReferenceFileSchemaUri() {
520
548
return referenceFileSchemaUri ;
521
549
}
522
550
551
+ public List <ConnectionProperty > getConnectionProperties () {
552
+ return connectionProperties ;
553
+ }
554
+
555
+ public Boolean getCreateSession () {
556
+ return createSession ;
557
+ }
558
+
523
559
@ Override
524
560
public Builder toBuilder () {
525
561
return new Builder (this );
@@ -548,7 +584,9 @@ ToStringHelper toStringHelper() {
548
584
.add ("jobTimeoutMs" , jobTimeoutMs )
549
585
.add ("rangePartitioning" , rangePartitioning )
550
586
.add ("hivePartitioningOptions" , hivePartitioningOptions )
551
- .add ("referenceFileSchemaUri" , referenceFileSchemaUri );
587
+ .add ("referenceFileSchemaUri" , referenceFileSchemaUri )
588
+ .add ("connectionProperties" , connectionProperties )
589
+ .add ("createSession" , createSession );
552
590
}
553
591
554
592
@ Override
@@ -654,6 +692,13 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() {
654
692
if (referenceFileSchemaUri != null ) {
655
693
loadConfigurationPb .setReferenceFileSchemaUri (referenceFileSchemaUri );
656
694
}
695
+ if (connectionProperties != null ) {
696
+ loadConfigurationPb .setConnectionProperties (
697
+ Lists .transform (connectionProperties , ConnectionProperty .TO_PB_FUNCTION ));
698
+ }
699
+ if (createSession != null ) {
700
+ loadConfigurationPb .setCreateSession (createSession );
701
+ }
657
702
658
703
jobConfiguration .setLoad (loadConfigurationPb );
659
704
return jobConfiguration ;
0 commit comments