• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2021 Google LLC
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //      http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 package com.google.api.generator.gapic.composer.common;
16 
17 import com.google.api.generator.engine.ast.ConcreteReference;
18 import com.google.api.generator.engine.ast.TypeNode;
19 import com.google.api.generator.gapic.composer.utils.ClassNames;
20 import com.google.api.generator.gapic.model.Transport;
21 import com.google.auto.value.AutoValue;
22 import java.util.List;
23 import javax.annotation.Nullable;
24 
25 @AutoValue
26 public abstract class TransportContext {
27 
classNames()28   public abstract ClassNames classNames();
29 
30   // For AbstractServiceStubClassComposer
transport()31   public abstract Transport transport();
32 
transportNames()33   public abstract List<String> transportNames();
34 
35   @Nullable
callSettingsClass()36   public abstract Class<?> callSettingsClass();
37 
38   @Nullable
stubCallableFactoryType()39   public abstract TypeNode stubCallableFactoryType();
40 
41   @Nullable
methodDescriptorClass()42   public abstract Class<?> methodDescriptorClass();
43 
transportOperationsStubTypes()44   public abstract List<TypeNode> transportOperationsStubTypes();
45 
transportOperationsStubNames()46   public abstract List<String> transportOperationsStubNames();
47 
48   // For AbstractServiceSettingsClassComposer
instantiatingChannelProviderClasses()49   public abstract List<Class<?>> instantiatingChannelProviderClasses();
50 
instantiatingChannelProviderBuilderClasses()51   public abstract List<Class<?>> instantiatingChannelProviderBuilderClasses();
52 
defaultTransportProviderBuilderNames()53   public abstract List<String> defaultTransportProviderBuilderNames();
54 
transportApiClientHeaderProviderBuilderNames()55   public abstract List<String> transportApiClientHeaderProviderBuilderNames();
56 
57   // For AbstractServiceStubSettingsClassComposer
transportChannelTypes()58   public abstract List<TypeNode> transportChannelTypes();
59 
transportGetterNames()60   public abstract List<String> transportGetterNames();
61 
62   // For AbstractServiceCallableFactoryClassComposer
63   @Nullable
transportCallSettingsType()64   public abstract TypeNode transportCallSettingsType();
65 
66   @Nullable
transportCallableFactoryType()67   public abstract TypeNode transportCallableFactoryType();
68 
operationsStubTypes()69   public abstract List<TypeNode> operationsStubTypes();
70 
71   @Nullable
transportCallSettingsName()72   public abstract String transportCallSettingsName();
73 
74   // For RetrySettingsComposer
operationResponseTransformerType()75   public abstract TypeNode operationResponseTransformerType();
76 
operationMetadataTransformerType()77   public abstract TypeNode operationMetadataTransformerType();
78 
operationsClientTypes()79   public abstract List<TypeNode> operationsClientTypes();
80 
operationsClientNames()81   public abstract List<String> operationsClientNames();
82 
useValuePatterns()83   public abstract boolean useValuePatterns();
84 
classToType(Class<?> clazz)85   protected static TypeNode classToType(Class<?> clazz) {
86     return TypeNode.withReference(ConcreteReference.withClazz(clazz));
87   }
88 
builder()89   public static TransportContext.Builder builder() {
90     return new AutoValue_TransportContext.Builder();
91   }
92 
93   @AutoValue.Builder
94   public abstract static class Builder {
95 
setClassNames(ClassNames value)96     public abstract Builder setClassNames(ClassNames value);
97 
setTransport(Transport transport)98     public abstract Builder setTransport(Transport transport);
99 
setTransportNames(List<String> values)100     public abstract Builder setTransportNames(List<String> values);
101 
setCallSettingsClass(Class<?> callSettingsClass)102     public abstract Builder setCallSettingsClass(Class<?> callSettingsClass);
103 
setStubCallableFactoryType(TypeNode stubCallableFactoryType)104     public abstract Builder setStubCallableFactoryType(TypeNode stubCallableFactoryType);
105 
setMethodDescriptorClass(Class<?> methodDescriptorClass)106     public abstract Builder setMethodDescriptorClass(Class<?> methodDescriptorClass);
107 
setInstantiatingChannelProviderClasses( List<Class<?>> instantiatingChannelProviderClasses)108     public abstract Builder setInstantiatingChannelProviderClasses(
109         List<Class<?>> instantiatingChannelProviderClasses);
110 
setInstantiatingChannelProviderBuilderClasses( List<Class<?>> instantiatingChannelProviderBuilderClasses)111     public abstract Builder setInstantiatingChannelProviderBuilderClasses(
112         List<Class<?>> instantiatingChannelProviderBuilderClasses);
113 
setDefaultTransportProviderBuilderNames( List<String> defaultTransportProviderBuilderNames)114     public abstract Builder setDefaultTransportProviderBuilderNames(
115         List<String> defaultTransportProviderBuilderNames);
116 
setTransportApiClientHeaderProviderBuilderNames( List<String> transportApiClientHeaderProviderBuilderNames)117     public abstract Builder setTransportApiClientHeaderProviderBuilderNames(
118         List<String> transportApiClientHeaderProviderBuilderNames);
119 
setTransportChannelTypes(List<TypeNode> transportChannelTypes)120     public abstract Builder setTransportChannelTypes(List<TypeNode> transportChannelTypes);
121 
setTransportGetterNames(List<String> transportGetterNames)122     public abstract Builder setTransportGetterNames(List<String> transportGetterNames);
123 
setTransportCallSettingsType(TypeNode transportCallSettingsType)124     public abstract Builder setTransportCallSettingsType(TypeNode transportCallSettingsType);
125 
setTransportCallableFactoryType(TypeNode transportCallableFactoryType)126     public abstract Builder setTransportCallableFactoryType(TypeNode transportCallableFactoryType);
127 
setTransportCallSettingsName(String transportCallSettingsName)128     public abstract Builder setTransportCallSettingsName(String transportCallSettingsName);
129 
setTransportOperationsStubTypes( List<TypeNode> transportOperationsStubTypes)130     public abstract Builder setTransportOperationsStubTypes(
131         List<TypeNode> transportOperationsStubTypes);
132 
setTransportOperationsStubNames( List<String> transportOperationsStubNames)133     public abstract Builder setTransportOperationsStubNames(
134         List<String> transportOperationsStubNames);
135 
setOperationsStubTypes(List<TypeNode> operationsStubType)136     public abstract Builder setOperationsStubTypes(List<TypeNode> operationsStubType);
137 
setOperationResponseTransformerType( TypeNode operationResponseTransformerType)138     public abstract Builder setOperationResponseTransformerType(
139         TypeNode operationResponseTransformerType);
140 
setOperationMetadataTransformerType( TypeNode operationMetadataTransformerType)141     public abstract Builder setOperationMetadataTransformerType(
142         TypeNode operationMetadataTransformerType);
143 
setOperationsClientTypes(List<TypeNode> operationsClientTypes)144     public abstract Builder setOperationsClientTypes(List<TypeNode> operationsClientTypes);
145 
setOperationsClientNames(List<String> operationsClientNames)146     public abstract Builder setOperationsClientNames(List<String> operationsClientNames);
147 
setUseValuePatterns(boolean useValuePatterns)148     public abstract Builder setUseValuePatterns(boolean useValuePatterns);
149 
build()150     public abstract TransportContext build();
151   }
152 }
153