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.