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()); } }