1818import com .google .common .base .CaseFormat ;
1919import com .google .common .collect .ImmutableMap ;
2020import com .palantir .conjure .java .Options ;
21+ import com .palantir .conjure .java .api .errors .ConjureErrorParameterFormats ;
2122import com .palantir .conjure .java .services .Auth ;
2223import com .palantir .conjure .java .util .ErrorGenerationUtils ;
23- import com .palantir .conjure .java .util .ErrorGenerationUtils .PackageToErrorDefinitionsMapping ;
2424import com .palantir .conjure .java .util .Packages ;
2525import com .palantir .conjure .java .util .Primitives ;
2626import com .palantir .conjure .spec .ArgumentDefinition ;
@@ -82,21 +82,21 @@ public final class DefaultStaticFactoryMethodGenerator implements StaticFactoryM
8282 private final ParameterTypeMapper parameterTypes ;
8383 private final ReturnTypeMapper returnTypes ;
8484 private final StaticFactoryMethodType methodType ;
85- private final PackageToErrorDefinitionsMapping packageToErrorDefinitionsMapping ;
85+ private final List < ErrorDefinition > errorDefinitions ;
8686
8787 public DefaultStaticFactoryMethodGenerator (
8888 Options options ,
8989 TypeNameResolver typeNameResolver ,
9090 ParameterTypeMapper parameterTypes ,
9191 ReturnTypeMapper returnTypes ,
9292 StaticFactoryMethodType methodType ,
93- PackageToErrorDefinitionsMapping packageToErrorDefinitionsMapping ) {
93+ List < ErrorDefinition > errorDefinitions ) {
9494 this .options = options ;
9595 this .typeNameResolver = typeNameResolver ;
9696 this .parameterTypes = parameterTypes ;
9797 this .returnTypes = returnTypes ;
9898 this .methodType = methodType ;
99- this .packageToErrorDefinitionsMapping = packageToErrorDefinitionsMapping ;
99+ this .errorDefinitions = errorDefinitions ;
100100 }
101101
102102 @ Override
@@ -110,8 +110,7 @@ public MethodSpec generate(ServiceDefinition def) {
110110 .build ());
111111
112112 if (options .generateErrorParameterFormatRespectingDialogueInterfaces ()) {
113- impl .addMethod (createHelperToConstructExceptionDeserializerArgs (
114- def .getServiceName ().getPackage ()));
113+ impl .addMethod (createHelperToConstructExceptionDeserializerArgs ());
115114 }
116115
117116 def .getEndpoints ().forEach (endpoint -> {
@@ -142,8 +141,14 @@ public MethodSpec generate(ServiceDefinition def) {
142141 return method ;
143142 }
144143
145- private MethodSpec createHelperToConstructExceptionDeserializerArgs (String serviceDefinitionPackageName ) {
146- List <ErrorDefinition > errorDefinitions = packageToErrorDefinitionsMapping .get (serviceDefinitionPackageName );
144+ private ClassName getClassNameInErrorsPackage (ErrorDefinition errorDef , String name ) {
145+ return ClassName .get (
146+ Packages .getPrefixedPackage (errorDef .getErrorName ().getPackage (), options .packagePrefix ()),
147+ ErrorGenerationUtils .errorTypesClassName (errorDef .getNamespace ()),
148+ name );
149+ }
150+
151+ private MethodSpec createHelperToConstructExceptionDeserializerArgs () {
147152 TypeVariableName typeVariableT = TypeVariableName .get ("T" );
148153 MethodSpec .Builder methodBuilder = MethodSpec .methodBuilder ("createExceptionDeserializerArgs" )
149154 .addTypeVariable (typeVariableT )
@@ -157,18 +162,10 @@ private MethodSpec createHelperToConstructExceptionDeserializerArgs(String servi
157162 // Add exceptions from error definitions
158163 for (ErrorDefinition errorDef : errorDefinitions ) {
159164 String errorName = errorDef .getErrorName ().getName ();
160- ClassName errorClass = ClassName .get (
161- Packages .getPrefixedPackage (errorDef .getErrorName ().getPackage (), options .packagePrefix ()),
162- ErrorGenerationUtils .errorTypesClassName (errorDef .getNamespace ()),
163- CaseFormat .UPPER_CAMEL .to (CaseFormat .UPPER_UNDERSCORE , errorName ));
164- ClassName serializableErrorClass = ClassName .get (
165- Packages .getPrefixedPackage (errorDef .getErrorName ().getPackage (), options .packagePrefix ()),
166- ErrorGenerationUtils .errorTypesClassName (errorDef .getNamespace ()),
167- errorName + "SerializableError" );
168- ClassName exceptionClass = ClassName .get (
169- Packages .getPrefixedPackage (errorDef .getErrorName ().getPackage (), options .packagePrefix ()),
170- ErrorGenerationUtils .errorTypesClassName (errorDef .getNamespace ()),
171- errorName + "Exception" );
165+ ClassName errorClass = getClassNameInErrorsPackage (
166+ errorDef , CaseFormat .UPPER_CAMEL .to (CaseFormat .UPPER_UNDERSCORE , errorName ));
167+ ClassName serializableErrorClass = getClassNameInErrorsPackage (errorDef , errorName + "SerializableError" );
168+ ClassName exceptionClass = getClassNameInErrorsPackage (errorDef , errorName + "Exception" );
172169 exceptions .add (
173170 ".exception($T.name(), new $T<$T>() {}, new $T<$T>() {})" ,
174171 errorClass ,
@@ -308,9 +305,9 @@ private MethodSpec clientImpl(EndpointDefinition def) {
308305 methodBuilder .addCode (CodeBlock .builder ()
309306 .beginControlFlow ("if ($L.bodySerDe().errorParameterFormat().isPresent())" , RUNTIME )
310307 .add (
311- "$L.putHeaderParams($S," + " $L.bodySerDe().errorParameterFormat().get().toString());" ,
308+ "$L.putHeaderParams($S, $L.bodySerDe().errorParameterFormat().get().toString());" ,
312309 REQUEST ,
313- "Accept-Conjure-Error-Parameter-Format" , // TODO(pm): make this public.
310+ ConjureErrorParameterFormats . ACCEPT_CONJURE_ERROR_PARAMETER_FORMAT_HEADER ,
314311 RUNTIME )
315312 .endControlFlow ()
316313 .build ());
0 commit comments