public List<SimpleParamDocView> getRequestObjectParamDocs(MethodContext context) { MethodModel method = context.getMethodModel(); SimpleParamDocView doc = SimpleParamDocView.newBuilder() .paramName("request") .typeName(method.getAndSaveRequestTypeName(context.getTypeTable(), context.getNamer())) .lines( Arrays.<String>asList( "The request object containing all of the parameters for the API call.")) .build(); return ImmutableList.of(doc); } }
@VisibleForTesting void addXExampleImports(InterfaceContext context, Iterable<? extends MethodModel> methods) { ImportTypeTable typeTable = context.getImportTypeTable(); typeTable.saveNicknameFor("context;;;"); typeTable.saveNicknameFor(context.getProductConfig().getPackageName() + ";;;"); for (MethodModel method : methods) { method.getAndSaveRequestTypeName(context.getImportTypeTable(), context.getNamer()); } addContextImports(context, ImportContext.EXAMPLE, methods); }
private List<ModifyMethodView> generateModifyMethods(GapicInterfaceContext context) { SurfaceNamer namer = context.getNamer(); List<ModifyMethodView> modifyMethods = new ArrayList<>(); Set<String> modifyTypeNames = new HashSet<>(); for (MethodModel method : csharpCommonTransformer.getSupportedMethods(context)) { MethodContext methodContext = context.asRequestMethodContext(method); String inputTypeFullName = methodContext.getMethodModel().getInputFullName(); if (modifyTypeNames.contains(inputTypeFullName)) { continue; } modifyTypeNames.add(inputTypeFullName); MethodConfig methodConfig = methodContext.getMethodConfig(); ModifyMethodView.Builder builder = ModifyMethodView.builder(); builder.name(namer.getModifyMethodName(methodContext)); builder.requestTypeName( method.getAndSaveRequestTypeName(context.getImportTypeTable(), context.getNamer())); builder.grpcStreamingType(methodConfig.getGrpcStreamingType()); modifyMethods.add(builder.build()); } return modifyMethods; }
@Override public String getGrpcStreamingApiReturnTypeName( MethodContext methodContext, ImportTypeTable typeTable) { MethodModel method = methodContext.getMethodModel(); if (method.getRequestStreaming() && method.getResponseStreaming()) { // Bidirectional streaming return typeTable.getAndSaveNicknameForContainer( "Grpc.Core.AsyncDuplexStreamingCall", method.getAndSaveRequestTypeName(typeTable, methodContext.getNamer()), method.getAndSaveResponseTypeName(typeTable, methodContext.getNamer())); } else if (method.getRequestStreaming()) { // Client streaming return typeTable.getAndSaveNicknameForContainer( "Grpc.Core.AsyncClientStreamingCall", method.getAndSaveRequestTypeName(typeTable, methodContext.getNamer()), method.getAndSaveResponseTypeName(typeTable, methodContext.getNamer())); } else if (method.getResponseStreaming()) { // Server streaming return typeTable.getAndSaveNicknameForContainer( "Grpc.Core.AsyncServerStreamingCall", method.getOutputTypeName(methodContext.getTypeTable()).getFullName()); } else { throw new IllegalArgumentException("Expected some sort of streaming here."); } }
@Override public String getAndSavePagedResponseTypeName( MethodContext methodContext, FieldConfig resourceFieldConfig) { ImportTypeTable typeTable = methodContext.getTypeTable(); String inputTypeName = methodContext .getMethodModel() .getAndSaveRequestTypeName(methodContext.getTypeTable(), methodContext.getNamer()); String outputTypeName = methodContext .getMethodModel() .getAndSaveResponseTypeName(methodContext.getTypeTable(), methodContext.getNamer()); String resourceTypeName = getResourceTypeName(typeTable, resourceFieldConfig); return typeTable.getAndSaveNicknameForContainer( "Google.Api.Gax.PagedEnumerable", inputTypeName, outputTypeName, resourceTypeName); }
@Override public String getAndSaveAsyncPagedResponseTypeName( MethodContext methodContext, FieldConfig resourceFieldConfig) { ImportTypeTable typeTable = methodContext.getTypeTable(); String inputTypeName = methodContext .getMethodModel() .getAndSaveRequestTypeName(methodContext.getTypeTable(), methodContext.getNamer()); String outputTypeName = methodContext .getMethodModel() .getAndSaveResponseTypeName(methodContext.getTypeTable(), methodContext.getNamer()); String resourceTypeName = getResourceTypeName(typeTable, resourceFieldConfig); return typeTable.getAndSaveNicknameForContainer( "Google.Api.Gax.PagedAsyncEnumerable", inputTypeName, outputTypeName, resourceTypeName); }
context .getMethodModel() .getAndSaveRequestTypeName(context.getTypeTable(), context.getNamer()); switch (context.getMethodConfig().getGrpcStreamingType()) { case NonStreaming:
public List<MockGrpcMethodView> createMockGrpcMethodViews(InterfaceContext context) { if (!context.getProductConfig().getTransportProtocol().equals(TransportProtocol.GRPC)) { return ImmutableList.of(); } List<? extends MethodModel> methods = context.getInterfaceMethods(); ArrayList<MockGrpcMethodView> mocks = new ArrayList<>(methods.size()); for (MethodModel method : methods) { if (context.getMethodConfig(method) == null) { continue; } MethodContext methodContext = context.asRequestMethodContext(method); String requestTypeName = method.getAndSaveRequestTypeName(methodContext.getTypeTable(), methodContext.getNamer()); String responseTypeName = method.getAndSaveResponseTypeName(methodContext.getTypeTable(), methodContext.getNamer()); MethodConfig methodConfig = methodContext.getMethodConfig(); mocks.add( MockGrpcMethodView.newBuilder() .name(methodContext.getNamer().getApiMethodName(method, VisibilityConfig.PUBLIC)) .requestTypeName(requestTypeName) .responseTypeName(responseTypeName) .grpcStreamingType(methodConfig.getGrpcStreamingType()) .streamHandleTypeName(methodContext.getNamer().getStreamingServerName(method)) .build()); } return mocks; }
private ApiCallableView generateOperationApiCallable(GapicMethodContext context) { MethodModel method = context.getMethodModel(); SurfaceNamer namer = context.getNamer(); ApiCallableView.Builder operationApiCallableBuilder = ApiCallableView.newBuilder(); operationApiCallableBuilder.type(ApiCallableImplType.OperationApiCallable); operationApiCallableBuilder.interfaceTypeName( namer.getApiCallableTypeName(ServiceMethodType.LongRunningMethod)); LongRunningOperationDetailView lroView = lroTransformer.generateDetailView(context); operationApiCallableBuilder.requestTypeName( method.getAndSaveRequestTypeName(context.getTypeTable(), context.getNamer())); operationApiCallableBuilder.responseTypeName(lroView.operationPayloadTypeName()); operationApiCallableBuilder.metadataTypeName(lroView.metadataTypeName()); operationApiCallableBuilder.name(namer.getOperationCallableName(method)); setCommonApiCallableFields(context, operationApiCallableBuilder); operationApiCallableBuilder.settingsFunctionName( namer.getOperationSettingsFunctionName(method)); return operationApiCallableBuilder.build(); }
private PagedListResponseFactoryClassView generateFactoryClass(MethodContext context) { SurfaceNamer namer = context.getNamer(); MethodModel method = context.getMethodModel(); ImportTypeTable typeTable = context.getTypeTable(); PageStreamingConfig pageStreaming = context.getMethodConfig().getPageStreaming(); FieldModel resourceField = pageStreaming.getResourcesField(); FieldConfig resourceFieldConfig = pageStreaming.getResourcesFieldConfig(); PagedListResponseFactoryClassView.Builder factory = PagedListResponseFactoryClassView.newBuilder(); factory.name(namer.getPagedListResponseFactoryConstName(method)); factory.requestTypeName(method.getAndSaveRequestTypeName(typeTable, namer)); factory.responseTypeName(method.getAndSaveResponseTypeName(typeTable, namer)); factory.resourceTypeName(typeTable.getAndSaveNicknameForElementType(resourceField)); factory.pagedListResponseTypeName( namer.getAndSavePagedResponseTypeName(context, resourceFieldConfig)); factory.pageStreamingDescriptorName(namer.getPageStreamingDescriptorConstName(method)); return factory.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(); }
private StaticLangPagedResponseView generatePagedResponseWrapper( MethodContext context, ImportTypeTable typeTable) { MethodModel method = context.getMethodModel(); FieldModel resourceField = context.getMethodConfig().getPageStreaming().getResourcesField(); StaticLangPagedResponseView.Builder pagedResponseWrapper = StaticLangPagedResponseView.newBuilder(); String pagedResponseTypeName = context.getNamer().getPagedResponseTypeInnerName(method, typeTable, resourceField); pagedResponseWrapper.pagedResponseTypeName(pagedResponseTypeName); pagedResponseWrapper.pageTypeName( context.getNamer().getPageTypeInnerName(method, typeTable, resourceField)); pagedResponseWrapper.fixedSizeCollectionTypeName( context.getNamer().getFixedSizeCollectionTypeInnerName(method, typeTable, resourceField)); pagedResponseWrapper.requestTypeName( method.getAndSaveRequestTypeName(context.getTypeTable(), context.getNamer())); pagedResponseWrapper.responseTypeName( method.getAndSaveResponseTypeName(context.getTypeTable(), context.getNamer())); pagedResponseWrapper.resourceTypeName( typeTable.getAndSaveNicknameForElementType(resourceField)); pagedResponseWrapper.iterateMethods(getIterateMethods(context)); return pagedResponseWrapper.build(); }
private MethodDescriptorView generateMethodDescriptor(MethodContext context) { ImportTypeTable typeTable = context.getTypeTable(); MethodModel method = context.getMethodModel(); MethodConfig methodConfig = context.getMethodConfig(); SurfaceNamer namer = context.getNamer(); MethodDescriptorView.Builder methodDescriptorBuilder = MethodDescriptorView.newBuilder(); if (methodConfig.isGrpcStreaming()) { methodDescriptorBuilder.grpcStreamingType(methodConfig.getGrpcStreaming().getType()); } methodDescriptorBuilder.requestTypeName(method.getAndSaveRequestTypeName(typeTable, namer)); methodDescriptorBuilder.responseTypeName(method.getAndSaveResponseTypeName(typeTable, namer)); methodDescriptorBuilder.hasResponse(!method.isOutputTypeEmpty()); methodDescriptorBuilder.name(namer.getMethodDescriptorName(method)); methodDescriptorBuilder.protoMethodName(method.getSimpleName()); methodDescriptorBuilder.fullServiceName(context.getTargetInterface().getFullName()); methodDescriptorBuilder.transportSettingsVar(namer.getTransportSettingsVar(method)); methodDescriptorBuilder.headerRequestParams( headerRequestParamTransformer.generateHeaderRequestParams(context)); methodDescriptorBuilder.httpMethod(generateHttpFields(context)); return methodDescriptorBuilder.build(); } }
settings.asyncMethodName(namer.getAsyncApiMethodName(method, VisibilityConfig.PUBLIC)); settings.requestTypeName( method.getAndSaveRequestTypeName(context.getTypeTable(), context.getNamer())); settings.responseTypeName( method.getAndSaveResponseTypeName(context.getTypeTable(), context.getNamer()));
private ApiCallableView generatePagedApiCallable(MethodContext context) { MethodConfig methodConfig = context.getMethodConfig(); SurfaceNamer namer = context.getNamer(); MethodModel method = context.getMethodModel(); PageStreamingConfig pageStreaming = methodConfig.getPageStreaming(); ApiCallableView.Builder pagedApiCallableBuilder = ApiCallableView.newBuilder(); pagedApiCallableBuilder.type(ApiCallableImplType.PagedApiCallable); pagedApiCallableBuilder.interfaceTypeName( namer.getApiCallableTypeName(ServiceMethodType.UnaryMethod)); String pagedResponseTypeName = namer.getAndSavePagedResponseTypeName(context, pageStreaming.getResourcesFieldConfig()); pagedApiCallableBuilder.requestTypeName( method.getAndSaveRequestTypeName(context.getTypeTable(), context.getNamer())); pagedApiCallableBuilder.responseTypeName(pagedResponseTypeName); pagedApiCallableBuilder.name(namer.getPagedCallableName(method)); pagedApiCallableBuilder.methodName( namer.getApiMethodName(method, context.getMethodConfig().getVisibility())); pagedApiCallableBuilder.asyncMethodName( namer.getAsyncApiMethodName(method, VisibilityConfig.PUBLIC)); pagedApiCallableBuilder.memberName(namer.getSettingsMemberName(method)); pagedApiCallableBuilder.settingsFunctionName(namer.getSettingsFunctionName(method)); pagedApiCallableBuilder.grpcClientVarName(namer.getReroutedGrpcClientVarName(methodConfig)); setCommonApiCallableFields(context, pagedApiCallableBuilder); return pagedApiCallableBuilder.build(); }
private BatchingDescriptorClassView generateDescriptorClass(MethodContext context) { SurfaceNamer namer = context.getNamer(); MethodModel method = context.getMethodModel(); BatchingConfig batching = context.getMethodConfig().getBatching(); FieldModel batchedField = batching.getBatchedField(); FieldModel subresponseField = batching.getSubresponseField(); BatchingDescriptorClassView.Builder desc = BatchingDescriptorClassView.newBuilder(); desc.name(context.getNamer().getBatchingDescriptorConstName(context.getMethodModel())); desc.requestTypeName( method.getAndSaveRequestTypeName(context.getTypeTable(), context.getNamer())); desc.responseTypeName( method.getAndSaveResponseTypeName(context.getTypeTable(), context.getNamer())); desc.partitionKeys(generatePartitionKeys(context)); desc.batchedFieldGetFunction(namer.getFieldGetFunctionName(batchedField)); desc.batchedFieldSetFunction(namer.getFieldSetFunctionName(batchedField)); desc.batchedFieldCountGetFunction(namer.getFieldCountGetFunctionName(batchedField)); if (subresponseField != null) { desc.subresponseTypeName(context.getTypeTable().getAndSaveNicknameFor(subresponseField)); desc.subresponseByIndexGetFunction(namer.getByIndexGetFunctionName(subresponseField)); desc.subresponseSetFunction(namer.getFieldSetFunctionName(subresponseField)); } return desc.build(); }
private PageStreamingDescriptorClassView generateDescriptorClass(MethodContext context) { SurfaceNamer namer = context.getNamer(); ImportTypeTable typeTable = context.getTypeTable(); MethodModel method = context.getMethodModel(); PageStreamingConfig pageStreaming = context.getMethodConfig().getPageStreaming(); PageStreamingDescriptorClassView.Builder desc = PageStreamingDescriptorClassView.newBuilder(); FieldModel resourceField = pageStreaming.getResourcesField(); FieldConfig resourceFieldConfig = pageStreaming.getResourcesFieldConfig(); desc.name(namer.getPageStreamingDescriptorConstName(method)); desc.typeName(namer.getAndSavePagedResponseTypeName(context, resourceFieldConfig)); desc.requestTypeName(method.getAndSaveRequestTypeName(typeTable, namer)); desc.responseTypeName(method.getAndSaveResponseTypeName(typeTable, namer)); desc.resourceTypeName(typeTable.getAndSaveNicknameForElementType(resourceField)); desc.defaultTokenValue( typeTable.getSnippetZeroValueAndSaveNicknameFor(pageStreaming.getResponseTokenField())); desc.requestTokenSetFunction( namer.getFieldSetFunctionName(pageStreaming.getRequestTokenField())); if (pageStreaming.hasPageSizeField()) { desc.requestPageSizeSetFunction( namer.getFieldSetFunctionName(pageStreaming.getPageSizeField())); desc.requestPageSizeGetFunction( namer.getFieldGetFunctionName(pageStreaming.getPageSizeField())); } desc.responseTokenGetFunction( namer.getFieldGetFunctionName(pageStreaming.getResponseTokenField())); desc.resourcesFieldGetFunction(namer.getFieldGetFunctionName(resourceField)); desc.resourcesFieldIsMap(resourceField.isMap()); return desc.build(); }
PageStreamingConfig pageStreaming = context.getMethodConfig().getPageStreaming(); String requestTypeName = method.getAndSaveRequestTypeName(context.getTypeTable(), context.getNamer()); String responseTypeName = method.getAndSaveResponseTypeName(context.getTypeTable(), context.getNamer());
method.getAndSaveRequestTypeName(context.getTypeTable(), context.getNamer())); apiCallableBuilder.responseTypeName( method.getAndSaveResponseTypeName(context.getTypeTable(), context.getNamer()));
method.getAndSaveRequestTypeName(context.getTypeTable(), context.getNamer()); methodViewBuilder.serviceRequestTypeName(requestTypeName); methodViewBuilder.serviceRequestTypeConstructor(namer.getTypeConstructor(requestTypeName));