Search in sources :

Example 11 with ProtoApiModel

use of com.google.api.codegen.config.ProtoApiModel in project toolkit by googleapis.

the class StaticLangGapicSamplesTransformer method transform.

@Override
public List<ViewModel> transform(ProtoApiModel apiModel, GapicProductConfig productConfig) {
    String packageName = productConfig.getPackageName();
    SurfaceNamer namer = newSurfaceNamer.apply(productConfig);
    ModelTypeTable typeTable = newTypeTable.apply(packageName);
    FeatureConfig featureConfig = newFeatureConfig.apply(productConfig);
    List<InterfaceContext> interfaceContexts = Streams.stream(apiModel.getInterfaces(productConfig)).filter(iface -> productConfig.hasInterfaceConfig(iface)).map(iface -> GapicInterfaceContext.create(iface, productConfig, typeTable, namer, featureConfig)).collect(ImmutableList.toImmutableList());
    ImmutableTable<String, String, ImmutableList<SampleConfig>> sampleConfigTable = productConfig.getSampleConfigTable();
    List<ViewModel> sampleFiles;
    if (sampleConfigTable.isEmpty()) {
        // We don't have sample configs. Continue to use gapic config.
        sampleFiles = generateSamplesFromGapicConfigs(interfaceContexts, productConfig, namer);
    } else {
        // Generate samples using sample configs.
        sampleFiles = generateSamplesFromSampleConfigs(interfaceContexts, productConfig);
    }
    if (!interfaceContexts.isEmpty() && !sampleFiles.isEmpty()) {
        ViewModel entryPoint = generateSampleEntryPoint(interfaceContexts.get(0));
        if (entryPoint != null) {
            sampleFiles.add(entryPoint);
        }
    }
    return ImmutableList.copyOf(sampleFiles);
}
Also used : Arrays(java.util.Arrays) HashMap(java.util.HashMap) StaticLangApiMethodView(com.google.api.codegen.viewmodel.StaticLangApiMethodView) Function(java.util.function.Function) ArrayList(java.util.ArrayList) InterfaceContext(com.google.api.codegen.config.InterfaceContext) SampleEntryPointView(com.google.api.codegen.viewmodel.SampleEntryPointView) MethodSampleView(com.google.api.codegen.viewmodel.MethodSampleView) ImmutableList(com.google.common.collect.ImmutableList) MethodContext(com.google.api.codegen.config.MethodContext) MethodModel(com.google.api.codegen.config.MethodModel) ViewModel(com.google.api.codegen.viewmodel.ViewModel) Map(java.util.Map) StaticLangSampleClassView(com.google.api.codegen.viewmodel.StaticLangSampleClassView) StaticLangFileView(com.google.api.codegen.viewmodel.StaticLangFileView) SampleConfig(com.google.api.codegen.config.SampleConfig) Nullable(javax.annotation.Nullable) GapicCodePathMapper(com.google.api.codegen.gapic.GapicCodePathMapper) InitCodeOutputType(com.google.api.codegen.metacode.InitCodeContext.InitCodeOutputType) SampleContext(com.google.api.codegen.config.SampleContext) CallingForm(com.google.api.codegen.viewmodel.CallingForm) Streams(com.google.common.collect.Streams) GapicProductConfig(com.google.api.codegen.config.GapicProductConfig) ProtoApiModel(com.google.api.codegen.config.ProtoApiModel) GapicInterfaceContext(com.google.api.codegen.config.GapicInterfaceContext) List(java.util.List) Paths(java.nio.file.Paths) SampleSpec(com.google.api.codegen.config.SampleSpec) ImmutableTable(com.google.common.collect.ImmutableTable) MoreObjects.firstNonNull(com.google.common.base.MoreObjects.firstNonNull) ClientMethodType(com.google.api.codegen.viewmodel.ClientMethodType) ImmutableList(com.google.common.collect.ImmutableList) InterfaceContext(com.google.api.codegen.config.InterfaceContext) GapicInterfaceContext(com.google.api.codegen.config.GapicInterfaceContext) ViewModel(com.google.api.codegen.viewmodel.ViewModel)

Example 12 with ProtoApiModel

use of com.google.api.codegen.config.ProtoApiModel in project toolkit by googleapis.

the class RubyGapicSurfaceDocTransformer method generateDoc.

