@Override public ImportSectionView generateImportSection( MethodContext context, Iterable<InitCodeNode> specItemNodes) { return generateImportSection(context.getTypeTable().getImports()); }
@Override public ImportSectionView generateImportSection( MethodContext context, Iterable<InitCodeNode> specItemNodes) { return generateImportSection(context.getTypeTable().getImports()); }
@Override public ImportSectionView generateImportSection(TransformationContext context, String className) { return generateImportSection(context.getImportTypeTable().getImports()); }
@Override public ImportSectionView generateImportSection(TransformationContext context, String className) { return generateImportSection(context.getImportTypeTable().getImports()); }
@Override public ImportSectionView generateImportSection(TransformationContext context, String className) { return generateImportSection(context.getImportTypeTable().getImports(), className); }
@Override public ImportSectionView generateImportSection( MethodContext context, Iterable<InitCodeNode> specItemNodes) { boolean needIOUtility = Streams.stream(specItemNodes) .anyMatch(node -> node.getLineType() == InitCodeLineType.ReadFileInitLine); if (needIOUtility) { generateIOUtilityImports(context); } return generateImportSection(context.getTypeTable().getImports(), null); }
@VisibleForTesting void addXApiImports(InterfaceContext context, Collection<MethodModel> methods) { ImportTypeTable typeTable = context.getImportTypeTable(); typeTable.saveNicknameFor("context;;;"); typeTable.saveNicknameFor("google.golang.org/grpc;;;"); typeTable.saveNicknameFor("github.com/googleapis/gax-go/v2;gax;;"); typeTable.saveNicknameFor("google.golang.org/api/option;;;"); typeTable.saveNicknameFor("google.golang.org/api/transport;;;"); typeTable.saveNicknameFor("google.golang.org/grpc/metadata;;;"); typeTable.getImports().remove(EMPTY_PROTO_PKG); addContextImports(context, ImportContext.CLIENT, methods); }
private List<ImportFileView> generateMainAppImports(InterfaceContext context) { List<ImportFileView> imports = generateFileHeaderAppImports(context.getImportTypeTable().getImports()); SurfaceNamer namer = context.getNamer(); imports.add( createImport( namer.getPackageName(), namer.getClientConfigName(context.getInterfaceConfig()))); imports.add( createImport( namer.getPackageName() + ".transports", namer.getGrpcTransportImportName(context.getInterfaceConfig()))); Collections.sort(imports, importFileViewComparator()); return imports; }
private StaticLangClientExampleFileView generateExample(InterfaceContext context) { StaticLangClientExampleFileView.Builder view = StaticLangClientExampleFileView.newBuilder(); SurfaceNamer namer = context.getNamer(); InterfaceModel apiInterface = context.getInterfaceModel(); ProductConfig productConfig = context.getProductConfig(); InterfaceConfig interfaceConfig = context.getInterfaceConfig(); view.templateFileName(SAMPLE_TEMPLATE_FILENAME); String outputPath = pathMapper.getOutputPath(apiInterface.getFullName(), productConfig); String fileName = namer.getExampleFileName(context.getInterfaceConfig()); view.outputPath(outputPath + File.separator + fileName); view.clientTypeName(namer.getApiWrapperClassName(context.getInterfaceConfig())); view.clientConstructorName(namer.getApiWrapperClassConstructorName(interfaceConfig)); view.clientConstructorExampleName( namer.getApiWrapperClassConstructorExampleName(interfaceConfig)); view.apiMethods(generateApiMethods(context, context.getPublicMethods())); // Examples are different from the API. In particular, we use short declaration // and so we omit most type names. We only need // - Context, to initialize the client // - The VKit generated library, that's what the sample is for // - The input types of the methods, to initialize the requests // So, we clear all imports; addXExampleImports will add back the ones we want. context.getImportTypeTable().getImports().clear(); addXExampleImports(context, context.getPublicMethods()); view.fileHeader(fileHeaderTransformer.generateFileHeader(context)); return view.build(); }
private SmokeTestClassView createSmokeTestClassView(InterfaceContext context) { SurfaceNamer namer = context.getNamer(); MethodModel method = context.getInterfaceConfig().getSmokeTestConfig().getMethod(); MethodContext methodContext = context.asRequestMethodContext(method); SmokeTestClassView.Builder testClass = SmokeTestClassView.newBuilder(); StaticLangApiMethodView apiMethodView = createSmokeTestCaseApiMethodView(methodContext); testClass.apiSettingsClassName(namer.getApiSettingsClassName(context.getInterfaceConfig())); testClass.apiClassName(namer.getApiWrapperClassName(context.getInterfaceConfig())); testClass.name(namer.getSmokeTestClassName(context.getInterfaceConfig())); testClass.outputPath( context.getProductConfig().getPackageName() + File.separator + method.getSimpleName() + "_smoke_test.go"); testClass.templateFileName(SMOKE_TEST_TEMPLATE_FILE); testClass.apiMethod(apiMethodView); testClass.requireProjectId( testCaseTransformer.requireProjectIdInSmokeTest( apiMethodView.initCode(), context.getNamer())); // The shared code above add imports both for input and output. // Since we use short decls, we don't need to import anything for output. context.getImportTypeTable().getImports().clear(); method.getAndSaveRequestTypeName(methodContext.getTypeTable(), methodContext.getNamer()); FileHeaderView fileHeader = fileHeaderTransformer.generateFileHeader(context); testClass.fileHeader(fileHeader); return testClass.build(); }