diff --git a/src/main/java/com/google/api/generator/gapic/model/GapicServiceConfig.java b/src/main/java/com/google/api/generator/gapic/model/GapicServiceConfig.java index 4e814b9508..73a36f1e7d 100644 --- a/src/main/java/com/google/api/generator/gapic/model/GapicServiceConfig.java +++ b/src/main/java/com/google/api/generator/gapic/model/GapicServiceConfig.java @@ -42,18 +42,20 @@ public class GapicServiceConfig { private final List methodConfigs; private final Map methodConfigTable; - private final Map lroRetrySettingsTable; - private final Map batchingSettingsTable; + private final Map lroRetrySettingsTable = + new HashMap<>(); + private final Map batchingSettingsTable = + new HashMap<>(); private GapicServiceConfig( List methodConfigs, Map methodConfigTable, - Map lroRetrySettingsTable, - Map batchingSettingsTable) { + Optional> lroRetrySettingsOpt, + Optional> batchingSettingsOpt) { this.methodConfigs = methodConfigs; this.methodConfigTable = methodConfigTable; - this.lroRetrySettingsTable = lroRetrySettingsTable; - this.batchingSettingsTable = batchingSettingsTable; + setLroRetrySettings(lroRetrySettingsOpt); + setBatchingRestrySettings(batchingSettingsOpt); } public static GapicServiceConfig create( @@ -70,36 +72,42 @@ public static GapicServiceConfig create( } } - Map lroRetrySettingsTable = new HashMap<>(); - if (lroRetrySettingsOpt.isPresent()) { - for (GapicLroRetrySettings lroRetrySetting : lroRetrySettingsOpt.get()) { - lroRetrySettingsTable.put( - MethodConfig.Name.newBuilder() - .setService( - String.format( - "%s.%s", lroRetrySetting.protoPakkage(), lroRetrySetting.serviceName())) - .setMethod(lroRetrySetting.methodName()) - .build(), - lroRetrySetting); - } - } + return new GapicServiceConfig( + methodConfigs, methodConfigTable, lroRetrySettingsOpt, batchingSettingsOpt); + } - Map batchingSettingsTable = new HashMap<>(); - if (batchingSettingsOpt.isPresent()) { - for (GapicBatchingSettings batchingSetting : batchingSettingsOpt.get()) { - batchingSettingsTable.put( - MethodConfig.Name.newBuilder() - .setService( - String.format( - "%s.%s", batchingSetting.protoPakkage(), batchingSetting.serviceName())) - .setMethod(batchingSetting.methodName()) - .build(), - batchingSetting); - } + public void setLroRetrySettings(Optional> lroRetrySettingsOpt) { + if (!lroRetrySettingsOpt.isPresent()) { + return; + } + lroRetrySettingsTable.clear(); + for (GapicLroRetrySettings lroRetrySetting : lroRetrySettingsOpt.get()) { + lroRetrySettingsTable.put( + MethodConfig.Name.newBuilder() + .setService( + String.format( + "%s.%s", lroRetrySetting.protoPakkage(), lroRetrySetting.serviceName())) + .setMethod(lroRetrySetting.methodName()) + .build(), + lroRetrySetting); } + } - return new GapicServiceConfig( - methodConfigs, methodConfigTable, lroRetrySettingsTable, batchingSettingsTable); + public void setBatchingRestrySettings(Optional> batchingSettingsOpt) { + if (!batchingSettingsOpt.isPresent()) { + return; + } + batchingSettingsTable.clear(); + for (GapicBatchingSettings batchingSetting : batchingSettingsOpt.get()) { + batchingSettingsTable.put( + MethodConfig.Name.newBuilder() + .setService( + String.format( + "%s.%s", batchingSetting.protoPakkage(), batchingSetting.serviceName())) + .setMethod(batchingSetting.methodName()) + .build(), + batchingSetting); + } } public Map getAllGapicRetrySettings(Service service) {