private ViewModel generateDoc(ProtoFile file, GapicProductConfig productConfig) {
    ModelTypeTable typeTable = new ModelTypeTable(new RubyTypeTable(productConfig.getPackageName()), new RubyModelTypeNameConverter(productConfig.getPackageName()));
    // Use file path for package name to get file-specific package instead of package for the API.
    SurfaceNamer namer = new RubySurfaceNamer(typeTable.getFullNameFor(file));
    String subPath = pathMapper.getOutputPath(file.getFullName(), productConfig);
    String baseFilename = namer.getProtoFileName(file.getSimpleName());
    GrpcDocView.Builder doc = GrpcDocView.newBuilder();
    doc.templateFileName(DOC_TEMPLATE_FILENAME);
    doc.outputPath(subPath + "/doc/" + baseFilename);
    doc.fileHeader(fileHeaderTransformer.generateFileHeader(productConfig, ImportSectionView.newBuilder().build(), namer));
    doc.elementDocs(elementDocTransformer.generateElementDocs(productConfig, typeTable, namer, file));
    doc.modules(generateModuleViews(new ProtoApiModel(file.getModel()), productConfig, namer, isSourceApiInterfaceFile(file) ? file : null));
    return doc.build();
}
Also used : RubyTypeTable(com.google.api.codegen.util.ruby.RubyTypeTable) ModelTypeTable(com.google.api.codegen.transformer.ModelTypeTable) ProtoApiModel(com.google.api.codegen.config.ProtoApiModel) GrpcDocView(com.google.api.codegen.viewmodel.GrpcDocView) SurfaceNamer(com.google.api.codegen.transformer.SurfaceNamer)

Example 13 with ProtoApiModel

use of com.google.api.codegen.config.ProtoApiModel in project toolkit by googleapis.

the class NodeJSSamplePackageMetadataTransformer method transform.

@Override
public List<ViewModel> transform(ProtoApiModel model, GapicProductConfig productConfig) {
    boolean shouldGenerateSamplePackages = productConfig.getInterfaceConfigMap().values().stream().flatMap(config -> config.getMethodConfigs().stream()).anyMatch(config -> config.getSampleSpec().isConfigured());
    if (!shouldGenerateSamplePackages) {
        return Collections.emptyList();
    }
    NodeJSPackageMetadataNamer gapicPackageNamer = new NodeJSPackageMetadataNamer(productConfig.getPackageName(), productConfig.getDomainLayerLocation());
    String outputPath = "samples/package.json";
    ViewModel metadataView = metadataTransformer.generateMetadataView(gapicPackageNamer, packageConfig, model, TEMPLATE_FILE, outputPath, TargetLanguage.NODEJS).identifier(samplePackageIdentifier(productConfig)).hasMultipleServices(model.hasMultipleServices()).additionalDependencies(additionalDependencies(gapicPackageNamer)).build();
    return Collections.singletonList(metadataView);
}
Also used : GapicProductConfig(com.google.api.codegen.config.GapicProductConfig) ProtoApiModel(com.google.api.codegen.config.ProtoApiModel) List(java.util.List) PackageMetadataTransformer(com.google.api.codegen.transformer.PackageMetadataTransformer) PackageMetadataConfig(com.google.api.codegen.config.PackageMetadataConfig) ImmutableList(com.google.common.collect.ImmutableList) ViewModel(com.google.api.codegen.viewmodel.ViewModel) TargetLanguage(com.google.api.codegen.common.TargetLanguage) PackageDependencyView(com.google.api.codegen.viewmodel.metadata.PackageDependencyView) Collections(java.util.Collections) VersionBound(com.google.api.codegen.config.VersionBound) ModelToViewTransformer(com.google.api.codegen.transformer.ModelToViewTransformer) ViewModel(com.google.api.codegen.viewmodel.ViewModel)

Example 14 with ProtoApiModel

use of com.google.api.codegen.config.ProtoApiModel in project toolkit by googleapis.

the class GapicGenerator method generate.

@Override
public Map<String, GeneratedResult<Doc>> generate() {
    // Establish required stage for generation.
    model.establishStage(Merged.KEY);
    if (model.getDiagReporter().getDiagCollector().getErrorCount() > 0) {
        return null;
    }
    List<ViewModel> surfaceDocs = modelToViewTransformer.transform(new ProtoApiModel(model), productConfig);
    if (model.getDiagReporter().getDiagCollector().getErrorCount() > 0) {
        return null;
    }
    Map<String, GeneratedResult<Doc>> results = new TreeMap<>();
    for (ViewModel surfaceDoc : surfaceDocs) {
        results.putAll(snippetSetRunner.generate(surfaceDoc));
    }
    return results;
}
Also used : GeneratedResult(com.google.api.codegen.common.GeneratedResult) ProtoApiModel(com.google.api.codegen.config.ProtoApiModel) ViewModel(com.google.api.codegen.viewmodel.ViewModel) TreeMap(java.util.TreeMap)

Example 15 with ProtoApiModel

use of com.google.api.codegen.config.ProtoApiModel in project toolkit by googleapis.

the class GapicGeneratorFactory method create.

/**
 * Create the GapicGenerators based on the given id.
 *
 * <p>If {@code devSamples} is set, standalone samples are generated for all languages, including
 * those that currently have development stubs. Otherwise, samples are only produced in languages
 * where they are production-ready.
 */
