Search in sources :

Example 1 with Model

use of com.google.api.tools.framework.model.Model in project toolkit by googleapis.

the class CSharpGapicClientTransformer method generateCsProjView.

private PackageInfoView generateCsProjView(GapicInterfaceContext context) {
    Model model = context.getModel();
    GapicProductConfig productConfig = context.getProductConfig();
    PackageInfoView.Builder view = PackageInfoView.newBuilder();
    view.templateFileName(CSPROJ_TEMPLATE_FILENAME);
    String outputPath = pathMapper.getOutputPath(context.getInterface().getFullName(), productConfig);
    view.outputPath(outputPath + File.separator + productConfig.getPackageName() + ".csproj");
    view.fileHeader(fileHeaderTransformer.generateFileHeader(context));
    view.serviceTitle(model.getServiceConfig().getTitle());
    view.serviceDescription(model.getServiceConfig().getDocumentation().getSummary().trim());
    view.domainLayerLocation(productConfig.getDomainLayerLocation());
    // Unused in C#
    view.authScopes(new ArrayList<String>());
    view.releaseLevel(productConfig.getReleaseLevel());
    String versionSuffix;
    switch(productConfig.getReleaseLevel()) {
        case ALPHA:
            versionSuffix = "-alpha01";
            break;
        case BETA:
            versionSuffix = "-beta01";
            break;
        default:
            versionSuffix = "";
            break;
    }
    view.version("1.0.0" + versionSuffix);
    String tags = "";
    for (String tag : Splitter.on('.').split(productConfig.getPackageName())) {
        if (tag.matches("[vV][\\d.]+")) {
            break;
        }
        tags += ";" + tag;
    }
    view.tags(tags.isEmpty() ? "" : tags.substring(1));
    view.packageMetadata(generatePackageMetadataView(context));
    view.serviceDocs(new ArrayList<ServiceDocView>());
    return view.build();
}
Also used : GapicProductConfig(com.google.api.codegen.config.GapicProductConfig) ServiceDocView(com.google.api.codegen.viewmodel.ServiceDocView) ViewModel(com.google.api.codegen.viewmodel.ViewModel) InterfaceModel(com.google.api.codegen.config.InterfaceModel) MethodModel(com.google.api.codegen.config.MethodModel) ApiModel(com.google.api.codegen.config.ApiModel) Model(com.google.api.tools.framework.model.Model) PackageInfoView(com.google.api.codegen.viewmodel.PackageInfoView)

Example 2 with Model

use of com.google.api.tools.framework.model.Model in project toolkit by googleapis.

the class NodeJSGapicSurfaceDocTransformer method transform.

@Override
public List<ViewModel> transform(ApiModel apiModel, GapicProductConfig productConfig) {
    Model model = ((ProtoApiModel) apiModel).getProtoModel();
    ImmutableList.Builder<ViewModel> surfaceDocs = ImmutableList.builder();
    for (ProtoFile file : new ProtoFileView().getElementIterable(model)) {
        surfaceDocs.add(generateDoc(file, productConfig));
    }
    return surfaceDocs.build();
}
Also used : ImmutableList(com.google.common.collect.ImmutableList) ProtoFileView(com.google.api.codegen.ProtoFileView) ProtoApiModel(com.google.api.codegen.config.ProtoApiModel) ApiModel(com.google.api.codegen.config.ApiModel) ViewModel(com.google.api.codegen.viewmodel.ViewModel) Model(com.google.api.tools.framework.model.Model) ProtoFile(com.google.api.tools.framework.model.ProtoFile) ProtoApiModel(com.google.api.codegen.config.ProtoApiModel) ViewModel(com.google.api.codegen.viewmodel.ViewModel)

Example 3 with Model

use of com.google.api.tools.framework.model.Model in project toolkit by googleapis.

the class PythonGapicSurfaceTransformer method transform.

@Override
public List<ViewModel> transform(ApiModel apiModel, GapicProductConfig productConfig) {
    // TODO(andrealin): Remove the ProtoApiModel cast.
    Model model = ((ProtoApiModel) apiModel).getProtoModel();
    ImmutableList.Builder<ViewModel> views = ImmutableList.builder();
    views.addAll(generateServiceSurfaces(model, productConfig));
    views.addAll(generateVersionedDirectoryViews(model, productConfig));
    views.addAll(generateTopLevelViews(model, productConfig));
    return views.build();
}
Also used : ImmutableList(com.google.common.collect.ImmutableList) ViewModel(com.google.api.codegen.viewmodel.ViewModel) InterfaceModel(com.google.api.codegen.config.InterfaceModel) FieldModel(com.google.api.codegen.config.FieldModel) MethodModel(com.google.api.codegen.config.MethodModel) ProtoApiModel(com.google.api.codegen.config.ProtoApiModel) ApiModel(com.google.api.codegen.config.ApiModel) Model(com.google.api.tools.framework.model.Model) ProtoApiModel(com.google.api.codegen.config.ProtoApiModel) ViewModel(com.google.api.codegen.viewmodel.ViewModel)

Example 4 with Model

use of com.google.api.tools.framework.model.Model in project toolkit by googleapis.

the class CSharpGapicClientPackageTransformer method generateCsProjView.

