diff --git a/docs/codegen-options.md b/docs/codegen-options.md index fdee7c60bc87545b0a8271b754fed989e2ca3562..43f65e6a4c42fe42a0917339d672fd25684097f4 100644 --- a/docs/codegen-options.md +++ b/docs/codegen-options.md @@ -15,6 +15,8 @@ | `generateDataFetchingEnvironmentArgumentInApis` | Boolean | False | If true, then `graphql.schema.DataFetchingEnvironment env` will be added as a last argument to all methods of root type resolvers and field resolvers. | | `generateEqualsAndHashCode` | Boolean | False | Specifies whether generated model classes should have equals and hashCode methods defined. | | `generateToString` | Boolean | False | Specifies whether generated model classes should have toString method defined. | +| `apiNamePrefix` | String | Empty | Sets the prefix for GraphQL api classes (query, mutation, subscription). | +| `apiNameSuffix` | String | Resolver | Sets the suffix for GraphQL api classes (query, mutation, subscription). | | `modelNamePrefix` | String | Empty | Sets the prefix for GraphQL model classes (type, input, interface, enum, union). | | `modelNameSuffix` | String | Empty | Sets the suffix for GraphQL model classes (type, input, interface, enum, union). | | `modelValidationAnnotation` | String | @javax.validation.
constraints.NotNull | Annotation for mandatory (NonNull) fields. Can be null/empty. | diff --git a/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/MutationsResolver.java b/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/MutationsResolver.java index a88d3b1825e95dd47b1eb37d85501a3424e7c158..821fa4dba319ed6c7db6df4ecd0245c5e65af1d1 100644 --- a/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/MutationsResolver.java +++ b/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/MutationsResolver.java @@ -1,7 +1,8 @@ package io.github.kobylynskyi.order.graphql.resolvers; import graphql.kickstart.tools.GraphQLMutationResolver; -import io.github.kobylynskyi.order.graphql.api.Mutation; +import io.github.kobylynskyi.order.graphql.api.AddProductToOrderMutationResolver; +import io.github.kobylynskyi.order.graphql.api.CreateMutationResolver; import io.github.kobylynskyi.order.graphql.mappers.OrderMapper; import io.github.kobylynskyi.order.graphql.model.OrderTO; import io.github.kobylynskyi.order.service.OrderService; @@ -9,7 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component -public class MutationsResolver implements Mutation, GraphQLMutationResolver { +public class MutationsResolver implements CreateMutationResolver, AddProductToOrderMutationResolver, GraphQLMutationResolver { @Autowired private OrderService service; diff --git a/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/QueriesResolver.java b/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/QueriesResolver.java index 848e88d0a5fd179f36da9af0203735dcc1ca983b..88bba370b7ecc5c287a79d4870aa16e11b565758 100644 --- a/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/QueriesResolver.java +++ b/plugins/gradle/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/QueriesResolver.java @@ -1,7 +1,8 @@ package io.github.kobylynskyi.order.graphql.resolvers; import graphql.kickstart.tools.GraphQLQueryResolver; -import io.github.kobylynskyi.order.graphql.api.Query; +import io.github.kobylynskyi.order.graphql.api.OrderByIdQueryResolver; +import io.github.kobylynskyi.order.graphql.api.OrdersQueryResolver; import io.github.kobylynskyi.order.graphql.mappers.OrderMapper; import io.github.kobylynskyi.order.graphql.model.OrderTO; import io.github.kobylynskyi.order.model.OrderNotFoundException; @@ -14,7 +15,7 @@ import java.util.Collection; import static java.util.stream.Collectors.toList; @Component -public class QueriesResolver implements Query, GraphQLQueryResolver { +public class QueriesResolver implements OrdersQueryResolver, OrderByIdQueryResolver, GraphQLQueryResolver { @Autowired private OrderService service; diff --git a/plugins/gradle/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/MutationsResolver.java b/plugins/gradle/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/MutationsResolver.java index 7852e380352056a0e2bb32923fd68dfe19f8e4a1..d79f091c64cc9203eb1d6f17714659a4b3949d93 100644 --- a/plugins/gradle/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/MutationsResolver.java +++ b/plugins/gradle/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/MutationsResolver.java @@ -1,6 +1,6 @@ package io.github.kobylynskyi.product.graphql.resolvers; -import io.github.kobylynskyi.product.graphql.api.Mutation; +import io.github.kobylynskyi.product.graphql.api.CreateMutationResolver; import io.github.kobylynskyi.product.graphql.mappers.ProductMapper; import io.github.kobylynskyi.product.graphql.model.ProductInputTO; import io.github.kobylynskyi.product.graphql.model.ProductTO; @@ -10,7 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component -public class MutationsResolver implements Mutation { +public class MutationsResolver implements CreateMutationResolver { @Autowired private ProductService service; diff --git a/plugins/gradle/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/QueriesResolver.java b/plugins/gradle/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/QueriesResolver.java index b3c0f7796ab7bf275454fa2ec3a2ab58178d21cb..04ebb94c41e5bb0ab0ee9eafeaf027eca770fb4d 100644 --- a/plugins/gradle/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/QueriesResolver.java +++ b/plugins/gradle/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/QueriesResolver.java @@ -1,6 +1,8 @@ package io.github.kobylynskyi.product.graphql.resolvers; -import io.github.kobylynskyi.product.graphql.api.Query; +import io.github.kobylynskyi.product.graphql.api.ProductByIdQueryResolver; +import io.github.kobylynskyi.product.graphql.api.ProductsByIdsQueryResolver; +import io.github.kobylynskyi.product.graphql.api.ProductsQueryResolver; import io.github.kobylynskyi.product.graphql.mappers.ProductMapper; import io.github.kobylynskyi.product.graphql.model.ProductTO; import io.github.kobylynskyi.product.service.ProductService; @@ -12,7 +14,7 @@ import java.util.Collection; import static java.util.stream.Collectors.toList; @Component -public class QueriesResolver implements Query { +public class QueriesResolver implements ProductsQueryResolver, ProductsByIdsQueryResolver, ProductByIdQueryResolver { @Autowired private ProductService service; 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 4f34218d0f6dd7d74625b438b01c69b888c77825..96b5c2b9399b3fbd8e5fadf05936c923b7a9739e 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 @@ -33,6 +33,8 @@ public class GraphQLCodegenGradleTask extends DefaultTask implements GraphQLCode private Map customAnnotationsMapping = new HashMap<>(); private String packageName; private String apiPackageName; + private String apiNamePrefix; + private String apiNameSuffix; private String modelPackageName; private String modelNamePrefix; private String modelNameSuffix; @@ -73,6 +75,8 @@ public class GraphQLCodegenGradleTask extends DefaultTask implements GraphQLCode MappingConfig mappingConfig = new MappingConfig(); mappingConfig.setPackageName(packageName); mappingConfig.setCustomTypesMapping(customTypesMapping); + mappingConfig.setApiNameSuffix(apiNameSuffix); + mappingConfig.setApiNamePrefix(apiNamePrefix); mappingConfig.setModelNamePrefix(modelNamePrefix); mappingConfig.setModelNameSuffix(modelNameSuffix); mappingConfig.setApiPackageName(apiPackageName); @@ -232,6 +236,28 @@ public class GraphQLCodegenGradleTask extends DefaultTask implements GraphQLCode this.apiPackageName = apiPackageName; } + @Input + @Optional + @Override + public String getApiNamePrefix() { + return apiNamePrefix; + } + + public void setApiNamePrefix(String apiNamePrefix) { + this.apiNamePrefix = apiNamePrefix; + } + + @Input + @Optional + @Override + public String getApiNameSuffix() { + return apiNameSuffix; + } + + public void setApiNameSuffix(String apiNameSuffix) { + this.apiNameSuffix = apiNameSuffix; + } + @Input @Optional @Override diff --git a/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/MutationsResolver.java b/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/MutationsResolver.java index a88d3b1825e95dd47b1eb37d85501a3424e7c158..821fa4dba319ed6c7db6df4ecd0245c5e65af1d1 100644 --- a/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/MutationsResolver.java +++ b/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/MutationsResolver.java @@ -1,7 +1,8 @@ package io.github.kobylynskyi.order.graphql.resolvers; import graphql.kickstart.tools.GraphQLMutationResolver; -import io.github.kobylynskyi.order.graphql.api.Mutation; +import io.github.kobylynskyi.order.graphql.api.AddProductToOrderMutationResolver; +import io.github.kobylynskyi.order.graphql.api.CreateMutationResolver; import io.github.kobylynskyi.order.graphql.mappers.OrderMapper; import io.github.kobylynskyi.order.graphql.model.OrderTO; import io.github.kobylynskyi.order.service.OrderService; @@ -9,7 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component -public class MutationsResolver implements Mutation, GraphQLMutationResolver { +public class MutationsResolver implements CreateMutationResolver, AddProductToOrderMutationResolver, GraphQLMutationResolver { @Autowired private OrderService service; diff --git a/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/QueriesResolver.java b/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/QueriesResolver.java index 848e88d0a5fd179f36da9af0203735dcc1ca983b..88bba370b7ecc5c287a79d4870aa16e11b565758 100644 --- a/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/QueriesResolver.java +++ b/plugins/maven/example-client/src/main/java/io/github/kobylynskyi/order/graphql/resolvers/QueriesResolver.java @@ -1,7 +1,8 @@ package io.github.kobylynskyi.order.graphql.resolvers; import graphql.kickstart.tools.GraphQLQueryResolver; -import io.github.kobylynskyi.order.graphql.api.Query; +import io.github.kobylynskyi.order.graphql.api.OrderByIdQueryResolver; +import io.github.kobylynskyi.order.graphql.api.OrdersQueryResolver; import io.github.kobylynskyi.order.graphql.mappers.OrderMapper; import io.github.kobylynskyi.order.graphql.model.OrderTO; import io.github.kobylynskyi.order.model.OrderNotFoundException; @@ -14,7 +15,7 @@ import java.util.Collection; import static java.util.stream.Collectors.toList; @Component -public class QueriesResolver implements Query, GraphQLQueryResolver { +public class QueriesResolver implements OrdersQueryResolver, OrderByIdQueryResolver, GraphQLQueryResolver { @Autowired private OrderService service; diff --git a/plugins/maven/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/MutationsResolver.java b/plugins/maven/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/MutationsResolver.java index 7852e380352056a0e2bb32923fd68dfe19f8e4a1..d79f091c64cc9203eb1d6f17714659a4b3949d93 100644 --- a/plugins/maven/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/MutationsResolver.java +++ b/plugins/maven/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/MutationsResolver.java @@ -1,6 +1,6 @@ package io.github.kobylynskyi.product.graphql.resolvers; -import io.github.kobylynskyi.product.graphql.api.Mutation; +import io.github.kobylynskyi.product.graphql.api.CreateMutationResolver; import io.github.kobylynskyi.product.graphql.mappers.ProductMapper; import io.github.kobylynskyi.product.graphql.model.ProductInputTO; import io.github.kobylynskyi.product.graphql.model.ProductTO; @@ -10,7 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component -public class MutationsResolver implements Mutation { +public class MutationsResolver implements CreateMutationResolver { @Autowired private ProductService service; diff --git a/plugins/maven/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/QueriesResolver.java b/plugins/maven/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/QueriesResolver.java index b3c0f7796ab7bf275454fa2ec3a2ab58178d21cb..04ebb94c41e5bb0ab0ee9eafeaf027eca770fb4d 100644 --- a/plugins/maven/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/QueriesResolver.java +++ b/plugins/maven/example-server/src/main/java/io/github/kobylynskyi/product/graphql/resolvers/QueriesResolver.java @@ -1,6 +1,8 @@ package io.github.kobylynskyi.product.graphql.resolvers; -import io.github.kobylynskyi.product.graphql.api.Query; +import io.github.kobylynskyi.product.graphql.api.ProductByIdQueryResolver; +import io.github.kobylynskyi.product.graphql.api.ProductsByIdsQueryResolver; +import io.github.kobylynskyi.product.graphql.api.ProductsQueryResolver; import io.github.kobylynskyi.product.graphql.mappers.ProductMapper; import io.github.kobylynskyi.product.graphql.model.ProductTO; import io.github.kobylynskyi.product.service.ProductService; @@ -12,7 +14,7 @@ import java.util.Collection; import static java.util.stream.Collectors.toList; @Component -public class QueriesResolver implements Query { +public class QueriesResolver implements ProductsQueryResolver, ProductsByIdsQueryResolver, ProductByIdQueryResolver { @Autowired private ProductService service; diff --git a/plugins/maven/graphql-java-codegen-maven-plugin/src/main/java/io/github/kobylynskyi/graphql/codegen/GraphQLCodegenMojo.java b/plugins/maven/graphql-java-codegen-maven-plugin/src/main/java/io/github/kobylynskyi/graphql/codegen/GraphQLCodegenMojo.java index 4177b5710865cc66c5c44ef83843dc7d990073b1..37997e9a5b8b21c42245b9b5c65c2a89e5e015ed 100644 --- a/plugins/maven/graphql-java-codegen-maven-plugin/src/main/java/io/github/kobylynskyi/graphql/codegen/GraphQLCodegenMojo.java +++ b/plugins/maven/graphql-java-codegen-maven-plugin/src/main/java/io/github/kobylynskyi/graphql/codegen/GraphQLCodegenMojo.java @@ -63,6 +63,12 @@ public class GraphQLCodegenMojo extends AbstractMojo implements GraphQLCodegenCo @Parameter private String apiPackageName; + @Parameter + private String apiNamePrefix; + + @Parameter(defaultValue = MappingConfigConstants.DEFAULT_API_NAME_SUFFIX) + private String apiNameSuffix; + @Parameter private String modelPackageName; @@ -138,6 +144,8 @@ public class GraphQLCodegenMojo extends AbstractMojo implements GraphQLCodegenCo MappingConfig mappingConfig = new MappingConfig(); mappingConfig.setPackageName(packageName); mappingConfig.setCustomTypesMapping(customTypesMapping != null ? customTypesMapping : new HashMap<>()); + mappingConfig.setApiNameSuffix(apiNameSuffix); + mappingConfig.setApiNamePrefix(apiNamePrefix); mappingConfig.setModelNamePrefix(modelNamePrefix); mappingConfig.setModelNameSuffix(modelNameSuffix); mappingConfig.setApiPackageName(apiPackageName); @@ -264,6 +272,24 @@ public class GraphQLCodegenMojo extends AbstractMojo implements GraphQLCodegenCo this.apiPackageName = apiPackageName; } + @Override + public String getApiNamePrefix() { + return apiNamePrefix; + } + + public void setApiNamePrefix(String apiNamePrefix) { + this.apiNamePrefix = apiNamePrefix; + } + + @Override + public String getApiNameSuffix() { + return apiNameSuffix; + } + + public void setApiNameSuffix(String apiNameSuffix) { + this.apiNameSuffix = apiNameSuffix; + } + @Override public String getModelPackageName() { return modelPackageName; diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/GraphQLCodegen.java b/src/main/java/com/kobylynskyi/graphql/codegen/GraphQLCodegen.java index 001e8d0e4218c764fba6c8530d5aaff18e128b85..48dea285a40afdd1270f6bc3a70b4bbaaf56cd15 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/GraphQLCodegen.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/GraphQLCodegen.java @@ -96,6 +96,9 @@ public class GraphQLCodegen { if (mappingConfig.getGenerateApis() == null) { mappingConfig.setGenerateApis(MappingConfigConstants.DEFAULT_GENERATE_APIS); } + if (mappingConfig.getApiNameSuffix() == null) { + mappingConfig.setApiNameSuffix(MappingConfigConstants.DEFAULT_API_NAME_SUFFIX); + } if (mappingConfig.getGenerateAsyncApi() == null) { mappingConfig.setGenerateAsyncApi(MappingConfigConstants.DEFAULT_GENERATE_ASYNC_APIS); } diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/DefaultValueMapper.java b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/DefaultValueMapper.java index 23faf89521b43055154a34d2a9c38315a14e7db2..94e5d7d0dc8561e1d66d649eb9ebaa3dd6c95454 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/DefaultValueMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/DefaultValueMapper.java @@ -60,7 +60,7 @@ public class DefaultValueMapper { private static String mapEnum(MappingContext mappingContext, Type graphQLType, EnumValue defaultValue) { if (graphQLType instanceof TypeName) { String typeName = ((TypeName) graphQLType).getName(); - typeName = MapperUtils.getClassNameWithPrefixAndSuffix(mappingContext, typeName); + typeName = MapperUtils.getModelClassNameWithPrefixAndSuffix(mappingContext, typeName); return typeName + "." + defaultValue.getName(); } if (graphQLType instanceof NonNullType) { diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/EnumDefinitionToDataModelMapper.java b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/EnumDefinitionToDataModelMapper.java index 6ed480d00d68e9f2458d9ca38a05d4354622a554..b4d509bc2eb8993c26b0136a9cb758191ec1aa94 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/EnumDefinitionToDataModelMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/EnumDefinitionToDataModelMapper.java @@ -40,7 +40,7 @@ public class EnumDefinitionToDataModelMapper { Map dataModel = new HashMap<>(); // type/enum/input/interface/union classes do not require any imports dataModel.put(PACKAGE, MapperUtils.getModelPackageName(mappingContext)); - dataModel.put(CLASS_NAME, MapperUtils.getClassNameWithPrefixAndSuffix(mappingContext, definition)); + dataModel.put(CLASS_NAME, MapperUtils.getModelClassNameWithPrefixAndSuffix(mappingContext, definition)); dataModel.put(IMPLEMENTS, getUnionInterfaces(mappingContext, definition)); dataModel.put(JAVA_DOC, definition.getJavaDoc()); dataModel.put(FIELDS, map(definition.getValueDefinitions())); @@ -53,7 +53,7 @@ public class EnumDefinitionToDataModelMapper { .stream() .filter(union -> union.isDefinitionPartOfUnion(definition)) .map(ExtendedUnionTypeDefinition::getName) - .map(unionName -> MapperUtils.getClassNameWithPrefixAndSuffix(mappingContext, unionName)) + .map(unionName -> MapperUtils.getModelClassNameWithPrefixAndSuffix(mappingContext, unionName)) .collect(Collectors.toSet()); } diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/FieldDefinitionsToResolverDataModelMapper.java b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/FieldDefinitionsToResolverDataModelMapper.java index e9b36161975bbfd5a031508df9047ff5f093697d..b4e8e2250c05335ec6441384ba7a4107124af6ab 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/FieldDefinitionsToResolverDataModelMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/FieldDefinitionsToResolverDataModelMapper.java @@ -9,10 +9,20 @@ import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLOperation; import com.kobylynskyi.graphql.codegen.utils.Utils; import graphql.language.TypeName; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; -import static com.kobylynskyi.graphql.codegen.model.DataModelFields.*; +import static com.kobylynskyi.graphql.codegen.model.DataModelFields.CLASS_NAME; +import static com.kobylynskyi.graphql.codegen.model.DataModelFields.IMPLEMENTS; +import static com.kobylynskyi.graphql.codegen.model.DataModelFields.IMPORTS; +import static com.kobylynskyi.graphql.codegen.model.DataModelFields.JAVA_DOC; +import static com.kobylynskyi.graphql.codegen.model.DataModelFields.OPERATIONS; +import static com.kobylynskyi.graphql.codegen.model.DataModelFields.PACKAGE; import static com.kobylynskyi.graphql.codegen.model.MappingConfigConstants.PARENT_INTERFACE_TYPE_PLACEHOLDER; import static java.util.Collections.emptyList; import static java.util.Collections.singletonList; @@ -53,13 +63,7 @@ public class FieldDefinitionsToResolverDataModelMapper { ExtendedFieldDefinition fieldDefinition, String rootTypeName, List fieldNames) { - String fieldDefinitionName = fieldDefinition.getName(); - if (Collections.frequency(fieldNames, fieldDefinitionName) > 1) { - // Examples: EventsByIdsQuery, EventsByCategoryAndStatusQuery - fieldDefinitionName += MapperUtils.getClassNameSuffixWithInputValues(fieldDefinition); - } - // Examples: CreateEventMutation, EventsQuery, EventsByIdsQuery (rootTypeName is "Query" or the likes) - String className = Utils.capitalize(fieldDefinitionName) + rootTypeName; + String className = MapperUtils.getApiClassNameWithPrefixAndSuffix(mappingContext, fieldDefinition, rootTypeName, fieldNames); List fieldDefs = Collections.singletonList(fieldDefinition); return mapToResolverModel(mappingContext, rootTypeName, className, fieldDefs, fieldDefinition.getJavaDoc(), getParentInterface(mappingContext, rootTypeName)); @@ -74,12 +78,11 @@ public class FieldDefinitionsToResolverDataModelMapper { */ public static Map mapRootTypeFields(MappingContext mappingContext, ExtendedObjectTypeDefinition definition) { - String parentTypeName = definition.getName(); - String className = Utils.capitalize(parentTypeName); + String className = MapperUtils.getApiClassNameWithPrefixAndSuffix(mappingContext, definition); // For root types like "Query", we create resolvers for all fields - return mapToResolverModel(mappingContext, parentTypeName, className, + return mapToResolverModel(mappingContext, definition.getName(), className, definition.getFieldDefinitions(), definition.getJavaDoc(), - getParentInterface(mappingContext, parentTypeName)); + getParentInterface(mappingContext, definition.getName())); } private static Map mapToResolverModel(MappingContext mappingContext, String parentTypeName, @@ -183,7 +186,7 @@ public class FieldDefinitionsToResolverDataModelMapper { } return mappingContext.getResolverParentInterface() .replace(PARENT_INTERFACE_TYPE_PLACEHOLDER, - MapperUtils.getClassNameWithPrefixAndSuffix(mappingContext, typeName)); + MapperUtils.getModelClassNameWithPrefixAndSuffix(mappingContext, typeName)); } } diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/GraphqlTypeToJavaTypeMapper.java b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/GraphqlTypeToJavaTypeMapper.java index 5051f895ce2ecd410eb1215d1592a67cb6408106..94858e75c303c88aca82470e146e9f0440193906 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/GraphqlTypeToJavaTypeMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/GraphqlTypeToJavaTypeMapper.java @@ -100,7 +100,7 @@ class GraphqlTypeToJavaTypeMapper { } else if (customTypesMapping.containsKey(graphQLType)) { javaTypeName = customTypesMapping.get(graphQLType); } else { - javaTypeName = MapperUtils.getClassNameWithPrefixAndSuffix(mappingContext, graphQLType); + javaTypeName = MapperUtils.getModelClassNameWithPrefixAndSuffix(mappingContext, graphQLType); } return new NamedDefinition(javaTypeName, mappingContext.getInterfaceNames().contains(graphQLType)); } diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/InputDefinitionToDataModelMapper.java b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/InputDefinitionToDataModelMapper.java index 582cbf3e16fc8dcdaee6dfc40f1c3ead12d835ea..8cfdcc6b623c52a94c94a3cef55a7def621be731 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/InputDefinitionToDataModelMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/InputDefinitionToDataModelMapper.java @@ -26,7 +26,7 @@ public class InputDefinitionToDataModelMapper { Map dataModel = new HashMap<>(); // type/enum/input/interface/union classes do not require any imports dataModel.put(PACKAGE, MapperUtils.getModelPackageName(mappingContext)); - dataModel.put(CLASS_NAME, MapperUtils.getClassNameWithPrefixAndSuffix(mappingContext, definition)); + dataModel.put(CLASS_NAME, MapperUtils.getModelClassNameWithPrefixAndSuffix(mappingContext, definition)); dataModel.put(JAVA_DOC, definition.getJavaDoc()); dataModel.put(NAME, definition.getName()); dataModel.put(FIELDS, InputValueDefinitionToParameterMapper.map(mappingContext, definition.getValueDefinitions(), definition.getName())); diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/InterfaceDefinitionToDataModelMapper.java b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/InterfaceDefinitionToDataModelMapper.java index 011eb4e5809ad111056155b023ae84e65282ec40..961d02807983b6fe1a482d9314ccf5e9538335ed 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/InterfaceDefinitionToDataModelMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/InterfaceDefinitionToDataModelMapper.java @@ -26,7 +26,7 @@ public class InterfaceDefinitionToDataModelMapper { Map dataModel = new HashMap<>(); // type/enum/input/interface/union classes do not require any imports dataModel.put(PACKAGE, MapperUtils.getModelPackageName(mappingContext)); - dataModel.put(CLASS_NAME, MapperUtils.getClassNameWithPrefixAndSuffix(mappingContext, definition)); + dataModel.put(CLASS_NAME, MapperUtils.getModelClassNameWithPrefixAndSuffix(mappingContext, definition)); dataModel.put(JAVA_DOC, definition.getJavaDoc()); dataModel.put(FIELDS, FieldDefinitionToParameterMapper.mapFields( mappingContext, definition.getFieldDefinitions(), definition.getName())); diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/MapperUtils.java b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/MapperUtils.java index b89359cc9c681ad368305c170be7b631334f124d..a006892d9e22d27c1ee0b1ec9d8d2df342c155c5 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/MapperUtils.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/MapperUtils.java @@ -45,25 +45,25 @@ class MapperUtils { } /** - * Generates a class name including prefix and suffix (if any) + * Generates a model class name including prefix and suffix (if any) * * @param mappingContext Global mapping context * @param extendedDefinition GraphQL extended definition - * @return Class name of GraphQL node + * @return Class name of GraphQL model node */ - static String getClassNameWithPrefixAndSuffix(MappingContext mappingContext, - ExtendedDefinition extendedDefinition) { - return getClassNameWithPrefixAndSuffix(mappingContext, extendedDefinition.getName()); + static String getModelClassNameWithPrefixAndSuffix(MappingContext mappingContext, + ExtendedDefinition extendedDefinition) { + return getModelClassNameWithPrefixAndSuffix(mappingContext, extendedDefinition.getName()); } /** - * Generates a class name including prefix and suffix (if any) + * Generates a model class name including prefix and suffix (if any) * * @param mappingContext Global mapping context * @param definitionName GraphQL node name - * @return Class name of GraphQL node + * @return Class name of GraphQL model node */ - static String getClassNameWithPrefixAndSuffix(MappingContext mappingContext, String definitionName) { + static String getModelClassNameWithPrefixAndSuffix(MappingContext mappingContext, String definitionName) { StringBuilder classNameBuilder = new StringBuilder(); if (Utils.isNotBlank(mappingContext.getModelNamePrefix())) { classNameBuilder.append(mappingContext.getModelNamePrefix()); @@ -75,6 +75,59 @@ class MapperUtils { return classNameBuilder.toString(); } + /** + * Generates an api class name including prefix and suffix (if any) + * Examples: CreateEventMutationResolver, EventsQueryResolver, EventsByIdsQueryResolver (rootTypeName is "Query" or the likes) + * + * @param mappingContext Global mapping context + * @param fieldDefinition GraphQL field definition + * @param rootTypeName Object type (e.g.: "Query", "Mutation" or "Subscription") + * @param fieldNames Names of all fields inside the rootType. Used to detect duplicate + * @return Class name of GraphQL api node + */ + static String getApiClassNameWithPrefixAndSuffix(MappingContext mappingContext, + ExtendedFieldDefinition fieldDefinition, + String rootTypeName, + List fieldNames) { + StringBuilder classNameBuilder = new StringBuilder(); + if (Utils.isNotBlank(mappingContext.getApiNamePrefix())) { + classNameBuilder.append(mappingContext.getApiNamePrefix()); + } + classNameBuilder.append(Utils.capitalize(fieldDefinition.getName())); + if (Collections.frequency(fieldNames, fieldDefinition.getName()) > 1) { + // Examples: EventsByIdsQuery, EventsByCategoryAndStatusQuery + classNameBuilder.append(MapperUtils.getClassNameSuffixWithInputValues(fieldDefinition)); + } + if (Utils.isNotBlank(rootTypeName)) { + classNameBuilder.append(rootTypeName); + } + if (Utils.isNotBlank(mappingContext.getApiNameSuffix())) { + classNameBuilder.append(mappingContext.getApiNameSuffix()); + } + return classNameBuilder.toString(); + } + + /** + * Generates an api class name including prefix and suffix (if any) + * Examples: MutationResolver, QueryResolver, etc + * + * @param mappingContext Global mapping context + * @param definition GraphQL object definition of a root type like Query + * @return Class name of GraphQL api node + */ + static String getApiClassNameWithPrefixAndSuffix(MappingContext mappingContext, + ExtendedObjectTypeDefinition definition) { + StringBuilder classNameBuilder = new StringBuilder(); + if (Utils.isNotBlank(mappingContext.getApiNamePrefix())) { + classNameBuilder.append(mappingContext.getApiNamePrefix()); + } + classNameBuilder.append(Utils.capitalize(definition.getName())); + if (Utils.isNotBlank(mappingContext.getApiNameSuffix())) { + classNameBuilder.append(mappingContext.getApiNameSuffix()); + } + return classNameBuilder.toString(); + } + /** * Generates a class name for ParametrizedInput * diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/TypeDefinitionToDataModelMapper.java b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/TypeDefinitionToDataModelMapper.java index 08ad4f02c93af2d699750f9307a25dc16561746f..a5da2af856bc4dfc72170989dff2a93bd67bb380 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/TypeDefinitionToDataModelMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/TypeDefinitionToDataModelMapper.java @@ -47,7 +47,7 @@ public class TypeDefinitionToDataModelMapper { Map dataModel = new HashMap<>(); // type/enum/input/interface/union classes do not require any imports dataModel.put(PACKAGE, MapperUtils.getModelPackageName(mappingContext)); - dataModel.put(CLASS_NAME, MapperUtils.getClassNameWithPrefixAndSuffix(mappingContext, definition)); + dataModel.put(CLASS_NAME, MapperUtils.getModelClassNameWithPrefixAndSuffix(mappingContext, definition)); dataModel.put(JAVA_DOC, definition.getJavaDoc()); dataModel.put(IMPLEMENTS, getInterfaces(mappingContext, definition)); dataModel.put(FIELDS, getFields(mappingContext, definition, document)); @@ -107,7 +107,7 @@ public class TypeDefinitionToDataModelMapper { .stream() .filter(union -> union.isDefinitionPartOfUnion(definition)) .map(ExtendedUnionTypeDefinition::getName) - .map(unionName -> MapperUtils.getClassNameWithPrefixAndSuffix(mappingContext, unionName)) + .map(unionName -> MapperUtils.getModelClassNameWithPrefixAndSuffix(mappingContext, unionName)) .collect(Collectors.toList()); Set interfaceNames = definition.getImplements() .stream() diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/UnionDefinitionToDataModelMapper.java b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/UnionDefinitionToDataModelMapper.java index 235e11a9858b2241ed3da13136e8a21c790345f0..697481de93f6c464f25e3f6bbd85e87a1f962e98 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/UnionDefinitionToDataModelMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/UnionDefinitionToDataModelMapper.java @@ -26,7 +26,7 @@ public class UnionDefinitionToDataModelMapper { Map dataModel = new HashMap<>(); // type/enum/input/interface/union classes do not require any imports dataModel.put(PACKAGE, MapperUtils.getModelPackageName(mappingContext)); - dataModel.put(CLASS_NAME, MapperUtils.getClassNameWithPrefixAndSuffix(mappingContext, definition)); + dataModel.put(CLASS_NAME, MapperUtils.getModelClassNameWithPrefixAndSuffix(mappingContext, definition)); dataModel.put(JAVA_DOC, definition.getJavaDoc()); return dataModel; } diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/model/GraphQLCodegenConfiguration.java b/src/main/java/com/kobylynskyi/graphql/codegen/model/GraphQLCodegenConfiguration.java index 1baa7e73a2ef2d32cb32e44f0533fdad04ffb8bc..f1afeab161485ec2069d010035dd8690d8b45327 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/model/GraphQLCodegenConfiguration.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/model/GraphQLCodegenConfiguration.java @@ -73,10 +73,24 @@ public interface GraphQLCodegenConfiguration { /** * Sets the suffix for GraphQL model classes (type, input, interface, enum, union). * - * @return The prefix for GraphQL model classes. + * @return The suffix for GraphQL model classes. */ String getModelNameSuffix(); + /** + * Sets the prefix for GraphQL api classes (query, mutation, subscription). + * + * @return The prefix for GraphQL api classes. + */ + String getApiNamePrefix(); + + /** + * Sets the suffix for GraphQL api classes (query, mutation, subscription). + * + * @return The suffix for GraphQL api classes. + */ + String getApiNameSuffix(); + /** * Annotation for mandatory (NonNull) fields. Can be null/empty. * diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/model/MappingConfig.java b/src/main/java/com/kobylynskyi/graphql/codegen/model/MappingConfig.java index ddbd27bd8b6fa31829b1c4f589cc4517f778a421..2fe86a808cc745c9db0173a4fcc3de70c0d901d9 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/model/MappingConfig.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/model/MappingConfig.java @@ -24,6 +24,8 @@ public class MappingConfig implements GraphQLCodegenConfiguration, Combinable generatedFileNames = Arrays.stream(files).map(File::getName).collect(toSet()); - assertEquals(new HashSet<>(asList("Mutation.java", "Query.java", - "EventsQuery.java", "AssetsQuery.java", - "CreateEventMutation.java", "CreateAssetMutation.java", + assertEquals(new HashSet<>(asList("MutationResolver.java", "QueryResolver.java", + "EventsQueryResolver.java", "AssetsQueryResolver.java", + "CreateEventMutationResolver.java", "CreateAssetMutationResolver.java", "Event.java", "Asset.java", "EventInput.java", "AssetInput.java", "Node.java", "Status.java", "PinnableItem.java")), generatedFileNames); @@ -61,8 +61,8 @@ class GraphQLCodegenExtendTest { schemaFinder.setIncludePattern("only-extend-queries.*\\.graphqls"); new GraphQLCodegen(schemaFinder.findSchemas(), outputBuildDir, mappingConfig).generate(); - assertEquals(new HashSet<>(asList("Subscription.java", "UserQuery.java", "User.java", - "UsersCreatedSubscription.java", "CreateUserMutation.java", "Mutation.java", "Query.java", + assertEquals(new HashSet<>(asList("SubscriptionResolver.java", "UserQueryResolver.java", "User.java", + "UsersCreatedSubscriptionResolver.java", "CreateUserMutationResolver.java", "MutationResolver.java", "QueryResolver.java", "UserInput.java")), Arrays.stream(Objects.requireNonNull(outputJavaClassesDir.listFiles())) .map(File::getName).collect(toSet())); } @@ -74,10 +74,10 @@ class GraphQLCodegenExtendTest { File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); Set generatedFileNames = Arrays.stream(files).map(File::getName).collect(toSet()); - assertEquals(new HashSet<>(asList("Mutation.java", "Query.java", - "EventsQuery.java", "AssetsQuery.java", + assertEquals(new HashSet<>(asList("MutationResolver.java", "QueryResolver.java", + "EventsQueryResolver.java", "AssetsQueryResolver.java", "EventResolver.java", "NodeResolver.java", - "CreateEventMutation.java", "CreateAssetMutation.java", + "CreateEventMutationResolver.java", "CreateAssetMutationResolver.java", "Event.java", "Asset.java", "EventInput.java", "AssetInput.java", "Node.java", "Status.java", "PinnableItem.java")), generatedFileNames); @@ -96,9 +96,9 @@ class GraphQLCodegenExtendTest { File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); Set generatedFileNames = Arrays.stream(files).map(File::getName).collect(toSet()); - assertEquals(new HashSet<>(asList("Mutation.java", "Query.java", - "EventsQuery.java", "AssetsQuery.java", - "CreateEventMutation.java", "CreateAssetMutation.java", + assertEquals(new HashSet<>(asList("MutationResolver.java", "QueryResolver.java", + "EventsQueryResolver.java", "AssetsQueryResolver.java", + "CreateEventMutationResolver.java", "CreateAssetMutationResolver.java", "Event.java", "Asset.java", "EventInput.java", "AssetInput.java", "Node.java", "Status.java", "PinnableItem.java")), generatedFileNames); @@ -133,9 +133,9 @@ class GraphQLCodegenExtendTest { File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); Set generatedFileNames = Arrays.stream(files).map(File::getName).collect(toSet()); - assertEquals(new HashSet<>(asList("Mutation.java", "Query.java", - "EventsQuery.java", "AssetsQuery.java", - "CreateEventMutation.java", "CreateAssetMutation.java", + assertEquals(new HashSet<>(asList("MutationResolver.java", "QueryResolver.java", + "EventsQueryResolver.java", "AssetsQueryResolver.java", + "CreateEventMutationResolver.java", "CreateAssetMutationResolver.java", "Event.java", "Asset.java", "EventInput.java", "AssetInput.java", "Node.java", "Status.java", "PinnableItem.java")), generatedFileNames); diff --git a/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenParentInterfacesTest.java b/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenParentInterfacesTest.java index 07b9a05deab080a8d37840e7469ff74f17cde714..94e70a2f5496245094e7e9dbed1beec86ff6029e 100644 --- a/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenParentInterfacesTest.java +++ b/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenParentInterfacesTest.java @@ -46,23 +46,23 @@ class GraphQLCodegenParentInterfacesTest { File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); assertSameTrimmedContent( - new File("src/test/resources/expected-classes/parent-interfaces/Query.java.txt"), - getFileByName(files, "Query.java")); + new File("src/test/resources/expected-classes/parent-interfaces/QueryResolver.java.txt"), + getFileByName(files, "QueryResolver.java")); assertSameTrimmedContent( - new File("src/test/resources/expected-classes/parent-interfaces/Mutation.java.txt"), - getFileByName(files, "Mutation.java")); + new File("src/test/resources/expected-classes/parent-interfaces/MutationResolver.java.txt"), + getFileByName(files, "MutationResolver.java")); assertSameTrimmedContent( - new File("src/test/resources/expected-classes/parent-interfaces/Subscription.java.txt"), - getFileByName(files, "Subscription.java")); + new File("src/test/resources/expected-classes/parent-interfaces/SubscriptionResolver.java.txt"), + getFileByName(files, "SubscriptionResolver.java")); assertSameTrimmedContent( - new File("src/test/resources/expected-classes/parent-interfaces/VersionQuery.java.txt"), - getFileByName(files, "VersionQuery.java")); + new File("src/test/resources/expected-classes/parent-interfaces/VersionQueryResolver.java.txt"), + getFileByName(files, "VersionQueryResolver.java")); assertSameTrimmedContent( - new File("src/test/resources/expected-classes/parent-interfaces/CreateEventMutation.java.txt"), - getFileByName(files, "CreateEventMutation.java")); + new File("src/test/resources/expected-classes/parent-interfaces/CreateEventMutationResolver.java.txt"), + getFileByName(files, "CreateEventMutationResolver.java")); assertSameTrimmedContent( - new File("src/test/resources/expected-classes/parent-interfaces/EventsCreatedSubscription.java.txt"), - getFileByName(files, "EventsCreatedSubscription.java")); + new File("src/test/resources/expected-classes/parent-interfaces/EventsCreatedSubscriptionResolver.java.txt"), + getFileByName(files, "EventsCreatedSubscriptionResolver.java")); assertSameTrimmedContent( new File("src/test/resources/expected-classes/parent-interfaces/EventResolver.java.txt"), getFileByName(files, "EventResolver.java")); diff --git a/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenTest.java b/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenTest.java index a9446febbf7b67bf1037d0746aa272340230a842..ae4cf4ce34d4e1f5ceda3d7093f2308b4596bc57 100644 --- a/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenTest.java +++ b/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenTest.java @@ -61,10 +61,10 @@ class GraphQLCodegenTest { File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); List generatedFileNames = Arrays.stream(files).map(File::getName).sorted().collect(toList()); assertEquals(Arrays.asList( - "CreateEventMutation.java", "Event.java", "EventByIdQuery.java", "EventProperty.java", - "EventStatus.java", "EventsByCategoryAndStatusQuery.java", "EventsByIdsQuery.java", - "EventsCreatedSubscription.java", "Mutation.java", "Query.java", "Subscription.java", - "VersionQuery.java"), generatedFileNames); + "CreateEventMutationResolver.java", "Event.java", "EventByIdQueryResolver.java", "EventProperty.java", + "EventStatus.java", "EventsByCategoryAndStatusQueryResolver.java", "EventsByIdsQueryResolver.java", + "EventsCreatedSubscriptionResolver.java", "MutationResolver.java", "QueryResolver.java", "SubscriptionResolver.java", + "VersionQueryResolver.java"), generatedFileNames); for (File file : files) { File expected = new File(String.format("src/test/resources/expected-classes/%s.txt", file.getName())); @@ -178,7 +178,7 @@ class GraphQLCodegenTest { File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); - assertFileContainsElements(files, "EventsCreatedSubscription.java", + assertFileContainsElements(files, "EventsCreatedSubscriptionResolver.java", "org.reactivestreams.Publisher> eventsCreated() throws Exception;"); } @@ -204,9 +204,9 @@ class GraphQLCodegenTest { File[] apiFiles = Objects.requireNonNull(new File(outputJavaClassesDir, "api").listFiles()); List generatedApiFileNames = Arrays.stream(apiFiles).map(File::getName).sorted().collect(toList()); - assertEquals(Arrays.asList("CreateEventMutation.java", "EventByIdQuery.java", - "EventsByCategoryAndStatusQuery.java", "EventsByIdsQuery.java", "EventsCreatedSubscription.java", "Mutation.java", "Query.java", - "Subscription.java", "VersionQuery.java"), generatedApiFileNames); + assertEquals(Arrays.asList("CreateEventMutationResolver.java", "EventByIdQueryResolver.java", + "EventsByCategoryAndStatusQueryResolver.java", "EventsByIdsQueryResolver.java", "EventsCreatedSubscriptionResolver.java", "MutationResolver.java", "QueryResolver.java", + "SubscriptionResolver.java", "VersionQueryResolver.java"), generatedApiFileNames); for (File apiFile : apiFiles) { assertThat(Utils.getFileContent(apiFile.getPath()), @@ -300,10 +300,10 @@ class GraphQLCodegenTest { File[] files = Objects.requireNonNull(outputBuildDir.listFiles()); assertEquals(2, files.length); - assertSameTrimmedContent(new File("src/test/resources/expected-classes/EmptyMutation.java.txt"), - getFileByName(files, "Mutation.java")); - assertSameTrimmedContent(new File("src/test/resources/expected-classes/EmptyQuery.java.txt"), - getFileByName(files, "Query.java")); + assertSameTrimmedContent(new File("src/test/resources/expected-classes/EmptyMutationResolver.java.txt"), + getFileByName(files, "MutationResolver.java")); + assertSameTrimmedContent(new File("src/test/resources/expected-classes/EmptyQueryResolver.java.txt"), + getFileByName(files, "QueryResolver.java")); } @Test @@ -331,7 +331,7 @@ class GraphQLCodegenTest { generator.generate(); File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); - assertFileContainsElements(files, "VersionQuery.java", "String version()"); + assertFileContainsElements(files, "VersionQueryResolver.java", "String version()"); } @Test @@ -341,13 +341,13 @@ class GraphQLCodegenTest { File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); - assertFileContainsElements(files, "VersionQuery.java", + assertFileContainsElements(files, "VersionQueryResolver.java", "java.util.concurrent.CompletableFuture version()"); - assertFileContainsElements(files, "EventsByCategoryAndStatusQuery.java", + assertFileContainsElements(files, "EventsByCategoryAndStatusQueryResolver.java", "java.util.concurrent.CompletableFuture> eventsByCategoryAndStatus("); - assertFileContainsElements(files, "EventByIdQuery.java", + assertFileContainsElements(files, "EventByIdQueryResolver.java", "java.util.concurrent.CompletableFuture eventById("); } @@ -358,7 +358,7 @@ class GraphQLCodegenTest { File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); - assertFileContainsElements(files, "CreateEventMutation.java", + assertFileContainsElements(files, "CreateEventMutationResolver.java", "java.util.concurrent.CompletableFuture createEvent("); } @@ -369,8 +369,8 @@ class GraphQLCodegenTest { File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); List generatedFileNames = Arrays.stream(files).map(File::getName).sorted().collect(toList()); - assertEquals(Arrays.asList("CreateEventMutation.java", "Event.java", "EventInput.java", "EventsQuery.java", - "Mutation.java", "Node.java", "PinnableItem.java", "Query.java", "Status.java"), generatedFileNames); + assertEquals(Arrays.asList("CreateEventMutationResolver.java", "Event.java", "EventInput.java", "EventsQueryResolver.java", + "MutationResolver.java", "Node.java", "PinnableItem.java", "QueryResolver.java", "Status.java"), generatedFileNames); for (File file : files) { assertSameTrimmedContent( @@ -386,11 +386,11 @@ class GraphQLCodegenTest { File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); - assertSameTrimmedContent(new File("src/test/resources/expected-classes/ProductsByCategoryIdAndStatusQuery.java.txt"), - getFileByName(files, "ProductsByCategoryIdAndStatusQuery.java")); + assertSameTrimmedContent(new File("src/test/resources/expected-classes/ProductsByCategoryIdAndStatusQueryResolver.java.txt"), + getFileByName(files, "ProductsByCategoryIdAndStatusQueryResolver.java")); - assertSameTrimmedContent(new File("src/test/resources/expected-classes/ProductsByIdsQuery.java.txt"), - getFileByName(files, "ProductsByIdsQuery.java")); + assertSameTrimmedContent(new File("src/test/resources/expected-classes/ProductsByIdsQueryResolver.java.txt"), + getFileByName(files, "ProductsByIdsQueryResolver.java")); } @Test diff --git a/src/test/resources/expected-classes/CreateEventMutation.java.txt b/src/test/resources/expected-classes/CreateEventMutationResolver.java.txt similarity index 83% rename from src/test/resources/expected-classes/CreateEventMutation.java.txt rename to src/test/resources/expected-classes/CreateEventMutationResolver.java.txt index f64b7948af0196bb55b823803e28d72a9d745281..5b1589d025ecb50e4326fe8e40a3885113fa8458 100644 --- a/src/test/resources/expected-classes/CreateEventMutation.java.txt +++ b/src/test/resources/expected-classes/CreateEventMutationResolver.java.txt @@ -4,7 +4,7 @@ package com.kobylynskyi.graphql.test1; /** * Create a new event. */ -public interface CreateEventMutation { +public interface CreateEventMutationResolver { /** * Create a new event. diff --git a/src/test/resources/expected-classes/EmptyMutation.java.txt b/src/test/resources/expected-classes/EmptyMutation.java.txt deleted file mode 100644 index 5c1279ce5583f0da88916f2377dcbbbb02c9d31d..0000000000000000000000000000000000000000 --- a/src/test/resources/expected-classes/EmptyMutation.java.txt +++ /dev/null @@ -1,4 +0,0 @@ - -public interface Mutation { - -} \ No newline at end of file diff --git a/src/test/resources/expected-classes/EmptyMutationResolver.java.txt b/src/test/resources/expected-classes/EmptyMutationResolver.java.txt new file mode 100644 index 0000000000000000000000000000000000000000..e3f41a8d4c705dcab61c485a8dc27dc2c48a790a --- /dev/null +++ b/src/test/resources/expected-classes/EmptyMutationResolver.java.txt @@ -0,0 +1,4 @@ + +public interface MutationResolver { + +} \ No newline at end of file diff --git a/src/test/resources/expected-classes/EmptyQuery.java.txt b/src/test/resources/expected-classes/EmptyQuery.java.txt deleted file mode 100644 index 60c057e70904e48c6ab182330bc2b79357e24745..0000000000000000000000000000000000000000 --- a/src/test/resources/expected-classes/EmptyQuery.java.txt +++ /dev/null @@ -1,4 +0,0 @@ - -public interface Query { - -} \ No newline at end of file diff --git a/src/test/resources/expected-classes/EmptyQueryResolver.java.txt b/src/test/resources/expected-classes/EmptyQueryResolver.java.txt new file mode 100644 index 0000000000000000000000000000000000000000..e8c5b176b2d5cc6af4f66f60dbb6962127cc0ce9 --- /dev/null +++ b/src/test/resources/expected-classes/EmptyQueryResolver.java.txt @@ -0,0 +1,4 @@ + +public interface QueryResolver { + +} \ No newline at end of file diff --git a/src/test/resources/expected-classes/EventByIdQuery.java.txt b/src/test/resources/expected-classes/EventByIdQueryResolver.java.txt similarity index 82% rename from src/test/resources/expected-classes/EventByIdQuery.java.txt rename to src/test/resources/expected-classes/EventByIdQueryResolver.java.txt index 7136f9e4f3fbfd0a6cfa94af8d04ca02cb44d257..14efde13774b5b3a97bdb6e0ea90358398fb5a41 100644 --- a/src/test/resources/expected-classes/EventByIdQuery.java.txt +++ b/src/test/resources/expected-classes/EventByIdQueryResolver.java.txt @@ -4,7 +4,7 @@ package com.kobylynskyi.graphql.test1; /** * Single event by ID. */ -public interface EventByIdQuery { +public interface EventByIdQueryResolver { /** * Single event by ID. diff --git a/src/test/resources/expected-classes/EventsByCategoryAndStatusQuery.java.txt b/src/test/resources/expected-classes/EventsByCategoryAndStatusQueryResolver.java.txt similarity index 84% rename from src/test/resources/expected-classes/EventsByCategoryAndStatusQuery.java.txt rename to src/test/resources/expected-classes/EventsByCategoryAndStatusQueryResolver.java.txt index d44e483ae6a73ad7610a665e60003ddaed46e20f..6acb33d8b3f985247640b215926ec3ad318ffe12 100644 --- a/src/test/resources/expected-classes/EventsByCategoryAndStatusQuery.java.txt +++ b/src/test/resources/expected-classes/EventsByCategoryAndStatusQueryResolver.java.txt @@ -4,7 +4,7 @@ package com.kobylynskyi.graphql.test1; /** * List of events of a specified category. */ -public interface EventsByCategoryAndStatusQuery { +public interface EventsByCategoryAndStatusQueryResolver { /** * List of events of a specified category. diff --git a/src/test/resources/expected-classes/EventsByIdsQuery.java.txt b/src/test/resources/expected-classes/EventsByIdsQueryResolver.java.txt similarity index 84% rename from src/test/resources/expected-classes/EventsByIdsQuery.java.txt rename to src/test/resources/expected-classes/EventsByIdsQueryResolver.java.txt index 19860d0a6bc792250497d24fe0e5463fc7dbcb4e..15b60477a7f91d8053c89d3e2835eca9fb25d07e 100644 --- a/src/test/resources/expected-classes/EventsByIdsQuery.java.txt +++ b/src/test/resources/expected-classes/EventsByIdsQueryResolver.java.txt @@ -4,7 +4,7 @@ package com.kobylynskyi.graphql.test1; /** * Events by IDs. */ -public interface EventsByIdsQuery { +public interface EventsByIdsQueryResolver { /** * Events by IDs. diff --git a/src/test/resources/expected-classes/EventsCreatedSubscription.java.txt b/src/test/resources/expected-classes/EventsCreatedSubscriptionResolver.java.txt similarity index 80% rename from src/test/resources/expected-classes/EventsCreatedSubscription.java.txt rename to src/test/resources/expected-classes/EventsCreatedSubscriptionResolver.java.txt index ce7ea25380e7025cfd7c1d74beb787783570a863..3fb0c040cc788eaa11fcba90287ae0b390ef2abe 100644 --- a/src/test/resources/expected-classes/EventsCreatedSubscription.java.txt +++ b/src/test/resources/expected-classes/EventsCreatedSubscriptionResolver.java.txt @@ -4,7 +4,7 @@ package com.kobylynskyi.graphql.test1; /** * Subscribe to events */ -public interface EventsCreatedSubscription { +public interface EventsCreatedSubscriptionResolver { /** * Subscribe to events diff --git a/src/test/resources/expected-classes/Mutation.java.txt b/src/test/resources/expected-classes/MutationResolver.java.txt similarity index 84% rename from src/test/resources/expected-classes/Mutation.java.txt rename to src/test/resources/expected-classes/MutationResolver.java.txt index d334aa9381c3c0a677c6047f79fedc2b359523da..b5d34c13c7e02e42ec7033a33c8f2a213d856978 100644 --- a/src/test/resources/expected-classes/Mutation.java.txt +++ b/src/test/resources/expected-classes/MutationResolver.java.txt @@ -1,7 +1,7 @@ package com.kobylynskyi.graphql.test1; -public interface Mutation { +public interface MutationResolver { /** * Create a new event. diff --git a/src/test/resources/expected-classes/ProductsByCategoryIdAndStatusQuery.java.txt b/src/test/resources/expected-classes/ProductsByCategoryIdAndStatusQueryResolver.java.txt similarity index 68% rename from src/test/resources/expected-classes/ProductsByCategoryIdAndStatusQuery.java.txt rename to src/test/resources/expected-classes/ProductsByCategoryIdAndStatusQueryResolver.java.txt index 0ba1a7ea9e158ceef0e255b976ec9e76ea8ce028..4c7d95ac3b930e824ee86ba94be8014d0cb16d2a 100644 --- a/src/test/resources/expected-classes/ProductsByCategoryIdAndStatusQuery.java.txt +++ b/src/test/resources/expected-classes/ProductsByCategoryIdAndStatusQueryResolver.java.txt @@ -1,7 +1,7 @@ package com.kobylynskyi.graphql.test1; -public interface ProductsByCategoryIdAndStatusQuery { +public interface ProductsByCategoryIdAndStatusQueryResolver { java.util.Collection products(String categoryId, String status) throws Exception; diff --git a/src/test/resources/expected-classes/ProductsByIdsQuery.java.txt b/src/test/resources/expected-classes/ProductsByIdsQueryResolver.java.txt similarity index 74% rename from src/test/resources/expected-classes/ProductsByIdsQuery.java.txt rename to src/test/resources/expected-classes/ProductsByIdsQueryResolver.java.txt index 5e34f64f3558cbc927bc2b999e2c0b0215fd4470..abefe2e2ab021ddfb4ec6edaa283d269432399bd 100644 --- a/src/test/resources/expected-classes/ProductsByIdsQuery.java.txt +++ b/src/test/resources/expected-classes/ProductsByIdsQueryResolver.java.txt @@ -1,7 +1,7 @@ package com.kobylynskyi.graphql.test1; -public interface ProductsByIdsQuery { +public interface ProductsByIdsQueryResolver { java.util.Collection products(java.util.Collection ids) throws Exception; diff --git a/src/test/resources/expected-classes/Query.java.txt b/src/test/resources/expected-classes/QueryResolver.java.txt similarity index 95% rename from src/test/resources/expected-classes/Query.java.txt rename to src/test/resources/expected-classes/QueryResolver.java.txt index 7f65c5ea5f607d2e5dbfd8bac502d3cb527982bb..89e75a0f1a122067cf0f67dc1e15268d41301f0b 100644 --- a/src/test/resources/expected-classes/Query.java.txt +++ b/src/test/resources/expected-classes/QueryResolver.java.txt @@ -1,7 +1,7 @@ package com.kobylynskyi.graphql.test1; -public interface Query { +public interface QueryResolver { /** * Version of the application. diff --git a/src/test/resources/expected-classes/Subscription.java.txt b/src/test/resources/expected-classes/SubscriptionResolver.java.txt similarity index 82% rename from src/test/resources/expected-classes/Subscription.java.txt rename to src/test/resources/expected-classes/SubscriptionResolver.java.txt index 3e511d536281e6d2d003a1922d9cb420cc61b340..87134e6a27db58cc05f6b239f25c5144179b89ba 100644 --- a/src/test/resources/expected-classes/Subscription.java.txt +++ b/src/test/resources/expected-classes/SubscriptionResolver.java.txt @@ -1,7 +1,7 @@ package com.kobylynskyi.graphql.test1; -public interface Subscription { +public interface SubscriptionResolver { /** * Subscribe to events diff --git a/src/test/resources/expected-classes/VersionQuery.java.txt b/src/test/resources/expected-classes/VersionQueryResolver.java.txt similarity index 83% rename from src/test/resources/expected-classes/VersionQuery.java.txt rename to src/test/resources/expected-classes/VersionQueryResolver.java.txt index b6446a105536ee6c4622927d5f36b25b3d13d7c1..8aec1332a194bb52f89b725e7692683794cfc80f 100644 --- a/src/test/resources/expected-classes/VersionQuery.java.txt +++ b/src/test/resources/expected-classes/VersionQueryResolver.java.txt @@ -4,7 +4,7 @@ package com.kobylynskyi.graphql.test1; /** * Version of the application. */ -public interface VersionQuery { +public interface VersionQueryResolver { /** * Version of the application. diff --git a/src/test/resources/expected-classes/deprecated/CreateEventMutation.java.txt b/src/test/resources/expected-classes/deprecated/CreateEventMutationResolver.java.txt similarity index 76% rename from src/test/resources/expected-classes/deprecated/CreateEventMutation.java.txt rename to src/test/resources/expected-classes/deprecated/CreateEventMutationResolver.java.txt index 4d588aade4a609b219f9052b8c1919d7a46f8238..e0ff98e5bcffd2da7f2506cb9a25ebccfeee1e39 100644 --- a/src/test/resources/expected-classes/deprecated/CreateEventMutation.java.txt +++ b/src/test/resources/expected-classes/deprecated/CreateEventMutationResolver.java.txt @@ -1,7 +1,7 @@ package com.kobylynskyi.graphql.test1; -public interface CreateEventMutation { +public interface CreateEventMutationResolver { @Deprecated @javax.validation.constraints.NotNull diff --git a/src/test/resources/expected-classes/deprecated/EventsQuery.java.txt b/src/test/resources/expected-classes/deprecated/EventsQueryResolver.java.txt similarity index 80% rename from src/test/resources/expected-classes/deprecated/EventsQuery.java.txt rename to src/test/resources/expected-classes/deprecated/EventsQueryResolver.java.txt index a2fafc36e4b5cc2231bdb5f193e9da6c86f3da13..69320ab824198628594061fff0d438c48f382f4a 100644 --- a/src/test/resources/expected-classes/deprecated/EventsQuery.java.txt +++ b/src/test/resources/expected-classes/deprecated/EventsQueryResolver.java.txt @@ -1,7 +1,7 @@ package com.kobylynskyi.graphql.test1; -public interface EventsQuery { +public interface EventsQueryResolver { @Deprecated @javax.validation.constraints.NotNull diff --git a/src/test/resources/expected-classes/deprecated/Mutation.java.txt b/src/test/resources/expected-classes/deprecated/MutationResolver.java.txt similarity index 81% rename from src/test/resources/expected-classes/deprecated/Mutation.java.txt rename to src/test/resources/expected-classes/deprecated/MutationResolver.java.txt index 6cf67d30dd0df28137ee19043f4768708a706997..06c2f75424bb37e8b435968cb08010e9ff62d490 100644 --- a/src/test/resources/expected-classes/deprecated/Mutation.java.txt +++ b/src/test/resources/expected-classes/deprecated/MutationResolver.java.txt @@ -1,7 +1,7 @@ package com.kobylynskyi.graphql.test1; -public interface Mutation { +public interface MutationResolver { @Deprecated @javax.validation.constraints.NotNull diff --git a/src/test/resources/expected-classes/deprecated/Query.java.txt b/src/test/resources/expected-classes/deprecated/QueryResolver.java.txt similarity index 82% rename from src/test/resources/expected-classes/deprecated/Query.java.txt rename to src/test/resources/expected-classes/deprecated/QueryResolver.java.txt index d85757c96bbbc82ca6e2ea324de35db7d1e63cd9..c54291bb60ec59a206938c8f01cd6e117e38f36b 100644 --- a/src/test/resources/expected-classes/deprecated/Query.java.txt +++ b/src/test/resources/expected-classes/deprecated/QueryResolver.java.txt @@ -1,7 +1,7 @@ package com.kobylynskyi.graphql.test1; -public interface Query { +public interface QueryResolver { @Deprecated @javax.validation.constraints.NotNull diff --git a/src/test/resources/expected-classes/extend/AssetsQuery.java.txt b/src/test/resources/expected-classes/extend-with-resolvers/AssetsQueryResolver.java.txt similarity index 72% rename from src/test/resources/expected-classes/extend/AssetsQuery.java.txt rename to src/test/resources/expected-classes/extend-with-resolvers/AssetsQueryResolver.java.txt index 83bd002381df21af14df5c8921efac4458a7fa60..f1e32e372177456ab368e064b0a979a408d65cdd 100644 --- a/src/test/resources/expected-classes/extend/AssetsQuery.java.txt +++ b/src/test/resources/expected-classes/extend-with-resolvers/AssetsQueryResolver.java.txt @@ -1,4 +1,4 @@ -public interface AssetsQuery { +public interface AssetsQueryResolver { @javax.validation.constraints.NotNull java.util.Collection assets() throws Exception; diff --git a/src/test/resources/expected-classes/extend/CreateAssetMutation.java.txt b/src/test/resources/expected-classes/extend-with-resolvers/CreateAssetMutationResolver.java.txt similarity index 68% rename from src/test/resources/expected-classes/extend/CreateAssetMutation.java.txt rename to src/test/resources/expected-classes/extend-with-resolvers/CreateAssetMutationResolver.java.txt index ff338175d5b5b1fb67f7d72e7184d4da32364517..254f192a34171468018493a7c74613981d09e678 100644 --- a/src/test/resources/expected-classes/extend/CreateAssetMutation.java.txt +++ b/src/test/resources/expected-classes/extend-with-resolvers/CreateAssetMutationResolver.java.txt @@ -1,4 +1,4 @@ -public interface CreateAssetMutation { +public interface CreateAssetMutationResolver { @javax.validation.constraints.NotNull Asset createAsset(AssetInput input) throws Exception; diff --git a/src/test/resources/expected-classes/extend-with-resolvers/CreateEventMutation.java.txt b/src/test/resources/expected-classes/extend-with-resolvers/CreateEventMutationResolver.java.txt similarity index 68% rename from src/test/resources/expected-classes/extend-with-resolvers/CreateEventMutation.java.txt rename to src/test/resources/expected-classes/extend-with-resolvers/CreateEventMutationResolver.java.txt index d2a6958220494a983c0b771643ede1dc7be2137c..b608583448a9a86ae68c38fb95d9dbb2aa00f888 100644 --- a/src/test/resources/expected-classes/extend-with-resolvers/CreateEventMutation.java.txt +++ b/src/test/resources/expected-classes/extend-with-resolvers/CreateEventMutationResolver.java.txt @@ -1,4 +1,4 @@ -public interface CreateEventMutation { +public interface CreateEventMutationResolver { @javax.validation.constraints.NotNull Event createEvent(EventInput input) throws Exception; diff --git a/src/test/resources/expected-classes/extend-with-resolvers/EventsQuery.java.txt b/src/test/resources/expected-classes/extend-with-resolvers/EventsQueryResolver.java.txt similarity index 72% rename from src/test/resources/expected-classes/extend-with-resolvers/EventsQuery.java.txt rename to src/test/resources/expected-classes/extend-with-resolvers/EventsQueryResolver.java.txt index 3b65af755cbe6318833932735bbcaf539af06826..2644d29fb180771305c54b2510c10e084a1a1811 100644 --- a/src/test/resources/expected-classes/extend-with-resolvers/EventsQuery.java.txt +++ b/src/test/resources/expected-classes/extend-with-resolvers/EventsQueryResolver.java.txt @@ -1,4 +1,4 @@ -public interface EventsQuery { +public interface EventsQueryResolver { @javax.validation.constraints.NotNull java.util.Collection events() throws Exception; diff --git a/src/test/resources/expected-classes/extend-with-resolvers/Mutation.java.txt b/src/test/resources/expected-classes/extend-with-resolvers/MutationResolver.java.txt similarity index 84% rename from src/test/resources/expected-classes/extend-with-resolvers/Mutation.java.txt rename to src/test/resources/expected-classes/extend-with-resolvers/MutationResolver.java.txt index 26512e4766dd338c54962a19a64a5bcbbcacd24f..c5d3a0460ec279ec24e0b5b1d619948ed9dfbd10 100644 --- a/src/test/resources/expected-classes/extend-with-resolvers/Mutation.java.txt +++ b/src/test/resources/expected-classes/extend-with-resolvers/MutationResolver.java.txt @@ -1,4 +1,4 @@ -public interface Mutation { +public interface MutationResolver { @javax.validation.constraints.NotNull Event createEvent(EventInput input) throws Exception; diff --git a/src/test/resources/expected-classes/extend/Query.java.txt b/src/test/resources/expected-classes/extend-with-resolvers/QueryResolver.java.txt similarity index 88% rename from src/test/resources/expected-classes/extend/Query.java.txt rename to src/test/resources/expected-classes/extend-with-resolvers/QueryResolver.java.txt index 40cb8c3b43a8d2653ae20c358e216c01ef942c83..4b41874a5ddace2835e8de731b897e126a79ac18 100644 --- a/src/test/resources/expected-classes/extend/Query.java.txt +++ b/src/test/resources/expected-classes/extend-with-resolvers/QueryResolver.java.txt @@ -2,7 +2,7 @@ * Queries related to events * Queries related to assets */ -public interface Query { +public interface QueryResolver { @javax.validation.constraints.NotNull java.util.Collection events() throws Exception; diff --git a/src/test/resources/expected-classes/extend-with-resolvers/AssetsQuery.java.txt b/src/test/resources/expected-classes/extend/AssetsQueryResolver.java.txt similarity index 72% rename from src/test/resources/expected-classes/extend-with-resolvers/AssetsQuery.java.txt rename to src/test/resources/expected-classes/extend/AssetsQueryResolver.java.txt index 83bd002381df21af14df5c8921efac4458a7fa60..f1e32e372177456ab368e064b0a979a408d65cdd 100644 --- a/src/test/resources/expected-classes/extend-with-resolvers/AssetsQuery.java.txt +++ b/src/test/resources/expected-classes/extend/AssetsQueryResolver.java.txt @@ -1,4 +1,4 @@ -public interface AssetsQuery { +public interface AssetsQueryResolver { @javax.validation.constraints.NotNull java.util.Collection assets() throws Exception; diff --git a/src/test/resources/expected-classes/extend-with-resolvers/CreateAssetMutation.java.txt b/src/test/resources/expected-classes/extend/CreateAssetMutationResolver.java.txt similarity index 68% rename from src/test/resources/expected-classes/extend-with-resolvers/CreateAssetMutation.java.txt rename to src/test/resources/expected-classes/extend/CreateAssetMutationResolver.java.txt index ff338175d5b5b1fb67f7d72e7184d4da32364517..254f192a34171468018493a7c74613981d09e678 100644 --- a/src/test/resources/expected-classes/extend-with-resolvers/CreateAssetMutation.java.txt +++ b/src/test/resources/expected-classes/extend/CreateAssetMutationResolver.java.txt @@ -1,4 +1,4 @@ -public interface CreateAssetMutation { +public interface CreateAssetMutationResolver { @javax.validation.constraints.NotNull Asset createAsset(AssetInput input) throws Exception; diff --git a/src/test/resources/expected-classes/extend/CreateEventMutation.java.txt b/src/test/resources/expected-classes/extend/CreateEventMutationResolver.java.txt similarity index 68% rename from src/test/resources/expected-classes/extend/CreateEventMutation.java.txt rename to src/test/resources/expected-classes/extend/CreateEventMutationResolver.java.txt index d2a6958220494a983c0b771643ede1dc7be2137c..b608583448a9a86ae68c38fb95d9dbb2aa00f888 100644 --- a/src/test/resources/expected-classes/extend/CreateEventMutation.java.txt +++ b/src/test/resources/expected-classes/extend/CreateEventMutationResolver.java.txt @@ -1,4 +1,4 @@ -public interface CreateEventMutation { +public interface CreateEventMutationResolver { @javax.validation.constraints.NotNull Event createEvent(EventInput input) throws Exception; diff --git a/src/test/resources/expected-classes/extend/EventsQuery.java.txt b/src/test/resources/expected-classes/extend/EventsQueryResolver.java.txt similarity index 72% rename from src/test/resources/expected-classes/extend/EventsQuery.java.txt rename to src/test/resources/expected-classes/extend/EventsQueryResolver.java.txt index 3b65af755cbe6318833932735bbcaf539af06826..2644d29fb180771305c54b2510c10e084a1a1811 100644 --- a/src/test/resources/expected-classes/extend/EventsQuery.java.txt +++ b/src/test/resources/expected-classes/extend/EventsQueryResolver.java.txt @@ -1,4 +1,4 @@ -public interface EventsQuery { +public interface EventsQueryResolver { @javax.validation.constraints.NotNull java.util.Collection events() throws Exception; diff --git a/src/test/resources/expected-classes/extend/Mutation.java.txt b/src/test/resources/expected-classes/extend/MutationResolver.java.txt similarity index 84% rename from src/test/resources/expected-classes/extend/Mutation.java.txt rename to src/test/resources/expected-classes/extend/MutationResolver.java.txt index 26512e4766dd338c54962a19a64a5bcbbcacd24f..c5d3a0460ec279ec24e0b5b1d619948ed9dfbd10 100644 --- a/src/test/resources/expected-classes/extend/Mutation.java.txt +++ b/src/test/resources/expected-classes/extend/MutationResolver.java.txt @@ -1,4 +1,4 @@ -public interface Mutation { +public interface MutationResolver { @javax.validation.constraints.NotNull Event createEvent(EventInput input) throws Exception; diff --git a/src/test/resources/expected-classes/extend-with-resolvers/Query.java.txt b/src/test/resources/expected-classes/extend/QueryResolver.java.txt similarity index 88% rename from src/test/resources/expected-classes/extend-with-resolvers/Query.java.txt rename to src/test/resources/expected-classes/extend/QueryResolver.java.txt index 40cb8c3b43a8d2653ae20c358e216c01ef942c83..4b41874a5ddace2835e8de731b897e126a79ac18 100644 --- a/src/test/resources/expected-classes/extend-with-resolvers/Query.java.txt +++ b/src/test/resources/expected-classes/extend/QueryResolver.java.txt @@ -2,7 +2,7 @@ * Queries related to events * Queries related to assets */ -public interface Query { +public interface QueryResolver { @javax.validation.constraints.NotNull java.util.Collection events() throws Exception; diff --git a/src/test/resources/expected-classes/parent-interfaces/CreateEventMutation.java.txt b/src/test/resources/expected-classes/parent-interfaces/CreateEventMutationResolver.java.txt similarity index 70% rename from src/test/resources/expected-classes/parent-interfaces/CreateEventMutation.java.txt rename to src/test/resources/expected-classes/parent-interfaces/CreateEventMutationResolver.java.txt index 2d7b01f8a0e15ede6f15f8aca3ecdae139776041..6da1872b81e38d8cac414029d7e1113e454fe80d 100644 --- a/src/test/resources/expected-classes/parent-interfaces/CreateEventMutation.java.txt +++ b/src/test/resources/expected-classes/parent-interfaces/CreateEventMutationResolver.java.txt @@ -4,7 +4,7 @@ package com.kobylynskyi.graphql.interfaces; /** * Create a new event. */ -public interface CreateEventMutation extends graphql.kickstart.tools.GraphQLMutationResolver { +public interface CreateEventMutationResolver extends graphql.kickstart.tools.GraphQLMutationResolver { /** * Create a new event. diff --git a/src/test/resources/expected-classes/parent-interfaces/EventsCreatedSubscription.java.txt b/src/test/resources/expected-classes/parent-interfaces/EventsCreatedSubscriptionResolver.java.txt similarity index 67% rename from src/test/resources/expected-classes/parent-interfaces/EventsCreatedSubscription.java.txt rename to src/test/resources/expected-classes/parent-interfaces/EventsCreatedSubscriptionResolver.java.txt index 42c5819c21eac94ed1c59c75bfc9989334665d74..db1305c7386763279225f4f8a99de137513df8e2 100644 --- a/src/test/resources/expected-classes/parent-interfaces/EventsCreatedSubscription.java.txt +++ b/src/test/resources/expected-classes/parent-interfaces/EventsCreatedSubscriptionResolver.java.txt @@ -4,7 +4,7 @@ package com.kobylynskyi.graphql.interfaces; /** * Subscribe to events */ -public interface EventsCreatedSubscription extends graphql.kickstart.tools.GraphQLSubscriptionResolver { +public interface EventsCreatedSubscriptionResolver extends graphql.kickstart.tools.GraphQLSubscriptionResolver { /** * Subscribe to events diff --git a/src/test/resources/expected-classes/parent-interfaces/Mutation.java.txt b/src/test/resources/expected-classes/parent-interfaces/MutationResolver.java.txt similarity index 69% rename from src/test/resources/expected-classes/parent-interfaces/Mutation.java.txt rename to src/test/resources/expected-classes/parent-interfaces/MutationResolver.java.txt index 4d832937352d4a9007ca0f8233e97dd3a90865a1..1f3791aa4018bc896ad5b401cdb2c9490c1727e2 100644 --- a/src/test/resources/expected-classes/parent-interfaces/Mutation.java.txt +++ b/src/test/resources/expected-classes/parent-interfaces/MutationResolver.java.txt @@ -1,7 +1,7 @@ package com.kobylynskyi.graphql.interfaces; -public interface Mutation extends graphql.kickstart.tools.GraphQLMutationResolver { +public interface MutationResolver extends graphql.kickstart.tools.GraphQLMutationResolver { /** * Create a new event. diff --git a/src/test/resources/expected-classes/parent-interfaces/Query.java.txt b/src/test/resources/expected-classes/parent-interfaces/QueryResolver.java.txt similarity index 89% rename from src/test/resources/expected-classes/parent-interfaces/Query.java.txt rename to src/test/resources/expected-classes/parent-interfaces/QueryResolver.java.txt index b3ce29d4bd11fd44b2821edf4c82a5bf212ed246..19c56db3e872f71cd1b14c478d9a19e13e4621ca 100644 --- a/src/test/resources/expected-classes/parent-interfaces/Query.java.txt +++ b/src/test/resources/expected-classes/parent-interfaces/QueryResolver.java.txt @@ -1,7 +1,7 @@ package com.kobylynskyi.graphql.interfaces; -public interface Query extends graphql.kickstart.tools.GraphQLQueryResolver { +public interface QueryResolver extends graphql.kickstart.tools.GraphQLQueryResolver { /** * Version of the application. diff --git a/src/test/resources/expected-classes/parent-interfaces/Subscription.java.txt b/src/test/resources/expected-classes/parent-interfaces/SubscriptionResolver.java.txt similarity index 66% rename from src/test/resources/expected-classes/parent-interfaces/Subscription.java.txt rename to src/test/resources/expected-classes/parent-interfaces/SubscriptionResolver.java.txt index d3526f38a09eceebdabd01e443ba3c70a525bf34..7f18d70f6d84b02c04884eb83a56102af4d13511 100644 --- a/src/test/resources/expected-classes/parent-interfaces/Subscription.java.txt +++ b/src/test/resources/expected-classes/parent-interfaces/SubscriptionResolver.java.txt @@ -1,7 +1,7 @@ package com.kobylynskyi.graphql.interfaces; -public interface Subscription extends graphql.kickstart.tools.GraphQLSubscriptionResolver { +public interface SubscriptionResolver extends graphql.kickstart.tools.GraphQLSubscriptionResolver { /** * Subscribe to events diff --git a/src/test/resources/expected-classes/parent-interfaces/VersionQuery.java.txt b/src/test/resources/expected-classes/parent-interfaces/VersionQueryResolver.java.txt similarity index 69% rename from src/test/resources/expected-classes/parent-interfaces/VersionQuery.java.txt rename to src/test/resources/expected-classes/parent-interfaces/VersionQueryResolver.java.txt index 1b325d437fcccad3485e33c775549b750c9c3b1f..1465fc15d019cc75f7021c08e08cb2e65963ec54 100644 --- a/src/test/resources/expected-classes/parent-interfaces/VersionQuery.java.txt +++ b/src/test/resources/expected-classes/parent-interfaces/VersionQueryResolver.java.txt @@ -4,7 +4,7 @@ package com.kobylynskyi.graphql.interfaces; /** * Version of the application. */ -public interface VersionQuery extends graphql.kickstart.tools.GraphQLQueryResolver { +public interface VersionQueryResolver extends graphql.kickstart.tools.GraphQLQueryResolver { /** * Version of the application.