/** Return a list of configs for method in the order given by the GAPIC interface config. */ static <T> List<T> createMethodConfigs( ImmutableMap<String, T> methodConfigMap, InterfaceConfigProto interfaceConfigProto) { if (interfaceConfigProto.equals(InterfaceConfigProto.getDefaultInstance())) { // InterfaceConfigProto was not given, so just return the order in methodConfigMap. return methodConfigMap.values().asList(); } List<T> methodConfigs = new ArrayList<>(); for (MethodConfigProto methodConfigProto : interfaceConfigProto.getMethodsList()) { methodConfigs.add(methodConfigMap.get(methodConfigProto.getName())); } return methodConfigs; }
@Nullable private static ImmutableMap<String, ImmutableList<String>> createRetryCodesDefinitionFromConfigProto( DiagCollector diagCollector, InterfaceConfigProto interfaceConfigProto) { ImmutableMap.Builder<String, ImmutableList<String>> builder = ImmutableMap.builder(); for (RetryCodesDefinitionProto retryDef : interfaceConfigProto.getRetryCodesDefList()) { // Enforce ordering on set for baseline test consistency. Set<String> codes = new TreeSet<>(); for (String codeText : retryDef.getRetryCodesList()) { try { codes.add(String.valueOf(codeText)); } catch (IllegalArgumentException e) { diagCollector.addDiag( Diag.error( SimpleLocation.TOPLEVEL, "status code not found: '%s' (in interface %s)", codeText, interfaceConfigProto.getName())); } } builder.put(retryDef.getName(), ImmutableList.copyOf(codes)); } if (diagCollector.getErrorCount() > 0) { return null; } return builder.build(); }
Interface apiInterface = symbolTable.lookupInterface(interfaceConfigProto.getName()); if (apiInterface == null || !apiInterface.isReachable()) { diagCollector.addDiag( SimpleLocation.TOPLEVEL, "interface not found: %s", interfaceConfigProto.getName())); continue; interfaceConfigProtos.put(interfaceConfigProto.getName(), interfaceConfigProto); interfaceMap.put(interfaceConfigProto.getName(), apiInterface); serviceFullName, InterfaceConfigProto.getDefaultInstance()); interfaceInput.setInterfaceConfigProto(interfaceConfigProto);
ImmutableList.copyOf(interfaceConfigProto.getRequiredConstructorParamsList()); for (String param : interfaceConfigProto.getRequiredConstructorParamsList()) { if (!CONSTRUCTOR_PARAMS.contains(param)) { model for (CollectionConfigProto collectionConfigProto : interfaceConfigProto.getCollectionsList()) { String entityName = collectionConfigProto.getEntityName(); ResourceNameConfig resourceName = resourceNameConfigs.get(entityName); interfaceConfigProto.getLangDoc().get(language.toString().toLowerCase())) .trim(); interfaceNameOverride != null ? interfaceNameOverride : DiscoGapicParser.getInterfaceName(interfaceConfigProto.getName()).toUpperCamel();
ImmutableList.copyOf(interfaceConfigProto.getRequiredConstructorParamsList()); for (String param : interfaceConfigProto.getRequiredConstructorParamsList()) { if (!CONSTRUCTOR_PARAMS.contains(param)) { diagCollector.addDiag( for (CollectionConfigProto collectionConfigProto : interfaceConfigProto.getCollectionsList()) { String entityName = collectionConfigProto.getEntityName(); ResourceNameConfig resourceName = resourceNameConfigs.get(entityName); interfaceConfigProto.getLangDoc().get(language.toString().toLowerCase())) .trim();
public static ImmutableMap<String, RetryParamsDefinitionProto> createRetrySettingsDefinition( InterfaceConfigProto interfaceConfigProto) { ImmutableMap.Builder<String, RetryParamsDefinitionProto> builder = ImmutableMap.builder(); if (interfaceConfigProto.getRetryParamsDefCount() > 0) { for (RetryParamsDefinitionProto retryDef : interfaceConfigProto.getRetryParamsDefList()) { builder.put(retryDef.getName(), retryDef); } } else { // Use default values. RetryParamsDefinitionProto defaultRetryParams = RetryParamsDefinitionProto.getDefaultInstance() .toBuilder() .setInitialRetryDelayMillis(DEFAULT_INITIAL_RETRY_DELAY) .setRetryDelayMultiplier(DEFAULT_RETRY_DELAY_MULTIPLIER) .setMaxRetryDelayMillis(DEFAULT_MAX_RETRY_DELAY) .setInitialRpcTimeoutMillis(DEFAULT_MAX_RPC_TIMEOUT_MILLIS) .setRpcTimeoutMultiplier(DEFAULT_RPC_TIMEOUT_MULTIPLIER) .setMaxRpcTimeoutMillis(DEFAULT_MAX_RPC_TIMEOUT_MILLIS) .setTotalTimeoutMillis(DEFAULT_TOTAL_TIMEOUT_MILLIS) .build(); builder.put(RETRY_PARAMS_DEFAULT_NAME, defaultRetryParams); } return builder.build(); }
private static ImmutableMap<String, String> createMethodRetryNamesFromConfigProto( InterfaceConfigProto interfaceConfigProto) { ImmutableMap.Builder<String, String> builder = ImmutableMap.builder(); // Add each method name from config proto and its non-empty retry code name. // Sample entry: {"ListShelves", "non_idempotent"} for (MethodConfigProto method : interfaceConfigProto.getMethodsList()) { if (!Strings.isNullOrEmpty(method.getRetryCodesName())) { builder.put(method.getName(), method.getRetryCodesName()); } } return builder.build(); }
private static ImmutableMap<String, InterfaceConfig> createDiscoGapicInterfaceConfigMap( DiscoApiModel model, ConfigProto configProto, LanguageSettingsProto languageSettings, ResourceNameMessageConfigs messageConfigs, ImmutableMap<String, ResourceNameConfig> resourceNameConfigs, TargetLanguage language) { ImmutableMap.Builder<String, InterfaceConfig> interfaceConfigMap = ImmutableMap.builder(); for (InterfaceConfigProto interfaceConfigProto : configProto.getInterfacesList()) { String interfaceNameOverride = languageSettings.getInterfaceNamesMap().get(interfaceConfigProto.getName()); DiscoGapicInterfaceConfig interfaceConfig = DiscoGapicInterfaceConfig.createInterfaceConfig( model, language, interfaceConfigProto, interfaceNameOverride, messageConfigs, resourceNameConfigs); if (interfaceConfig == null) { continue; } interfaceConfigMap.put(interfaceConfigProto.getName(), interfaceConfig); } if (model.getDiagCollector().getErrorCount() > 0) { return null; } else { return interfaceConfigMap.build(); } }
/** Return the list of information about clients to be generated. */ private static ImmutableList<GapicInterfaceInput> createInterfaceInputsWithoutGapicConfig( Collection<Interface> protoInterfaces) { // Store info about each Interface in a GapicInterfaceInput object. ImmutableList.Builder<GapicInterfaceInput> interfaceInputs = ImmutableList.builder(); for (Interface apiInterface : protoInterfaces) { GapicInterfaceInput.Builder interfaceInput = GapicInterfaceInput.newBuilder() .setInterface(apiInterface) .setInterfaceConfigProto(InterfaceConfigProto.getDefaultInstance()) .setMethodsToGenerate(findMethodsToGenerateWithoutConfigYaml(apiInterface)); interfaceInputs.add(interfaceInput.build()); } return interfaceInputs.build(); }
private static ImmutableMap<String, SingleResourceNameConfig> createSingleResourceNameConfigs( DiagCollector diagCollector, ConfigProto configProto, @Nullable List<ProtoFile> sourceProtos, TargetLanguage language) { ProtoFile file = null; if (sourceProtos != null) { file = sourceProtos.get(0); } LinkedHashMap<String, SingleResourceNameConfig> singleResourceNameConfigsMap = new LinkedHashMap<>(); for (CollectionConfigProto collectionConfigProto : configProto.getCollectionsList()) { createSingleResourceNameConfig( diagCollector, collectionConfigProto, singleResourceNameConfigsMap, file, language); } for (InterfaceConfigProto interfaceConfigProto : configProto.getInterfacesList()) { for (CollectionConfigProto collectionConfigProto : interfaceConfigProto.getCollectionsList()) { createSingleResourceNameConfig( diagCollector, collectionConfigProto, singleResourceNameConfigsMap, file, language); } } if (diagCollector.getErrorCount() > 0) { return null; } else { return ImmutableMap.copyOf(singleResourceNameConfigsMap); } }
/** Find the methods that should be generated on the surface when a GAPIC config was given. */ @Nullable private static ImmutableMap<Method, MethodConfigProto> findMethodsToGenerateWithConfigYaml( Interface apiInterface, InterfaceConfigProto interfaceConfigProto, DiagCollector diagCollector) { ImmutableMap.Builder<Method, MethodConfigProto> methodsToSurface = ImmutableMap.builder(); // Get the set of methods defined by the GAPIC config. Only these methods will be generated. for (MethodConfigProto methodConfigProto : interfaceConfigProto.getMethodsList()) { Interface targetInterface = GapicInterfaceConfig.getTargetInterface( apiInterface, methodConfigProto.getRerouteToGrpcInterface()); Method protoMethod = targetInterface.lookupMethod(methodConfigProto.getName()); if (protoMethod == null) { diagCollector.addDiag( Diag.error( SimpleLocation.TOPLEVEL, "method not found: %s", methodConfigProto.getName())); continue; } methodsToSurface.put(protoMethod, methodConfigProto); } if (diagCollector.getErrorCount() > 0) { return null; } return methodsToSurface.build(); }
symbolTable.lookupInterface(configProto.getInterfaces(0).getName()).getFile(); defaultPackage = file.getProto().getPackage(); } else {
ImmutableMap.builder(); for (MethodConfigProto methodConfigProto : interfaceConfigProto.getMethodsList()) { Method method = lookupMethod(model.getDocument(), methodConfigProto.getName()); if (method == null) {