public static List<CodeGenerator<?>> create(TargetLanguage language, Model model, GapicProductConfig productConfig, PackageMetadataConfig packageConfig, ArtifactFlags artifactFlags) {
    ArrayList<CodeGenerator<?>> generators = new ArrayList<>();
    // Please keep the following IDs in alphabetical order
    if (language.equals(CSHARP)) {
        String packageName = productConfig.getPackageName();
        Function<String, GapicCodePathMapper> newCodePathMapper = suffix -> CommonGapicCodePathMapper.newBuilder().setPrefix(packageName + File.separator + packageName + suffix).setPackageFilePathNameFormatter(new CSharpNameFormatter()).build();
        Function<ModelToViewTransformer<ProtoApiModel>, CodeGenerator> newCsharpGenerator = transformer -> GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CSharpRenderingUtil())).setModelToViewTransformer(transformer).build();
        if (artifactFlags.surfaceGeneratorEnabled()) {
            GapicCodePathMapper clientPathMapper = newCodePathMapper.apply("");
            if (artifactFlags.codeFilesEnabled()) {
                generators.add(newCsharpGenerator.apply(new CSharpGapicClientTransformer(clientPathMapper)));
            }
            if (artifactFlags.packagingFilesEnabled()) {
                generators.add(newCsharpGenerator.apply(new CSharpGapicClientPackageTransformer(clientPathMapper, packageConfig)));
            }
            GapicCodePathMapper snippetPathMapper = newCodePathMapper.apply(".Snippets");
            if (artifactFlags.codeFilesEnabled()) {
                generators.add(newCsharpGenerator.apply(new CSharpGapicSnippetsTransformer(snippetPathMapper)));
            }
            if (artifactFlags.packagingFilesEnabled()) {
                generators.add(newCsharpGenerator.apply(CSharpBasicPackageTransformer.forSnippets(snippetPathMapper)));
            }
        }
        if (artifactFlags.testGeneratorEnabled()) {
            GapicCodePathMapper smokeTestPathMapper = newCodePathMapper.apply(".SmokeTests");
            if (artifactFlags.codeFilesEnabled()) {
                generators.add(newCsharpGenerator.apply(new CSharpGapicSmokeTestTransformer(smokeTestPathMapper)));
            }
            if (artifactFlags.packagingFilesEnabled()) {
                generators.add(newCsharpGenerator.apply(CSharpBasicPackageTransformer.forSmokeTests(smokeTestPathMapper)));
            }
            GapicCodePathMapper unitTestPathMapper = newCodePathMapper.apply(".Tests");
            if (artifactFlags.codeFilesEnabled()) {
                generators.add(newCsharpGenerator.apply(new CSharpGapicUnitTestTransformer(unitTestPathMapper)));
            }
            if (artifactFlags.packagingFilesEnabled()) {
                generators.add(newCsharpGenerator.apply(CSharpBasicPackageTransformer.forUnitTests(unitTestPathMapper)));
            }
        }
        if (artifactFlags.devSamplesEnabled()) {
            GapicCodePathMapper samplePathMapper = newCodePathMapper.apply(".Samples");
            CSharpStandaloneSampleTransformer csharpSampleTransformer = new CSharpStandaloneSampleTransformer(samplePathMapper);
            generators.add(newCsharpGenerator.apply(csharpSampleTransformer));
            if (artifactFlags.packagingFilesEnabled()) {
                generators.add(newCsharpGenerator.apply(CSharpBasicPackageTransformer.forSamples(samplePathMapper)));
            }
        }
    } else if (language.equals(GO)) {
        if (artifactFlags.surfaceGeneratorEnabled()) {
            CodeGenerator generator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new GoGapicSurfaceTransformer(new PackageNameCodePathMapper())).build();
            generators.add(generator);
        }
        if (artifactFlags.testGeneratorEnabled()) {
            CodeGenerator testGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new GoGapicSurfaceTestTransformer()).build();
            generators.add(testGenerator);
        }
    } else if (language.equals(JAVA)) {
        Function<ModelToViewTransformer<ProtoApiModel>, CodeGenerator> newJavaGenerator = transformer -> GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new JavaRenderingUtil())).setModelToViewTransformer(transformer).build();
        if (artifactFlags.surfaceGeneratorEnabled()) {
            GapicCodePathMapper javaPathMapper = JavaGapicCodePathMapper.newBuilder().prefix("src/main/java").build();
            if (artifactFlags.codeFilesEnabled()) {
                generators.add(newJavaGenerator.apply(new JavaGapicSurfaceTransformer(javaPathMapper)));
                if (artifactFlags.devSamplesEnabled()) {
                    generators.add(newJavaGenerator.apply(new JavaGapicSamplesTransformer()));
                    generators.add(newJavaGenerator.apply(new JavaGapicSamplesPackageTransformer(packageConfig)));
                    generators.add(newJavaGenerator.apply(JavaGapicSamplesTransformer.createManifestTransformer()));
                }
            }
            if (artifactFlags.packagingFilesEnabled()) {
                generators.add(newJavaGenerator.apply(new JavaGapicPackageTransformer<>(packageConfig)));
                CodeGenerator staticResourcesGenerator = new StaticResourcesGenerator(ImmutableMap.<String, String>builder().put("java/static/build.gradle", "../build.gradle").put("java/static/settings.gradle", "../settings.gradle").put("java/static/gradlew", "../gradlew").put("java/static/gradlew.bat", "../gradlew.bat").put("java/static/gradle/wrapper/gradle-wrapper.jar", "../gradle/wrapper/gradle-wrapper.jar").put("java/static/gradle/wrapper/gradle-wrapper.properties", "../gradle/wrapper/gradle-wrapper.properties").build(), ImmutableSet.of("../gradlew"));
                generators.add(staticResourcesGenerator);
            }
        }
        if (artifactFlags.testGeneratorEnabled()) {
            if (artifactFlags.codeFilesEnabled()) {
                GapicCodePathMapper javaTestPathMapper = JavaGapicCodePathMapper.newBuilder().prefix("src/test/java").build();
                generators.add(newJavaGenerator.apply(new JavaSurfaceTestTransformer<>(javaTestPathMapper, new JavaGapicSurfaceTransformer(javaTestPathMapper), "java/test.snip")));
            }
        }
        return generators;
    } else if (language.equals(NODEJS)) {
        if (artifactFlags.surfaceGeneratorEnabled()) {
            GapicCodePathMapper nodeJSPathMapper = new NodeJSCodePathMapper();
            CodeGenerator mainGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new NodeJSGapicSurfaceTransformer(nodeJSPathMapper, packageConfig)).build();
            CodeGenerator metadataGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new NodeJSPackageMetadataTransformer(packageConfig)).build();
            CodeGenerator clientConfigGenerator = LegacyGapicGenerator.newBuilder().setModel(model).setContext(new ClientConfigGapicContext(model, productConfig)).setSnippetSetRunner(new ClientConfigSnippetSetRunner<>(SnippetSetRunner.SNIPPET_RESOURCE_ROOT)).setSnippetFileNames(Arrays.asList("clientconfig/json.snip")).setCodePathMapper(nodeJSPathMapper).build();
            generators.add(mainGenerator);
            generators.add(metadataGenerator);
            generators.add(clientConfigGenerator);
            if (artifactFlags.devSamplesEnabled()) {
                GapicCodePathMapper nodejsSamplePathMapper = new CommonSampleCodePathMapper();
                NodeJSGapicSamplesTransformer nodejsGapicSamplesTransformer = new NodeJSGapicSamplesTransformer(nodejsSamplePathMapper);
                CodeGenerator sampleGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(nodejsGapicSamplesTransformer).build();
                CodeGenerator sampleMetadataGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new NodeJSSamplePackageMetadataTransformer(packageConfig)).build();
                generators.add(sampleGenerator);
                generators.add(sampleMetadataGenerator);
            }
            CodeGenerator messageGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new NodeJSGapicSurfaceDocTransformer()).build();
            generators.add(messageGenerator);
        }
        if (artifactFlags.testGeneratorEnabled()) {
            CodeGenerator testGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new NodeJSGapicSurfaceTestTransformer()).build();
            generators.add(testGenerator);
        }
    } else if (language.equals(PHP)) {
        if (artifactFlags.surfaceGeneratorEnabled()) {
            if (artifactFlags.codeFilesEnabled()) {
                GapicCodePathMapper phpPathMapper = PhpGapicCodePathMapper.newBuilder().setPrefix("src").build();
                CodeGenerator generator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new PhpGapicSurfaceTransformer(productConfig, phpPathMapper, model)).build();
                generators.add(generator);
                GapicCodePathMapper phpClientConfigPathMapper = PhpGapicCodePathMapper.newBuilder().setPrefix("src").setSuffix("resources").build();
                CodeGenerator clientConfigGenerator = LegacyGapicGenerator.newBuilder().setModel(model).setContext(new PhpClientConfigGapicContext(model, productConfig)).setSnippetSetRunner(new ClientConfigSnippetSetRunner<>(SnippetSetRunner.SNIPPET_RESOURCE_ROOT)).setSnippetFileNames(Arrays.asList("clientconfig/json.snip")).setCodePathMapper(phpClientConfigPathMapper).build();
                generators.add(clientConfigGenerator);
            }
            if (artifactFlags.packagingFilesEnabled()) {
                CodeGenerator metadataGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new PhpPackageMetadataTransformer(packageConfig)).build();
                generators.add(metadataGenerator);
            }
            if (artifactFlags.devSamplesEnabled()) {
                GapicCodePathMapper phpSamplePathMapper = PhpGapicCodePathMapper.newBuilder().setPrefix("samples").build();
                PhpGapicSamplesTransformer phpGapicSamplesTransformer = new PhpGapicSamplesTransformer(phpSamplePathMapper);
                CodeGenerator sampleGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(phpGapicSamplesTransformer).build();
                generators.add(sampleGenerator);
            }
        }
        if (artifactFlags.testGeneratorEnabled()) {
            CodeGenerator testGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new PhpGapicSurfaceTestTransformer()).build();
            generators.add(testGenerator);
        }
    } else if (language.equals(PYTHON)) {
        if (artifactFlags.surfaceGeneratorEnabled()) {
            GapicCodePathMapper pythonPathMapper = CommonGapicCodePathMapper.newBuilder().setShouldAppendPackage(true).build();
            CodeGenerator mainGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new PythonRenderingUtil())).setModelToViewTransformer(new PythonGapicSurfaceTransformer(pythonPathMapper, packageConfig)).build();
            CodeGenerator clientConfigGenerator = LegacyGapicGenerator.newBuilder().setModel(model).setContext(new ClientConfigGapicContext(model, productConfig)).setSnippetSetRunner(new ClientConfigSnippetSetRunner<>(SnippetSetRunner.SNIPPET_RESOURCE_ROOT)).setSnippetFileNames(Arrays.asList("clientconfig/python_clientconfig.snip")).setCodePathMapper(pythonPathMapper).build();
            generators.add(mainGenerator);
            generators.add(clientConfigGenerator);
            if (artifactFlags.devSamplesEnabled()) {
                GapicCodePathMapper pythonSamplePathMapper = new CommonSampleCodePathMapper();
                PythonGapicSamplesTransformer pythonGapicSampleTransformer = new PythonGapicSamplesTransformer(pythonSamplePathMapper, packageConfig);
                CodeGenerator sampleGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new PythonRenderingUtil())).setModelToViewTransformer(pythonGapicSampleTransformer).build();
                generators.add(sampleGenerator);
            }
            CodeGenerator metadataGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new PythonRenderingUtil())).setModelToViewTransformer(new PythonPackageMetadataTransformer(packageConfig)).build();
            generators.add(metadataGenerator);
        }
        if (artifactFlags.testGeneratorEnabled()) {
            GapicCodePathMapper pythonTestPathMapper = CommonGapicCodePathMapper.newBuilder().setPrefix("test").setShouldAppendPackage(true).build();
            CodeGenerator testGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new PythonGapicSurfaceTestTransformer(pythonTestPathMapper, packageConfig)).build();
            generators.add(testGenerator);
        }
    } else if (language.equals(RUBY)) {
        if (artifactFlags.surfaceGeneratorEnabled()) {
            GapicCodePathMapper rubyPathMapper = CommonGapicCodePathMapper.newBuilder().setPrefix("lib").setShouldAppendPackage(true).setPackageFilePathNameFormatter(new RubyNameFormatter()).build();
            CodeGenerator mainGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new RubyGapicSurfaceTransformer(rubyPathMapper, packageConfig)).build();
            CodeGenerator clientConfigGenerator = LegacyGapicGenerator.newBuilder().setModel(model).setContext(new ClientConfigGapicContext(model, productConfig)).setSnippetSetRunner(new ClientConfigSnippetSetRunner<>(SnippetSetRunner.SNIPPET_RESOURCE_ROOT)).setSnippetFileNames(Arrays.asList("clientconfig/json.snip")).setCodePathMapper(rubyPathMapper).build();
            CodeGenerator metadataGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new RubyPackageMetadataTransformer(packageConfig)).build();
            if (artifactFlags.devSamplesEnabled()) {
                GapicCodePathMapper rubySamplePathMapper = new CommonSampleCodePathMapper();
                RubyGapicSamplesTransformer rubyGapicSamplesTransformer = new RubyGapicSamplesTransformer(rubySamplePathMapper);
                CodeGenerator sampleGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(rubyGapicSamplesTransformer).build();
                CodeGenerator sampleMetadataGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new RubySamplePackageMetadataTransformer(packageConfig)).build();
                generators.add(sampleGenerator);
                generators.add(sampleMetadataGenerator);
            }
            generators.add(mainGenerator);
            generators.add(clientConfigGenerator);
            generators.add(metadataGenerator);
            CodeGenerator messageGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new RubyGapicSurfaceDocTransformer(rubyPathMapper, packageConfig)).build();
            generators.add(messageGenerator);
        }
        if (artifactFlags.testGeneratorEnabled()) {
            CommonGapicCodePathMapper.Builder rubyTestPathMapperBuilder = CommonGapicCodePathMapper.newBuilder().setShouldAppendPackage(true).setPackageFilePathNameFormatter(new RubyNameFormatter());
            CodeGenerator testGenerator = GapicGenerator.newBuilder().setModel(model).setProductConfig(productConfig).setSnippetSetRunner(new CommonSnippetSetRunner(new CommonRenderingUtil())).setModelToViewTransformer(new RubyGapicSurfaceTestTransformer(rubyTestPathMapperBuilder.setPrefix("test").build(), rubyTestPathMapperBuilder.setPrefix("acceptance").build(), packageConfig)).build();
            generators.add(testGenerator);
        }
    } else {
        throw new UnsupportedOperationException("GapicGeneratorFactory: unsupported language \"" + language + "\"");
    }
    if (generators.isEmpty()) {
        throw new IllegalArgumentException("No artifacts are enabled.");
    }
    return generators;
}
Also used : Arrays(java.util.Arrays) JAVA(com.google.api.codegen.common.TargetLanguage.JAVA) CSharpGapicSmokeTestTransformer(com.google.api.codegen.transformer.csharp.CSharpGapicSmokeTestTransformer) CodeGenerator(com.google.api.codegen.common.CodeGenerator) RubyPackageMetadataTransformer(com.google.api.codegen.transformer.ruby.RubyPackageMetadataTransformer) RubySamplePackageMetadataTransformer(com.google.api.codegen.transformer.ruby.RubySamplePackageMetadataTransformer) JavaRenderingUtil(com.google.api.codegen.util.java.JavaRenderingUtil) PhpPackageMetadataTransformer(com.google.api.codegen.transformer.php.PhpPackageMetadataTransformer) CSharpGapicSnippetsTransformer(com.google.api.codegen.transformer.csharp.CSharpGapicSnippetsTransformer) JavaSurfaceTestTransformer(com.google.api.codegen.transformer.java.JavaSurfaceTestTransformer) JavaGapicSurfaceTransformer(com.google.api.codegen.transformer.java.JavaGapicSurfaceTransformer) CSharpGapicUnitTestTransformer(com.google.api.codegen.transformer.csharp.CSharpGapicUnitTestTransformer) SnippetSetRunner(com.google.api.codegen.SnippetSetRunner) GoGapicSurfaceTransformer(com.google.api.codegen.transformer.go.GoGapicSurfaceTransformer) PhpGapicSurfaceTestTransformer(com.google.api.codegen.transformer.php.PhpGapicSurfaceTestTransformer) RubyGapicSurfaceTransformer(com.google.api.codegen.transformer.ruby.RubyGapicSurfaceTransformer) ImmutableSet(com.google.common.collect.ImmutableSet) ImmutableMap(com.google.common.collect.ImmutableMap) CSharpGapicClientPackageTransformer(com.google.api.codegen.transformer.csharp.CSharpGapicClientPackageTransformer) CSharpBasicPackageTransformer(com.google.api.codegen.transformer.csharp.CSharpBasicPackageTransformer) NodeJSGapicSurfaceTestTransformer(com.google.api.codegen.transformer.nodejs.NodeJSGapicSurfaceTestTransformer) NodeJSSamplePackageMetadataTransformer(com.google.api.codegen.transformer.nodejs.NodeJSSamplePackageMetadataTransformer) GO(com.google.api.codegen.common.TargetLanguage.GO) List(java.util.List) PYTHON(com.google.api.codegen.common.TargetLanguage.PYTHON) JavaGapicPackageTransformer(com.google.api.codegen.transformer.java.JavaGapicPackageTransformer) JavaGapicCodePathMapper(com.google.api.codegen.java.JavaGapicCodePathMapper) CSHARP(com.google.api.codegen.common.TargetLanguage.CSHARP) ClientConfigSnippetSetRunner(com.google.api.codegen.clientconfig.ClientConfigSnippetSetRunner) PhpGapicCodePathMapper(com.google.api.codegen.php.PhpGapicCodePathMapper) ModelToViewTransformer(com.google.api.codegen.transformer.ModelToViewTransformer) PackageMetadataConfig(com.google.api.codegen.config.PackageMetadataConfig) NodeJSGapicSurfaceDocTransformer(com.google.api.codegen.transformer.nodejs.NodeJSGapicSurfaceDocTransformer) CSharpGapicClientTransformer(com.google.api.codegen.transformer.csharp.CSharpGapicClientTransformer) NODEJS(com.google.api.codegen.common.TargetLanguage.NODEJS) PythonPackageMetadataTransformer(com.google.api.codegen.transformer.py.PythonPackageMetadataTransformer) NodeJSGapicSurfaceTransformer(com.google.api.codegen.transformer.nodejs.NodeJSGapicSurfaceTransformer) PythonGapicSurfaceTestTransformer(com.google.api.codegen.transformer.py.PythonGapicSurfaceTestTransformer) RubyGapicSamplesTransformer(com.google.api.codegen.transformer.ruby.RubyGapicSamplesTransformer) Function(java.util.function.Function) CSharpRenderingUtil(com.google.api.codegen.util.csharp.CSharpRenderingUtil) ArrayList(java.util.ArrayList) NodeJSPackageMetadataTransformer(com.google.api.codegen.transformer.nodejs.NodeJSPackageMetadataTransformer) PhpGapicSamplesTransformer(com.google.api.codegen.transformer.php.PhpGapicSamplesTransformer) RUBY(com.google.api.codegen.common.TargetLanguage.RUBY) NodeJSGapicSamplesTransformer(com.google.api.codegen.transformer.nodejs.NodeJSGapicSamplesTransformer) NodeJSCodePathMapper(com.google.api.codegen.nodejs.NodeJSCodePathMapper) RubyGapicSurfaceTestTransformer(com.google.api.codegen.transformer.ruby.RubyGapicSurfaceTestTransformer) PhpClientConfigGapicContext(com.google.api.codegen.clientconfig.php.PhpClientConfigGapicContext) TargetLanguage(com.google.api.codegen.common.TargetLanguage) CSharpStandaloneSampleTransformer(com.google.api.codegen.transformer.csharp.CSharpStandaloneSampleTransformer) CSharpNameFormatter(com.google.api.codegen.util.csharp.CSharpNameFormatter) PythonGapicSurfaceTransformer(com.google.api.codegen.transformer.py.PythonGapicSurfaceTransformer) PHP(com.google.api.codegen.common.TargetLanguage.PHP) JavaGapicSamplesTransformer(com.google.api.codegen.transformer.java.JavaGapicSamplesTransformer) PhpGapicSurfaceTransformer(com.google.api.codegen.transformer.php.PhpGapicSurfaceTransformer) PythonRenderingUtil(com.google.api.codegen.util.py.PythonRenderingUtil) File(java.io.File) CommonSnippetSetRunner(com.google.api.codegen.rendering.CommonSnippetSetRunner) RubyNameFormatter(com.google.api.codegen.util.ruby.RubyNameFormatter) GapicProductConfig(com.google.api.codegen.config.GapicProductConfig) ProtoApiModel(com.google.api.codegen.config.ProtoApiModel) JavaGapicSamplesPackageTransformer(com.google.api.codegen.transformer.java.JavaGapicSamplesPackageTransformer) GoGapicSurfaceTestTransformer(com.google.api.codegen.transformer.go.GoGapicSurfaceTestTransformer) ClientConfigGapicContext(com.google.api.codegen.clientconfig.ClientConfigGapicContext) RubyGapicSurfaceDocTransformer(com.google.api.codegen.transformer.ruby.RubyGapicSurfaceDocTransformer) PythonGapicSamplesTransformer(com.google.api.codegen.transformer.py.PythonGapicSamplesTransformer) CommonRenderingUtil(com.google.api.codegen.util.CommonRenderingUtil) Model(com.google.api.tools.framework.model.Model) ModelToViewTransformer(com.google.api.codegen.transformer.ModelToViewTransformer) JavaGapicPackageTransformer(com.google.api.codegen.transformer.java.JavaGapicPackageTransformer) NodeJSCodePathMapper(com.google.api.codegen.nodejs.NodeJSCodePathMapper) RubyGapicSurfaceTestTransformer(com.google.api.codegen.transformer.ruby.RubyGapicSurfaceTestTransformer) ArrayList(java.util.ArrayList) NodeJSSamplePackageMetadataTransformer(com.google.api.codegen.transformer.nodejs.NodeJSSamplePackageMetadataTransformer) PhpGapicSamplesTransformer(com.google.api.codegen.transformer.php.PhpGapicSamplesTransformer) JavaGapicSurfaceTransformer(com.google.api.codegen.transformer.java.JavaGapicSurfaceTransformer) PythonRenderingUtil(com.google.api.codegen.util.py.PythonRenderingUtil) NodeJSPackageMetadataTransformer(com.google.api.codegen.transformer.nodejs.NodeJSPackageMetadataTransformer) GoGapicSurfaceTransformer(com.google.api.codegen.transformer.go.GoGapicSurfaceTransformer) CommonRenderingUtil(com.google.api.codegen.util.CommonRenderingUtil) PhpPackageMetadataTransformer(com.google.api.codegen.transformer.php.PhpPackageMetadataTransformer) RubyGapicSurfaceTransformer(com.google.api.codegen.transformer.ruby.RubyGapicSurfaceTransformer) RubySamplePackageMetadataTransformer(com.google.api.codegen.transformer.ruby.RubySamplePackageMetadataTransformer) JavaGapicSamplesPackageTransformer(com.google.api.codegen.transformer.java.JavaGapicSamplesPackageTransformer) NodeJSGapicSurfaceTransformer(com.google.api.codegen.transformer.nodejs.NodeJSGapicSurfaceTransformer) CSharpStandaloneSampleTransformer(com.google.api.codegen.transformer.csharp.CSharpStandaloneSampleTransformer) PhpGapicSurfaceTestTransformer(com.google.api.codegen.transformer.php.PhpGapicSurfaceTestTransformer) NodeJSGapicSurfaceDocTransformer(com.google.api.codegen.transformer.nodejs.NodeJSGapicSurfaceDocTransformer) CSharpGapicClientTransformer(com.google.api.codegen.transformer.csharp.CSharpGapicClientTransformer) RubyPackageMetadataTransformer(com.google.api.codegen.transformer.ruby.RubyPackageMetadataTransformer) RubyGapicSamplesTransformer(com.google.api.codegen.transformer.ruby.RubyGapicSamplesTransformer) CSharpRenderingUtil(com.google.api.codegen.util.csharp.CSharpRenderingUtil) CSharpGapicClientPackageTransformer(com.google.api.codegen.transformer.csharp.CSharpGapicClientPackageTransformer) CSharpNameFormatter(com.google.api.codegen.util.csharp.CSharpNameFormatter) CSharpGapicUnitTestTransformer(com.google.api.codegen.transformer.csharp.CSharpGapicUnitTestTransformer) CSharpGapicSnippetsTransformer(com.google.api.codegen.transformer.csharp.CSharpGapicSnippetsTransformer) GoGapicSurfaceTestTransformer(com.google.api.codegen.transformer.go.GoGapicSurfaceTestTransformer) PhpClientConfigGapicContext(com.google.api.codegen.clientconfig.php.PhpClientConfigGapicContext) ClientConfigGapicContext(com.google.api.codegen.clientconfig.ClientConfigGapicContext) CommonSnippetSetRunner(com.google.api.codegen.rendering.CommonSnippetSetRunner) JavaRenderingUtil(com.google.api.codegen.util.java.JavaRenderingUtil) PythonGapicSurfaceTestTransformer(com.google.api.codegen.transformer.py.PythonGapicSurfaceTestTransformer) RubyNameFormatter(com.google.api.codegen.util.ruby.RubyNameFormatter) PythonGapicSamplesTransformer(com.google.api.codegen.transformer.py.PythonGapicSamplesTransformer) RubyGapicSurfaceDocTransformer(com.google.api.codegen.transformer.ruby.RubyGapicSurfaceDocTransformer) JavaGapicCodePathMapper(com.google.api.codegen.java.JavaGapicCodePathMapper) PhpGapicCodePathMapper(com.google.api.codegen.php.PhpGapicCodePathMapper) CodeGenerator(com.google.api.codegen.common.CodeGenerator) PhpClientConfigGapicContext(com.google.api.codegen.clientconfig.php.PhpClientConfigGapicContext) ClientConfigSnippetSetRunner(com.google.api.codegen.clientconfig.ClientConfigSnippetSetRunner) JavaSurfaceTestTransformer(com.google.api.codegen.transformer.java.JavaSurfaceTestTransformer) PhpGapicSurfaceTransformer(com.google.api.codegen.transformer.php.PhpGapicSurfaceTransformer) NodeJSGapicSamplesTransformer(com.google.api.codegen.transformer.nodejs.NodeJSGapicSamplesTransformer) JavaGapicSamplesTransformer(com.google.api.codegen.transformer.java.JavaGapicSamplesTransformer) CSharpGapicSmokeTestTransformer(com.google.api.codegen.transformer.csharp.CSharpGapicSmokeTestTransformer) NodeJSGapicSurfaceTestTransformer(com.google.api.codegen.transformer.nodejs.NodeJSGapicSurfaceTestTransformer) PythonPackageMetadataTransformer(com.google.api.codegen.transformer.py.PythonPackageMetadataTransformer) PythonGapicSurfaceTransformer(com.google.api.codegen.transformer.py.PythonGapicSurfaceTransformer)

