private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) {
   this();
   JobConfigurationQuery queryConfigurationPb = configurationPb.getQuery();
   this.query = queryConfigurationPb.getQuery();
   allowLargeResults = queryConfigurationPb.getAllowLargeResults();
   useQueryCache = queryConfigurationPb.getUseQueryCache();
   flattenResults = queryConfigurationPb.getFlattenResults();
   dryRun = configurationPb.getDryRun();
   if (queryConfigurationPb.getDestinationTable() != null) {
     destinationTable = TableId.fromPb(queryConfigurationPb.getDestinationTable());
   }
   if (queryConfigurationPb.getDefaultDataset() != null) {
     defaultDataset = DatasetId.fromPb(queryConfigurationPb.getDefaultDataset());
   }
   if (queryConfigurationPb.getPriority() != null) {
     priority = Priority.valueOf(queryConfigurationPb.getPriority());
   }
   if (queryConfigurationPb.getTableDefinitions() != null) {
     tableDefinitions =
         Maps.transformValues(
             queryConfigurationPb.getTableDefinitions(),
             ExternalTableDefinition.FROM_EXTERNAL_DATA_FUNCTION);
   }
   if (queryConfigurationPb.getUserDefinedFunctionResources() != null) {
     userDefinedFunctions =
         Lists.transform(
             queryConfigurationPb.getUserDefinedFunctionResources(),
             UserDefinedFunction.FROM_PB_FUNCTION);
   }
   if (queryConfigurationPb.getCreateDisposition() != null) {
     createDisposition = CreateDisposition.valueOf(queryConfigurationPb.getCreateDisposition());
   }
   if (queryConfigurationPb.getWriteDisposition() != null) {
     writeDisposition = WriteDisposition.valueOf(queryConfigurationPb.getWriteDisposition());
   }
 }