2222import com .google .common .base .MoreObjects .ToStringHelper ;
2323import com .google .common .base .Strings ;
2424import com .google .common .collect .ImmutableList ;
25+ import com .google .common .collect .Lists ;
2526import com .google .common .primitives .Ints ;
2627import java .util .List ;
2728import java .util .Map ;
@@ -58,6 +59,10 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load
5859 private final HivePartitioningOptions hivePartitioningOptions ;
5960 private final String referenceFileSchemaUri ;
6061
62+ private final List <ConnectionProperty > connectionProperties ;
63+
64+ private final Boolean createSession ;
65+
6166 public static final class Builder extends JobConfiguration .Builder <LoadJobConfiguration , Builder >
6267 implements LoadConfiguration .Builder {
6368
@@ -83,6 +88,8 @@ public static final class Builder extends JobConfiguration.Builder<LoadJobConfig
8388 private RangePartitioning rangePartitioning ;
8489 private HivePartitioningOptions hivePartitioningOptions ;
8590 private String referenceFileSchemaUri ;
91+ private List <ConnectionProperty > connectionProperties ;
92+ private Boolean createSession ;
8693
8794 private Builder () {
8895 super (Type .LOAD );
@@ -112,6 +119,8 @@ private Builder(LoadJobConfiguration loadConfiguration) {
112119 this .rangePartitioning = loadConfiguration .rangePartitioning ;
113120 this .hivePartitioningOptions = loadConfiguration .hivePartitioningOptions ;
114121 this .referenceFileSchemaUri = loadConfiguration .referenceFileSchemaUri ;
122+ this .connectionProperties = loadConfiguration .connectionProperties ;
123+ this .createSession = loadConfiguration .createSession ;
115124 }
116125
117126 private Builder (com .google .api .services .bigquery .model .JobConfiguration configurationPb ) {
@@ -205,6 +214,13 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur
205214 if (loadConfigurationPb .getReferenceFileSchemaUri () != null ) {
206215 this .referenceFileSchemaUri = loadConfigurationPb .getReferenceFileSchemaUri ();
207216 }
217+ if (loadConfigurationPb .getConnectionProperties () != null ) {
218+
219+ this .connectionProperties =
220+ Lists .transform (
221+ loadConfigurationPb .getConnectionProperties (), ConnectionProperty .FROM_PB_FUNCTION );
222+ }
223+ createSession = loadConfigurationPb .getCreateSession ();
208224 }
209225
210226 @ Override
@@ -368,6 +384,16 @@ public Builder setReferenceFileSchemaUri(String referenceFileSchemaUri) {
368384 return this ;
369385 }
370386
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+
371397 @ Override
372398 public LoadJobConfiguration build () {
373399 return new LoadJobConfiguration (this );
@@ -397,6 +423,8 @@ private LoadJobConfiguration(Builder builder) {
397423 this .rangePartitioning = builder .rangePartitioning ;
398424 this .hivePartitioningOptions = builder .hivePartitioningOptions ;
399425 this .referenceFileSchemaUri = builder .referenceFileSchemaUri ;
426+ this .connectionProperties = builder .connectionProperties ;
427+ this .createSession = builder .createSession ;
400428 }
401429
402430 @ Override
@@ -520,6 +548,14 @@ public String getReferenceFileSchemaUri() {
520548 return referenceFileSchemaUri ;
521549 }
522550
551+ public List <ConnectionProperty > getConnectionProperties () {
552+ return connectionProperties ;
553+ }
554+
555+ public Boolean getCreateSession () {
556+ return createSession ;
557+ }
558+
523559 @ Override
524560 public Builder toBuilder () {
525561 return new Builder (this );
@@ -548,7 +584,9 @@ ToStringHelper toStringHelper() {
548584 .add ("jobTimeoutMs" , jobTimeoutMs )
549585 .add ("rangePartitioning" , rangePartitioning )
550586 .add ("hivePartitioningOptions" , hivePartitioningOptions )
551- .add ("referenceFileSchemaUri" , referenceFileSchemaUri );
587+ .add ("referenceFileSchemaUri" , referenceFileSchemaUri )
588+ .add ("connectionProperties" , connectionProperties )
589+ .add ("createSession" , createSession );
552590 }
553591
554592 @ Override
@@ -654,6 +692,13 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() {
654692 if (referenceFileSchemaUri != null ) {
655693 loadConfigurationPb .setReferenceFileSchemaUri (referenceFileSchemaUri );
656694 }
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+ }
657702
658703 jobConfiguration .setLoad (loadConfigurationPb );
659704 return jobConfiguration ;
0 commit comments