Aggregations

ProtoApiModel (com.google.api.codegen.config.ProtoApiModel)15 ViewModel (com.google.api.codegen.viewmodel.ViewModel)9 ImmutableList (com.google.common.collect.ImmutableList)6 GapicProductConfig (com.google.api.codegen.config.GapicProductConfig)5 CommonSnippetSetRunner (com.google.api.codegen.rendering.CommonSnippetSetRunner)5 ImmutableMap (com.google.common.collect.ImmutableMap)5 ArrayList (java.util.ArrayList)5 List (java.util.List)5 GeneratedResult (com.google.api.codegen.common.GeneratedResult)3 PackageMetadataConfig (com.google.api.codegen.config.PackageMetadataConfig)3 ModelToViewTransformer (com.google.api.codegen.transformer.ModelToViewTransformer)3 PackageMetadataView (com.google.api.codegen.viewmodel.metadata.PackageMetadataView)3 Function (java.util.function.Function)3 SnippetSetRunner (com.google.api.codegen.SnippetSetRunner)2 TargetLanguage (com.google.api.codegen.common.TargetLanguage)2 ApiModel (com.google.api.codegen.config.ApiModel)2 GapicInterfaceContext (com.google.api.codegen.config.GapicInterfaceContext)2 InterfaceContext (com.google.api.codegen.config.InterfaceContext)2 InterfaceModel (com.google.api.codegen.config.InterfaceModel)2 MethodModel (com.google.api.codegen.config.MethodModel)2