@Override public List<String> getAuthScopes(GapicProductConfig gapicProductConfig) { return getAuthScopes(gapicProductConfig.getProtoParser(), getInterfaces()); }
public ProtoInterfaceModel(Interface protoInterface) { this.protoInterface = protoInterface; apiModel = new ProtoApiModel(protoInterface.getModel()); }
private Iterable<ViewModel> generateVersionedDirectoryViews( ProtoApiModel apiModel, GapicProductConfig productConfig) { ImmutableList.Builder<ViewModel> views = ImmutableList.builder(); views.add(generateTypesView(apiModel.getProtoModel(), productConfig)); views.add(generateVersionedInitView(apiModel, productConfig)); return views.build(); }
@Override public List<ViewModel> transform(ProtoApiModel model, GapicProductConfig productConfig) { Collection<? extends InterfaceModel> apiInterfaces = model .getInterfaces() .stream() .filter(productConfig::hasInterfaceConfig) .collect(ImmutableList.toImmutableList()); ImmutableList.Builder<ViewModel> models = ImmutableList.builder(); models.addAll(generateIndexViews(apiInterfaces, productConfig)); models.addAll(generateApiClasses(apiInterfaces, productConfig, model.hasMultipleServices())); return models.build(); }
@Override public List<ViewModel> transform(ProtoApiModel model, GapicProductConfig productConfig) { return Streams.findLast( model.getInterfaces().stream().filter(productConfig::hasInterfaceConfig)) .map(i -> createInterfaceContext(i, productConfig)) .map(this::generateCsProjView) .<List<ViewModel>>map(ImmutableList::of) .orElse(ImmutableList.of()); }
@Test public void testGetAuthScopes() { List<ProtoInterfaceModel> interfaces = Arrays.asList( new ProtoInterfaceModel(libraryService), new ProtoInterfaceModel(foodService)); List<String> scopes = apiModel.getAuthScopes(protoParser, interfaces); assertThat(scopes.size()).isEqualTo(6); assertThat(scopes.contains("https://www.googleapis.com/auth/calendar")).isTrue(); assertThat(scopes.contains("https://www.googleapis.com/auth/calendar.read")).isTrue(); assertThat(scopes.contains("https://www.googleapis.com/auth/default")).isTrue(); assertThat(scopes.contains("https://www.googleapis.com/auth/food")).isTrue(); assertThat(scopes.contains("https://www.googleapis.com/auth/library")).isTrue(); assertThat(scopes.contains("https://www.googleapis.com/auth/pumpkin")).isTrue(); } }
ImmutableList.Builder<ViewModel> serviceSurfaces = ImmutableList.builder(); for (InterfaceModel apiInterface : apiModel.getInterfaces()) { if (!productConfig.hasInterfaceConfig(apiInterface)) { continue; generateEnumView(productConfig, modelTypeTable, namer, apiModel.getProtoModel().getFiles()); if (!enumFile.elementDocs().isEmpty()) { serviceSurfaces.add(enumFile);
@Override public List<ProtoTypeRef> getAdditionalTypes() { return getTypes(protoModel) .stream() .map(ProtoTypeRef::create) .collect(ImmutableList.toImmutableList()); }
@Override public List<ViewModel> transform(ProtoApiModel model, GapicProductConfig productConfig) { ImmutableList.Builder<ViewModel> models = ImmutableList.builder(); for (InterfaceModel apiInterface : model.getInterfaces()) { if (!productConfig.hasInterfaceConfig(apiInterface)) { continue; } GapicInterfaceContext context = createContext(apiInterface, productConfig); models.addAll(generateSamples(context)); } return models.build(); }
@Override public List<ViewModel> transform(ProtoApiModel model, GapicProductConfig productConfig) { List<ViewModel> surfaceDocs = new ArrayList<>(); SurfaceNamer namer = createSurfaceNamer(productConfig); for (InterfaceModel apiInterface : model.getInterfaces()) { if (!productConfig.hasInterfaceConfig(apiInterface)) { continue; } ImportTypeTable typeTable = createTypeTable(namer.getExamplePackageName()); InterfaceContext context = createInterfaceContext(apiInterface, productConfig, namer, typeTable); List<ViewModel> sampleFiles = generateSampleFiles(context); surfaceDocs.addAll(sampleFiles); } return surfaceDocs; }
@Override public Map<String, GeneratedResult<Doc>> generate() { ImmutableMap.Builder<String, GeneratedResult<Doc>> results = new ImmutableMap.Builder<>(); ProtoApiModel apiModel = new ProtoApiModel(model); List<PackageMetadataView> metadataViews = transformer.transform(apiModel, config); for (PackageMetadataView view : metadataViews) { CommonSnippetSetRunner runner = new CommonSnippetSetRunner(view, false); results.putAll(runner.generate(view)); } return results.build(); } }
private ViewModel generateTopLevelEntryPoint( ProtoApiModel apiModel, ProductConfig productConfig) { SurfaceNamer namer = new PythonSurfaceNamer(productConfig.getPackageName()); boolean packageHasEnums = packageHasEnums(apiModel.getProtoModel()); ImportSectionView imports = importSectionTransformer.generateTopLeveEntryPointImportSection( apiModel, productConfig, namer, packageHasEnums); return VersionIndexView.newBuilder() .templateFileName(TOP_LEVEL_ENTRY_POINT_FILENAME) .outputPath(topLevelEntryPointFileName(namer)) .requireViews(topLevelRequireViews(apiModel, productConfig, namer)) .apiVersion(namer.getApiWrapperModuleVersion()) .namespace(namer.getVersionedDirectoryNamespace()) .fileHeader(fileHeaderTransformer.generateFileHeader(productConfig, imports, namer)) .packageHasEnums(packageHasEnums) .build(); }
@Override public List<ViewModel> transform(ProtoApiModel model, GapicProductConfig productConfig) { List<ViewModel> views = new ArrayList<>(); for (InterfaceModel apiInterface : model.getInterfaces()) { if (!productConfig.hasInterfaceConfig(apiInterface)) { continue; } GapicInterfaceContext context = createContext(apiInterface, productConfig, PhpSurfaceNamer.TestKind.UNIT); views.add(createUnitTestFileView(context)); if (context.getInterfaceConfig().getSmokeTestConfig() != null) { context = createContext(apiInterface, productConfig, PhpSurfaceNamer.TestKind.SYSTEM); views.add(createSmokeTestClassView(context)); } } return views; }
public ConfigNode mergeConfig(Model model, String fileName) { ConfigMerger configMerger = createMerger(model, fileName); if (configMerger == null) { return null; } return configMerger.mergeConfig(new ProtoApiModel(model)); }
private ViewModel generateVersionedInitView(ProtoApiModel apiModel, ProductConfig productConfig) { SurfaceNamer namer = new PythonSurfaceNamer(productConfig.getPackageName()); boolean packageHasEnums = packageHasEnums(apiModel.getProtoModel()); ImportSectionView imports = importSectionTransformer.generateVersionedInitImportSection( apiModel, productConfig, namer, packageHasEnums); return VersionIndexView.newBuilder() .templateFileName(VERSIONED_INIT_TEMPLATE_FILENAME) .outputPath(versionedInitOutputFile(namer)) .requireViews(versionedInitRequireViews(apiModel, productConfig, namer)) .apiVersion(namer.getApiWrapperModuleVersion()) .namespace(namer.getVersionedDirectoryNamespace()) .fileHeader(fileHeaderTransformer.generateFileHeader(productConfig, imports, namer)) .packageHasEnums(packageHasEnums) .build(); }
@Override public List<ViewModel> transform(ProtoApiModel model, GapicProductConfig productConfig) { List<ViewModel> models = new ArrayList<>(); GoSurfaceNamer namer = new GoSurfaceNamer(productConfig.getPackageName()); for (InterfaceModel apiInterface : model.getInterfaces()) { if (!productConfig.hasInterfaceConfig(apiInterface)) { continue; } GapicInterfaceContext context = GapicInterfaceContext.create( apiInterface, productConfig, createTypeTable(), namer, featureConfig); models.add(generate(context)); context = GapicInterfaceContext.create( apiInterface, productConfig, createTypeTable(), namer, featureConfig); models.add(generateExample(context)); } models.add(generatePackageInfo(model, productConfig, namer)); return models; }
@Override public Map<String, GeneratedResult<Doc>> generate() throws IOException { ImmutableMap.Builder<String, GeneratedResult<Doc>> results = new ImmutableMap.Builder<>(); ArrayList<PackageMetadataView> metadataViews = new ArrayList<>(); PythonPackageCopier copier = new PythonPackageCopier(); PythonPackageCopierResult copierResult = copier.run(options, config); results.putAll(copierResult.results()); PythonGrpcPackageTransformer pythonTransformer = new PythonGrpcPackageTransformer(copierResult); ProtoApiModel apiModel = new ProtoApiModel(model); metadataViews.addAll(pythonTransformer.transform(apiModel, config)); for (PackageMetadataView view : metadataViews) { CommonSnippetSetRunner runner = new CommonSnippetSetRunner(view, false); results.putAll(runner.generate(view)); } return results.build(); } }
@Override public List<ViewModel> transform(ProtoApiModel model, GapicProductConfig productConfig) { GoSurfaceNamer namer = new GoSurfaceNamer(productConfig.getPackageName()); List<ViewModel> models = new ArrayList<ViewModel>(); models.add(generateMockServiceView(model, productConfig, namer)); for (InterfaceModel apiInterface : model.getInterfaces()) { InterfaceConfig interfaceConfig = productConfig.getInterfaceConfig(apiInterface); if (interfaceConfig == null || interfaceConfig.getSmokeTestConfig() == null) { continue; } GapicInterfaceContext context = GapicInterfaceContext.create( apiInterface, productConfig, GoGapicSurfaceTransformer.createTypeTable(), namer, featureConfig); models.add(createSmokeTestClassView(context)); } return models; }
@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; }
@Override public List<ViewModel> transform(ProtoApiModel model, GapicProductConfig productConfig) { List<ViewModel> surfaceDocs = new ArrayList<>(); SurfaceNamer namer = new CSharpSurfaceNamer(productConfig.getPackageName(), ALIAS_MODE); for (InterfaceModel apiInterface : model.getInterfaces()) { if (!productConfig.hasInterfaceConfig(apiInterface)) { continue; } GapicInterfaceContext context = GapicInterfaceContext.create( apiInterface, productConfig, csharpCommonTransformer.createTypeTable(namer.getPackageName(), ALIAS_MODE), namer, new CSharpFeatureConfig()); if (shouldGenerateFn.test(context)) { surfaceDocs.add(generateCsproj(context)); } } return surfaceDocs; }