/** Returns true if this method has page streaming configured. */ public boolean isPageStreaming() { return getPageStreaming() != null; }
private boolean isPageSizeParam(MethodConfig methodConfig, FieldModel field) { return methodConfig.isPageStreaming() && methodConfig.getPageStreaming().hasPageSizeField() && field.equals(methodConfig.getPageStreaming().getPageSizeField()); }
private boolean isPageSizeParam(MethodConfig methodConfig, FieldModel field) { return methodConfig.isPageStreaming() && methodConfig.getPageStreaming().hasPageSizeField() && field.equals(methodConfig.getPageStreaming().getPageSizeField()); }
private boolean isPageSizeParam(MethodConfig methodConfig, FieldModel field) { return methodConfig.isPageStreaming() && methodConfig.getPageStreaming().hasPageSizeField() && field.equals(methodConfig.getPageStreaming().getPageSizeField()); } }
private boolean hasParams(MethodConfig methodConfig) { if (!Iterables.isEmpty(methodConfig.getRequiredFieldConfigs())) { return true; } int optionalParamCount = Iterables.size(methodConfig.getOptionalFieldConfigs()); // Must have at least one parameter that is not the page token parameter. return optionalParamCount > (methodConfig.getPageStreaming() == null ? 0 : 1); }
private List<FieldModel> removePageTokenFromFields(MethodConfig methodConfig) { ImmutableList.Builder<FieldModel> newFields = ImmutableList.builder(); for (FieldModel field : methodConfig.getOptionalFields()) { if (methodConfig.isPageStreaming() && field.equals(methodConfig.getPageStreaming().getRequestTokenField())) { continue; } newFields.add(field); } return newFields.build(); }
private boolean isRequestTokenParam(MethodConfig methodConfig, FieldModel field) { return methodConfig.isPageStreaming() && field.equals(methodConfig.getPageStreaming().getRequestTokenField()); }
private boolean isRequestTokenParam(MethodConfig methodConfig, FieldModel field) { return methodConfig.isPageStreaming() && field.equals(methodConfig.getPageStreaming().getRequestTokenField()); }
private boolean isRequestTokenParam(MethodConfig methodConfig, FieldModel field) { return methodConfig.isPageStreaming() && field.equals(methodConfig.getPageStreaming().getRequestTokenField()); }
private Iterable<FieldConfig> removePageTokenFieldConfig( GapicMethodContext context, Iterable<FieldConfig> fieldConfigs) { MethodConfig methodConfig = context.getMethodConfig(); if (methodConfig == null || !methodConfig.isPageStreaming()) { return fieldConfigs; } final FieldModel requestTokenField = methodConfig.getPageStreaming().getRequestTokenField(); return Iterables.filter( fieldConfigs, new Predicate<FieldConfig>() { @Override public boolean apply(FieldConfig fieldConfig) { return !fieldConfig.getField().equals(requestTokenField); } }); }
public String getSampleResponseVarName(MethodContext context) { MethodConfig config = context.getMethodConfig(); if (config.getPageStreaming() != null) { return "responseItem"; } if (config.getGrpcStreaming() != null) { GrpcStreamingConfig.GrpcStreamingType type = config.getGrpcStreaming().getType(); if (type == GrpcStreamingConfig.GrpcStreamingType.ServerStreaming || type == GrpcStreamingConfig.GrpcStreamingType.BidiStreaming) { return "responseItem"; } } return "response"; }
@Override public List<String> getReturnDocLines( TransformationContext context, MethodContext methodContext, Synchronicity synchronicity) { MethodModel method = methodContext.getMethodModel(); MethodConfig methodConfig = methodContext.getMethodConfig(); if (method.getResponseStreaming()) { String classInfo = method.getOutputTypeName(methodContext.getTypeTable()).getFullName(); return ImmutableList.of("An enumerable of " + classInfo + " instances.", ""); } if (methodConfig.isPageStreaming()) { String resourceTypeName = getTypeFormatter() .getFullNameForElementType(methodConfig.getPageStreaming().getResourcesField()); return ImmutableList.of( "An enumerable of " + resourceTypeName + " instances.", "See Google::Gax::PagedEnumerable documentation for other", "operations such as per-page iteration or access to the response", "object."); } return ImmutableList.of(); }
@Test public void testAccessorNewVariableResponse() { Scanner scanner = new Scanner("$resp"); when(config.getPageStreaming()).thenReturn(null); TypeModel typeModel = mock(TypeModel.class); when(namer.getAndSaveTypeName(typeTable, typeModel)).thenReturn("TypeName"); when(model.getOutputType()).thenReturn(typeModel); OutputView.VariableView variableView = accessorNewVariable(scanner, context, valueSet, parent, "newVar", false); assertThat(variableView.variable()).isEqualTo("sampleResponseVarName"); assertThat(variableView.accessors()).isEmpty(); assertThat(parent.getTypeName("newVar")).isEqualTo("TypeName"); assertThat(parent.getTypeModel("newVar")).isEqualTo(typeModel); }
@Test public void testAccessorNewVariablePageStreamingResourceNameResponse() { Scanner scanner = new Scanner("$resp"); when(config.getPageStreaming()).thenReturn(pageStreamingConfig); when(pageStreamingConfig.getResourcesFieldConfig()).thenReturn(resourceFieldConfig); when(namer.getAndSaveElementResourceTypeName(typeTable, resourceFieldConfig)) .thenReturn("ShelfBookName"); when(featureConfig.useResourceNameFormatOption(resourceFieldConfig)).thenReturn(true); OutputView.VariableView variableView = accessorNewVariable(scanner, context, valueSet, parent, "newVar", false); assertThat(variableView.variable()).isEqualTo("sampleResponseVarName"); assertThat(variableView.accessors()).isEmpty(); assertThat(parent.getTypeName("newVar")).isEqualTo("ShelfBookName"); assertThat(parent.getTypeModel("newVar")).isNull(); }
@Test public void testAccessorNewVariablePageStreamingResponse() { Scanner scanner = new Scanner("$resp"); when(config.getPageStreaming()).thenReturn(pageStreamingConfig); when(pageStreamingConfig.getResourcesFieldConfig()).thenReturn(resourceFieldConfig); when(featureConfig.useResourceNameFormatOption(resourceFieldConfig)).thenReturn(false); FieldModel fieldModel = mock(FieldModel.class); when(resourceFieldConfig.getField()).thenReturn(fieldModel); TypeModel typeModel = mock(TypeModel.class); when(fieldModel.getType()).thenReturn(typeModel); when(typeModel.makeOptional()).thenReturn(typeModel); when(namer.getAndSaveTypeName(typeTable, typeModel)).thenReturn("TypeName"); OutputView.VariableView variableView = accessorNewVariable(scanner, context, valueSet, parent, "newVar", false); assertThat(variableView.variable()).isEqualTo("sampleResponseVarName"); assertThat(variableView.accessors()).isEmpty(); assertThat(parent.getTypeName("newVar")).isEqualTo("TypeName"); assertThat(parent.getTypeModel("newVar")).isEqualTo(typeModel); }
@Override public String getDynamicLangReturnTypeName(MethodContext methodContext) { MethodModel method = methodContext.getMethodModel(); MethodConfig methodConfig = methodContext.getMethodConfig(); if (method.isOutputTypeEmpty()) { return ""; } String classInfo = method.getOutputTypeName(methodContext.getTypeTable()).getFullName(); if (method.getResponseStreaming()) { return "Enumerable<" + classInfo + ">"; } if (methodConfig.isPageStreaming()) { String resourceTypeName = getModelTypeFormatter() .getFullNameForElementType(methodConfig.getPageStreaming().getResourcesField()); return "Google::Gax::PagedEnumerable<" + resourceTypeName + ">"; } if (methodConfig.isLongRunningOperation()) { return "Google::Gax::Operation"; } return classInfo; }
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 StaticLangApiMethodSnippetView generatePagedRequestMethod(MethodContext methodContext) { StaticLangApiMethodView method = generateInitCode( apiMethodTransformer.generatePagedRequestObjectMethod( methodContext, csharpCommonTransformer.pagedMethodAdditionalParams()), methodContext, methodContext.getMethodConfig().getRequiredFieldConfigs(), InitCodeOutputType.SingleObject, CallingForm.RequestPaged); SurfaceNamer namer = methodContext.getNamer(); PageStreamingConfig pageStreaming = methodContext.getMethodConfig().getPageStreaming(); FieldConfig resourceFieldConfig = pageStreaming.getResourcesFieldConfig(); String callerResponseTypeName = namer.getAndSaveCallerPagedResponseTypeName(methodContext, resourceFieldConfig); return StaticLangApiMethodSnippetView.newBuilder() .method(method) .snippetMethodName(method.name() + "_RequestObject") .callerResponseTypeName(callerResponseTypeName) .apiClassName(namer.getApiWrapperClassName(methodContext.getInterfaceConfig())) .apiVariableName(method.apiVariableName()) .build(); }
private ApiMethodDocView generateMethodDoc(GapicMethodContext context) { ApiMethodDocView.Builder docBuilder = ApiMethodDocView.newBuilder(); SurfaceNamer surfaceNamer = context.getNamer(); MethodModel method = context.getMethodModel(); MethodConfig methodConfig = context.getMethodConfig(); docBuilder.mainDocLines(surfaceNamer.getDocLines(method, methodConfig)); docBuilder.paramDocs(apiMethodParamTransformer.generateParamDocs(context)); docBuilder.returnTypeName(surfaceNamer.getDynamicLangReturnTypeName(context)); docBuilder.returnsDocLines( surfaceNamer.getReturnDocLines( context.getSurfaceInterfaceContext(), context, Synchronicity.Sync)); if (methodConfig.isPageStreaming()) { docBuilder.pageStreamingResourceTypeName( surfaceNamer.getTypeNameDoc( context.getTypeTable(), methodConfig.getPageStreaming().getResourcesField().getType())); } docBuilder.throwsDocLines(surfaceNamer.getThrowsDocLines(methodConfig)); return docBuilder.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(); }