private PackageInfoView generateCsProjView(GapicInterfaceContext context) {
    Model model = context.getModel();
    GapicProductConfig productConfig = context.getProductConfig();
    PackageInfoView.Builder view = PackageInfoView.newBuilder();
    view.templateFileName(CSPROJ_TEMPLATE_FILENAME);
    String outputPath = pathMapper.getOutputPath(context.getInterface().getFullName(), productConfig);
    view.outputPath(outputPath + File.separator + productConfig.getPackageName() + ".csproj");
    view.fileHeader(fileHeaderTransformer.generateFileHeader(context));
    view.serviceTitle(model.getServiceConfig().getTitle());
    view.serviceDescription(model.getServiceConfig().getDocumentation().getSummary().trim());
    view.domainLayerLocation(productConfig.getDomainLayerLocation());
    // Unused in C#
    view.authScopes(new ArrayList<>());
    view.releaseLevel(productConfig.getReleaseLevel());
    String versionSuffix;
    switch(productConfig.getReleaseLevel()) {
        case ALPHA:
            versionSuffix = "-alpha01";
            break;
        case BETA:
            versionSuffix = "-beta01";
            break;
        default:
            versionSuffix = "";
            break;
    }
    view.version("1.0.0" + versionSuffix);
    String tags = "";
    for (String tag : Splitter.on('.').split(productConfig.getPackageName())) {
        if (tag.matches("[vV][\\d.]+")) {
            break;
        }
        tags += ";" + tag;
    }
    view.tags(tags.isEmpty() ? "" : tags.substring(1));
    view.packageMetadata(generatePackageMetadataView(context));
    view.serviceDocs(new ArrayList<>());
    return view.build();
}
Also used : GapicProductConfig(com.google.api.codegen.config.GapicProductConfig) ViewModel(com.google.api.codegen.viewmodel.ViewModel) ProtoApiModel(com.google.api.codegen.config.ProtoApiModel) InterfaceModel(com.google.api.codegen.config.InterfaceModel) Model(com.google.api.tools.framework.model.Model) PackageInfoView(com.google.api.codegen.viewmodel.PackageInfoView)

Example 5 with Model

use of com.google.api.tools.framework.model.Model in project toolkit by googleapis.

the class GapicConfigProducerTest method testCreateProductWithGRPCServiceConfig.

@Test
public void testCreateProductWithGRPCServiceConfig() {
    TestDataLocator locator = MixedPathTestDataLocator.create(this.getClass());
    locator.addTestDataSource(CodegenTestUtil.class, "testsrc/protoannotations");
    Model model = CodegenTestUtil.readModel(locator, tempDir, new String[] { "library.proto", "common_resources.proto", "another_service.proto" }, new String[] { "library.yaml" });
    ServiceConfig serviceConfig = CodegenTestUtil.readGRPCServiceConfig(model.getDiagReporter().getDiagCollector(), locator, "library_grpc_service_config.json");
    ConfigProto configProto = CodegenTestUtil.readConfig(model.getDiagReporter().getDiagCollector(), locator, new String[] { "library_v2_gapic.yaml" });
    GapicProductConfig product = GapicProductConfig.create(model, configProto, null, "google.example.library.v1", null, TargetLanguage.GO, serviceConfig, TransportProtocol.GRPC);
    assertThat(model.getDiagReporter().getDiagCollector().hasErrors()).isFalse();
    assertThat(product).isNotNull();
    InterfaceConfig libraryInterface = product.getInterfaceConfig("google.example.library.v1.LibraryService");
    Map<String, RetryParamsDefinitionProto> params = libraryInterface.getRetrySettingsDefinition();
    assertThat(params.get("retry_policy_1_params")).isNotNull();
    assertThat(params.get("no_retry_1_params")).isNotNull();
    assertThat(params.get("no_retry_1_params").getTotalTimeoutMillis()).isEqualTo(60000);
    assertThat(params.get("no_retry_params")).isNotNull();
    assertThat(params.get("no_retry_params").getTotalTimeoutMillis()).isEqualTo(0);
    Map<String, ImmutableList<String>> codes = libraryInterface.getRetryCodesConfig().getRetryCodesDefinition();
    assertThat(codes.get("retry_policy_1_codes")).isNotNull();
    assertThat(codes.get("no_retry_1_codes")).isNotNull();
    assertThat(codes.get("no_retry_codes")).isNotNull();
}
Also used : ServiceConfig(com.google.api.codegen.grpc.ServiceConfig) ConfigProto(com.google.api.codegen.ConfigProto) ImmutableList(com.google.common.collect.ImmutableList) Model(com.google.api.tools.framework.model.Model) RetryParamsDefinitionProto(com.google.api.codegen.RetryParamsDefinitionProto) TestDataLocator(com.google.api.tools.framework.model.testing.TestDataLocator) MixedPathTestDataLocator(com.google.api.codegen.MixedPathTestDataLocator) Test(org.junit.Test)

Aggregations

Model (com.google.api.tools.framework.model.Model)14 GapicProductConfig (com.google.api.codegen.config.GapicProductConfig)5 ProtoApiModel (com.google.api.codegen.config.ProtoApiModel)4 ViewModel (com.google.api.codegen.viewmodel.ViewModel)4 TestDataLocator (com.google.api.tools.framework.model.testing.TestDataLocator)4 ArrayList (java.util.ArrayList)4 ConfigProto (com.google.api.codegen.ConfigProto)3 MixedPathTestDataLocator (com.google.api.codegen.MixedPathTestDataLocator)3 ApiModel (com.google.api.codegen.config.ApiModel)3 InterfaceModel (com.google.api.codegen.config.InterfaceModel)3 PackageMetadataConfig (com.google.api.codegen.config.PackageMetadataConfig)3 ImmutableList (com.google.common.collect.ImmutableList)3 Test (org.junit.Test)3 CodeGenerator (com.google.api.codegen.common.CodeGenerator)2 MethodModel (com.google.api.codegen.config.MethodModel)2 PackageInfoView (com.google.api.codegen.viewmodel.PackageInfoView)2 Diag (com.google.api.tools.framework.model.Diag)2 ImmutableSet (com.google.common.collect.ImmutableSet)2 List (java.util.List)2 ProtoFileView (com.google.api.codegen.ProtoFileView)1