diff --git a/plugins/gradle/graphql-java-codegen-gradle-plugin/src/main/java/io/github/kobylynskyi/graphql/codegen/gradle/GraphqlCodegenGradleTask.java b/plugins/gradle/graphql-java-codegen-gradle-plugin/src/main/java/io/github/kobylynskyi/graphql/codegen/gradle/GraphqlCodegenGradleTask.java index b5a1044f7a91fef45c21b5b547044d7f0a59b7d8..a5bc18ab79a2ca44db451154de8b16c138f4edd6 100644 --- a/plugins/gradle/graphql-java-codegen-gradle-plugin/src/main/java/io/github/kobylynskyi/graphql/codegen/gradle/GraphqlCodegenGradleTask.java +++ b/plugins/gradle/graphql-java-codegen-gradle-plugin/src/main/java/io/github/kobylynskyi/graphql/codegen/gradle/GraphqlCodegenGradleTask.java @@ -66,6 +66,8 @@ public class GraphqlCodegenGradleTask extends DefaultTask { mappingConfig.setGenerateEqualsAndHashCode(generateEqualsAndHashCode); mappingConfig.setGenerateToString(generateToString); mappingConfig.setGenerateAsyncApi(generateAsyncApi); + mappingConfig.setGenerateParameterizedFieldsResolvers(generateParameterizedFieldsResolvers); + mappingConfig.setFieldsWithResolvers(fieldsWithResolvers); new GraphqlCodegen(getSchemas(), outputDir, mappingConfig, buildJsonSupplier()).generate(); } diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/FieldResolverDefinitionToDataModelMapper.java b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/FieldResolverDefinitionToDataModelMapper.java index e9e2e5e9717ddb2243d1314129872e3f0611926f..e5e376ed026ca13908d4397ad7b9cdc8309370c8 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/FieldResolverDefinitionToDataModelMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/FieldResolverDefinitionToDataModelMapper.java @@ -33,13 +33,15 @@ public class FieldResolverDefinitionToDataModelMapper { */ public static Map map(MappingConfig mappingConfig, List fieldDefs, String typeName) { - Map dataModel = new HashMap<>(); String packageName = MapperUtils.getApiPackageName(mappingConfig); + String typeNameNormalized = MapperUtils.getClassNameWithPrefixAndSuffix(mappingConfig, typeName); + + Map dataModel = new HashMap<>(); dataModel.put(PACKAGE, packageName); dataModel.put(IMPORTS, MapperUtils.getImportsForFieldResolvers(mappingConfig, packageName)); - dataModel.put(CLASS_NAME, getClassName(typeName)); + dataModel.put(CLASS_NAME, getClassName(typeNameNormalized)); dataModel.put(FIELDS, fieldDefs.stream() - .map(fieldDef -> mapFieldDefinition(mappingConfig, fieldDef, typeName)) + .map(fieldDef -> mapFieldDefinition(mappingConfig, fieldDef, typeNameNormalized)) .collect(Collectors.toList())); return dataModel; } @@ -83,7 +85,7 @@ public class FieldResolverDefinitionToDataModelMapper { * - PersonResolver */ private static String getClassName(String typeName) { - return Utils.capitalize(typeName) + "Resolver"; + return typeName + "Resolver"; } } diff --git a/src/test/java/com/kobylynskyi/graphql/codegen/GraphqlCodegenFieldsResolversTest.java b/src/test/java/com/kobylynskyi/graphql/codegen/GraphqlCodegenFieldsResolversTest.java index 2ffeb30b8578560c00618aa2628ba0aad30238b5..3d0dcf826c58928517d9e97e5a8dad4036585001 100644 --- a/src/test/java/com/kobylynskyi/graphql/codegen/GraphqlCodegenFieldsResolversTest.java +++ b/src/test/java/com/kobylynskyi/graphql/codegen/GraphqlCodegenFieldsResolversTest.java @@ -55,16 +55,18 @@ class GraphqlCodegenFieldsResolversTest { @Test void generate_CustomFieldsResolvers() throws Exception { + mappingConfig.setModelNamePrefix("Github"); + mappingConfig.setModelNameSuffix("TO"); mappingConfig.setFieldsWithResolvers(Collections.singleton("AcceptTopicSuggestionPayload.topic")); generator.generate(); File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); - assertSameTrimmedContent(new File("src/test/resources/expected-classes/AcceptTopicSuggestionPayload.java.txt"), - getGeneratedFile(files, "AcceptTopicSuggestionPayload.java")); - assertSameTrimmedContent(new File("src/test/resources/expected-classes/AcceptTopicSuggestionPayloadResolver.java.txt"), - getGeneratedFile(files, "AcceptTopicSuggestionPayloadResolver.java")); + assertSameTrimmedContent(new File("src/test/resources/expected-classes/GithubAcceptTopicSuggestionPayloadTO.java.txt"), + getGeneratedFile(files, "GithubAcceptTopicSuggestionPayloadTO.java")); + assertSameTrimmedContent(new File("src/test/resources/expected-classes/GithubAcceptTopicSuggestionPayloadTOResolver.java.txt"), + getGeneratedFile(files, "GithubAcceptTopicSuggestionPayloadTOResolver.java")); } private static File getGeneratedFile(File[] files, String fileName) throws FileNotFoundException { diff --git a/src/test/resources/expected-classes/AcceptTopicSuggestionPayloadResolver.java.txt b/src/test/resources/expected-classes/AcceptTopicSuggestionPayloadResolver.java.txt deleted file mode 100644 index 54cabf998d9e21637a769c17f56ded789240acc7..0000000000000000000000000000000000000000 --- a/src/test/resources/expected-classes/AcceptTopicSuggestionPayloadResolver.java.txt +++ /dev/null @@ -1,10 +0,0 @@ -package com.github.graphql; - -import java.util.*; -import graphql.schema.*; - -public interface AcceptTopicSuggestionPayloadResolver { - - Topic topic(AcceptTopicSuggestionPayload acceptTopicSuggestionPayload, DataFetchingEnvironment env) throws Exception; - -} \ No newline at end of file diff --git a/src/test/resources/expected-classes/AcceptTopicSuggestionPayload.java.txt b/src/test/resources/expected-classes/GithubAcceptTopicSuggestionPayloadTO.java.txt similarity index 66% rename from src/test/resources/expected-classes/AcceptTopicSuggestionPayload.java.txt rename to src/test/resources/expected-classes/GithubAcceptTopicSuggestionPayloadTO.java.txt index d1370731108889599deef5573ec37a2e63072f20..02bc5d8a67bef3f385bf50e1fe7a09326d132b0c 100644 --- a/src/test/resources/expected-classes/AcceptTopicSuggestionPayload.java.txt +++ b/src/test/resources/expected-classes/GithubAcceptTopicSuggestionPayloadTO.java.txt @@ -2,14 +2,14 @@ package com.github.graphql; import java.util.*; -public class AcceptTopicSuggestionPayload { +public class GithubAcceptTopicSuggestionPayloadTO { private String clientMutationId; - public AcceptTopicSuggestionPayload() { + public GithubAcceptTopicSuggestionPayloadTO() { } - public AcceptTopicSuggestionPayload(String clientMutationId) { + public GithubAcceptTopicSuggestionPayloadTO(String clientMutationId) { this.clientMutationId = clientMutationId; } @@ -35,8 +35,8 @@ public class AcceptTopicSuggestionPayload { } - public AcceptTopicSuggestionPayload build() { - return new AcceptTopicSuggestionPayload(clientMutationId); + public GithubAcceptTopicSuggestionPayloadTO build() { + return new GithubAcceptTopicSuggestionPayloadTO(clientMutationId); } } diff --git a/src/test/resources/expected-classes/GithubAcceptTopicSuggestionPayloadTOResolver.java.txt b/src/test/resources/expected-classes/GithubAcceptTopicSuggestionPayloadTOResolver.java.txt new file mode 100644 index 0000000000000000000000000000000000000000..132c022a0175713ade6d46f2bbdd0b601f122809 --- /dev/null +++ b/src/test/resources/expected-classes/GithubAcceptTopicSuggestionPayloadTOResolver.java.txt @@ -0,0 +1,10 @@ +package com.github.graphql; + +import java.util.*; +import graphql.schema.*; + +public interface GithubAcceptTopicSuggestionPayloadTOResolver { + + GithubTopicTO topic(GithubAcceptTopicSuggestionPayloadTO githubAcceptTopicSuggestionPayloadTO, DataFetchingEnvironment env) throws Exception; + +} \ No newline at end of file