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 e4b828cd4d677b94f6cd07d9c6b1fc7a2b24e014..4870d5d6137bf9ba16e4e1154467f217ed9199fd 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 @@ -80,6 +80,7 @@ public class GraphQLCodegenGradleTask extends DefaultTask implements GraphQLCode private Boolean generateModelsForRootTypes = MappingConfigConstants.DEFAULT_GENERATE_MODELS_FOR_ROOT_TYPES; private Boolean useOptionalForNullableReturnTypes = MappingConfigConstants.DEFAULT_USE_OPTIONAL_FOR_NULLABLE_RETURN_TYPES; private Boolean generateApisWithThrowsException = MappingConfigConstants.DEFAULT_GENERATE_APIS_WITH_THROWS_EXCEPTION; + private Boolean addGeneratedAnnotation = MappingConfigConstants.DEFAULT_ADD_GENERATED_ANNOTATION; private Set fieldsWithResolvers = new HashSet<>(); private Set fieldsWithoutResolvers = new HashSet<>(); private RelayConfig relayConfig = new RelayConfig(); @@ -128,6 +129,7 @@ public class GraphQLCodegenGradleTask extends DefaultTask implements GraphQLCode mappingConfig.setGenerateToString(generateToString); mappingConfig.setUseOptionalForNullableReturnTypes(useOptionalForNullableReturnTypes); mappingConfig.setGenerateApisWithThrowsException(generateApisWithThrowsException); + mappingConfig.setAddGeneratedAnnotation(addGeneratedAnnotation); mappingConfig.setApiReturnType(apiReturnType); mappingConfig.setApiReturnListType(apiReturnListType); mappingConfig.setSubscriptionReturnType(subscriptionReturnType); @@ -584,6 +586,17 @@ public class GraphQLCodegenGradleTask extends DefaultTask implements GraphQLCode this.generateApisWithThrowsException = generateApisWithThrowsException; } + @Input + @Optional + @Override + public Boolean getAddGeneratedAnnotation() { + return addGeneratedAnnotation; + } + + public void setAddGeneratedAnnotation(Boolean addGeneratedAnnotation) { + this.addGeneratedAnnotation = addGeneratedAnnotation; + } + @Input @Optional @Override 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 1b9973244e79d83cc39efe339d9e75c3076e3778..be3354f3617359914f3c39bc79ca84ad77f95ee1 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 @@ -145,6 +145,9 @@ public class GraphQLCodegenMojo extends AbstractMojo implements GraphQLCodegenCo @Parameter(defaultValue = MappingConfigConstants.DEFAULT_GENERATE_APIS_WITH_THROWS_EXCEPTION_STRING) private boolean generateApisWithThrowsException; + @Parameter(defaultValue = MappingConfigConstants.DEFAULT_ADD_GENERATED_ANNOTATION_STRING) + private boolean addGeneratedAnnotation; + @Parameter private String[] fieldsWithResolvers; @@ -225,6 +228,7 @@ public class GraphQLCodegenMojo extends AbstractMojo implements GraphQLCodegenCo mappingConfig.setGenerateModelsForRootTypes(generateModelsForRootTypes); mappingConfig.setUseOptionalForNullableReturnTypes(useOptionalForNullableReturnTypes); mappingConfig.setGenerateApisWithThrowsException(generateApisWithThrowsException); + mappingConfig.setAddGeneratedAnnotation(addGeneratedAnnotation); mappingConfig.setFieldsWithResolvers(mapToHashSet(fieldsWithResolvers)); mappingConfig.setFieldsWithoutResolvers(mapToHashSet(fieldsWithoutResolvers)); mappingConfig.setRelayConfig(relayConfig); @@ -459,6 +463,11 @@ public class GraphQLCodegenMojo extends AbstractMojo implements GraphQLCodegenCo return generateApisWithThrowsException; } + @Override + public Boolean getAddGeneratedAnnotation() { + return addGeneratedAnnotation; + } + @Override public ApiRootInterfaceStrategy getApiRootInterfaceStrategy() { return apiRootInterfaceStrategy; @@ -588,4 +597,4 @@ public class GraphQLCodegenMojo extends AbstractMojo implements GraphQLCodegenCo return result; } -} \ No newline at end of file +} diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenKeys.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenKeys.scala index e99a33672f3be254c5d7ca15067e89e8d0e57bb3..4901ae8b185cf3ed8c4f9462897118af42386061 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenKeys.scala +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenKeys.scala @@ -59,6 +59,8 @@ trait GraphQLCodegenKeys { val generateExtensionFieldsResolvers = settingKey[Boolean]("Specifies whether all fields in extensions (extend type and extend interface) should be present in Resolver interface instead of the type class itself.") + val addGeneratedAnnotation = settingKey[Boolean]("Specifies whether generated classes should be annotated with @Generated") + val generateDataFetchingEnvironmentArgumentInApis = settingKey[Boolean]("If true, then graphql.schema.DataFetchingEnvironment env will be added as a last argument to all methods of root type resolvers and field resolvers.") val generateModelsForRootTypes = settingKey[Boolean]("generateModelsForRootTypes") diff --git a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenPlugin.scala b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenPlugin.scala index 7e82c5bd907df88d8409f3a2e208d2081058d6ff..5b3d7b862e41f31d71c7965eb9647a8263feda66 100644 --- a/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenPlugin.scala +++ b/plugins/sbt/graphql-java-codegen-sbt-plugin/src/main/scala/io/github/dreamylost/graphql/codegen/GraphQLCodegenPlugin.scala @@ -93,6 +93,7 @@ class GraphQLCodegenPlugin(configuration: Configuration, private[codegen] val co apiInterfaceStrategy := MappingConfigConstants.DEFAULT_API_INTERFACE_STRATEGY, useOptionalForNullableReturnTypes := MappingConfigConstants.DEFAULT_USE_OPTIONAL_FOR_NULLABLE_RETURN_TYPES, generateApisWithThrowsException := MappingConfigConstants.DEFAULT_GENERATE_APIS_WITH_THROWS_EXCEPTION, + addGeneratedAnnotation := MappingConfigConstants.DEFAULT_ADD_GENERATED_ANNOTATION, relayConfig := defaultRelayConfig, // package name configs: apiPackageName := None, @@ -162,6 +163,7 @@ class GraphQLCodegenPlugin(configuration: Configuration, private[codegen] val co mappingConfig.setApiInterfaceStrategy((apiInterfaceStrategy in GraphQLCodegenConfig).value) mappingConfig.setUseOptionalForNullableReturnTypes((useOptionalForNullableReturnTypes in GraphQLCodegenConfig).value) mappingConfig.setGenerateApisWithThrowsException((generateApisWithThrowsException in GraphQLCodegenConfig).value) + mappingConfig.setAddGeneratedAnnotation((addGeneratedAnnotation in GraphQLCodegenConfig).value) mappingConfig.setResponseProjectionMaxDepth((responseProjectionMaxDepth in GraphQLCodegenConfig).value) mappingConfig.setRelayConfig((relayConfig in GraphQLCodegenConfig).value) mappingConfig.setGeneratedLanguage((generatedLanguage in GraphQLCodegenConfig).value) diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/GraphQLCodegen.java b/src/main/java/com/kobylynskyi/graphql/codegen/GraphQLCodegen.java index 0f823ef117acd9caf1baf2a1e0dd66e07708d563..fa1ba5cfe7e4cca6802ffa33c24faaf4d2a713e1 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/GraphQLCodegen.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/GraphQLCodegen.java @@ -177,6 +177,9 @@ public abstract class GraphQLCodegen { if (mappingConfig.getGenerateApisWithThrowsException() == null) { mappingConfig.setGenerateApisWithThrowsException(MappingConfigConstants.DEFAULT_GENERATE_APIS_WITH_THROWS_EXCEPTION); } + if (mappingConfig.getAddGeneratedAnnotation() == null) { + mappingConfig.setAddGeneratedAnnotation(MappingConfigConstants.DEFAULT_ADD_GENERATED_ANNOTATION); + } if (mappingConfig.getUseOptionalForNullableReturnTypes() == null) { mappingConfig.setUseOptionalForNullableReturnTypes(MappingConfigConstants.DEFAULT_USE_OPTIONAL_FOR_NULLABLE_RETURN_TYPES); } 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 4f1aedcd7562d1c9633f444b9919e31218c5a0f4..300fa5356c76c7ecba49ba797ec1a9e1e337d6bc 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/EnumDefinitionToDataModelMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/EnumDefinitionToDataModelMapper.java @@ -77,6 +77,7 @@ public class EnumDefinitionToDataModelMapper { dataModel.put(ANNOTATIONS, graphQLTypeMapper.getAnnotations(mappingContext, definition)); dataModel.put(JAVA_DOC, definition.getJavaDoc()); dataModel.put(FIELDS, map(mappingContext, definition.getValueDefinitions())); + dataModel.put(GENERATED_ANNOTATION, mappingContext.getAddGeneratedAnnotation()); dataModel.put(GENERATED_INFO, mappingContext.getGeneratedInformation()); dataModel.put(SERIALIZATION_LIBRARY, MappingConfigConstants.DEFAULT_SERIALIZATION_LIBRARY); return dataModel; 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 e94b3c9ee9c690295d11b41a0ce7af98071d1dbc..d94b5a25ff2d2a33c08b5656c2b9321c79fd9ab1 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/FieldDefinitionsToResolverDataModelMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/FieldDefinitionsToResolverDataModelMapper.java @@ -25,6 +25,7 @@ import java.util.stream.Collectors; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.CLASS_NAME; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.ENUM_IMPORT_IT_SELF_IN_SCALA; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.GENERATED_INFO; +import static com.kobylynskyi.graphql.codegen.model.DataModelFields.GENERATED_ANNOTATION; 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; @@ -143,6 +144,7 @@ public class FieldDefinitionsToResolverDataModelMapper { dataModel.put(OPERATIONS, operations); dataModel.put(JAVA_DOC, javaDoc); dataModel.put(IMPLEMENTS, parentInterface != null ? singletonList(parentInterface) : null); + dataModel.put(GENERATED_ANNOTATION, mappingContext.getAddGeneratedAnnotation()); dataModel.put(GENERATED_INFO, mappingContext.getGeneratedInformation()); dataModel.put(ENUM_IMPORT_IT_SELF_IN_SCALA, mappingContext.getEnumImportItSelfInScala()); return dataModel; 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 e39fd5730b6190e4ace137c39932ffb29a29e5aa..0babb97bab16f3c4d5b41874f0cf438056864e9f 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/InputDefinitionToDataModelMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/InputDefinitionToDataModelMapper.java @@ -13,6 +13,7 @@ import static com.kobylynskyi.graphql.codegen.model.DataModelFields.ENUM_IMPORT_ import static com.kobylynskyi.graphql.codegen.model.DataModelFields.EQUALS_AND_HASH_CODE; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.FIELDS; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.GENERATED_INFO; +import static com.kobylynskyi.graphql.codegen.model.DataModelFields.GENERATED_ANNOTATION; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.IMMUTABLE_MODELS; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.JAVA_DOC; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.NAME; @@ -60,6 +61,7 @@ public class InputDefinitionToDataModelMapper { dataModel.put(IMMUTABLE_MODELS, mappingContext.getGenerateImmutableModels()); dataModel.put(TO_STRING, mappingContext.getGenerateToString()); dataModel.put(TO_STRING_FOR_REQUEST, mappingContext.getGenerateClient()); + dataModel.put(GENERATED_ANNOTATION, mappingContext.getAddGeneratedAnnotation()); dataModel.put(GENERATED_INFO, mappingContext.getGeneratedInformation()); dataModel.put(ENUM_IMPORT_IT_SELF_IN_SCALA, mappingContext.getEnumImportItSelfInScala()); return dataModel; 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 f33b9c5c7ab23b06ff815d4fac5bb6449b369c68..49a6e921d48ed2893489931f7bf8f6aebc2bb509 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/InterfaceDefinitionToDataModelMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/InterfaceDefinitionToDataModelMapper.java @@ -45,6 +45,7 @@ public class InterfaceDefinitionToDataModelMapper { dataModel.put(IMPLEMENTS, getInterfaces(mappingContext, definition)); dataModel.put(ANNOTATIONS, graphQLTypeMapper.getAnnotations(mappingContext, definition)); dataModel.put(FIELDS, fieldDefinitionToParameterMapper.mapFields(mappingContext, definition.getFieldDefinitions(), definition)); + dataModel.put(GENERATED_ANNOTATION, mappingContext.getAddGeneratedAnnotation()); dataModel.put(GENERATED_INFO, mappingContext.getGeneratedInformation()); dataModel.put(ENUM_IMPORT_IT_SELF_IN_SCALA, mappingContext.getEnumImportItSelfInScala()); dataModel.put(IMMUTABLE_MODELS, mappingContext.getGenerateImmutableModels()); diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/RequestResponseDefinitionToDataModelMapper.java b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/RequestResponseDefinitionToDataModelMapper.java index 4454b8b030a69aa842ed9456dfd3db828554cf88..d08090bfb8884dc07c91d3988f8a76386dc53a05 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/RequestResponseDefinitionToDataModelMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/RequestResponseDefinitionToDataModelMapper.java @@ -25,6 +25,7 @@ import static com.kobylynskyi.graphql.codegen.model.DataModelFields.ENUM_IMPORT_ import static com.kobylynskyi.graphql.codegen.model.DataModelFields.EQUALS_AND_HASH_CODE; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.FIELDS; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.GENERATED_INFO; +import static com.kobylynskyi.graphql.codegen.model.DataModelFields.GENERATED_ANNOTATION; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.JAVA_DOC; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.METHOD_NAME; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.OPERATION_NAME; @@ -134,6 +135,7 @@ public class RequestResponseDefinitionToDataModelMapper { dataModel.put(FIELDS, getProjectionFields(mappingContext, definition)); dataModel.put(BUILDER, mappingContext.getGenerateBuilder()); dataModel.put(EQUALS_AND_HASH_CODE, mappingContext.getGenerateEqualsAndHashCode()); + dataModel.put(GENERATED_ANNOTATION, mappingContext.getAddGeneratedAnnotation()); dataModel.put(GENERATED_INFO, mappingContext.getGeneratedInformation()); dataModel.put(RESPONSE_PROJECTION_MAX_DEPTH, mappingContext.getResponseProjectionMaxDepth()); // dataModel.put(TO_STRING, mappingConfig.getGenerateToString()); always generated for serialization purposes @@ -163,6 +165,7 @@ public class RequestResponseDefinitionToDataModelMapper { mappingContext, fieldDefinition.getInputValueDefinitions(), parentTypeDefinition.getName())); dataModel.put(BUILDER, mappingContext.getGenerateBuilder()); dataModel.put(EQUALS_AND_HASH_CODE, mappingContext.getGenerateEqualsAndHashCode()); + dataModel.put(GENERATED_ANNOTATION, mappingContext.getAddGeneratedAnnotation()); dataModel.put(GENERATED_INFO, mappingContext.getGeneratedInformation()); dataModel.put(ENUM_IMPORT_IT_SELF_IN_SCALA, mappingContext.getEnumImportItSelfInScala()); // dataModel.put(TO_STRING, mappingConfig.getGenerateToString()); always generated for serialization purposes @@ -195,6 +198,7 @@ public class RequestResponseDefinitionToDataModelMapper { dataModel.put(OPERATION_NAME, operationDef.getName()); dataModel.put(METHOD_NAME, dataModelMapper.capitalizeMethodNameIfRestricted(mappingContext, operationDef.getName())); dataModel.put(RETURN_TYPE_NAME, javaType); + dataModel.put(GENERATED_ANNOTATION, mappingContext.getAddGeneratedAnnotation()); dataModel.put(GENERATED_INFO, mappingContext.getGeneratedInformation()); return dataModel; } @@ -227,6 +231,7 @@ public class RequestResponseDefinitionToDataModelMapper { dataModel.put(EQUALS_AND_HASH_CODE, mappingContext.getGenerateEqualsAndHashCode()); dataModel.put(TO_STRING, mappingContext.getGenerateToString()); dataModel.put(TO_STRING_FOR_REQUEST, mappingContext.getGenerateClient()); + dataModel.put(GENERATED_ANNOTATION, mappingContext.getAddGeneratedAnnotation()); dataModel.put(GENERATED_INFO, mappingContext.getGeneratedInformation()); dataModel.put(ENUM_IMPORT_IT_SELF_IN_SCALA, mappingContext.getEnumImportItSelfInScala()); return dataModel; 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 f8696f288d41f289a3dc119c34e87982b775f32e..68d83bee447e31fe81904a0bc4cf87922201be90 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/TypeDefinitionToDataModelMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/TypeDefinitionToDataModelMapper.java @@ -79,6 +79,7 @@ public class TypeDefinitionToDataModelMapper { dataModel.put(IMMUTABLE_MODELS, mappingContext.getGenerateImmutableModels()); dataModel.put(TO_STRING, mappingContext.getGenerateToString()); dataModel.put(TO_STRING_FOR_REQUEST, mappingContext.getGenerateClient()); + dataModel.put(GENERATED_ANNOTATION, mappingContext.getAddGeneratedAnnotation()); dataModel.put(GENERATED_INFO, mappingContext.getGeneratedInformation()); dataModel.put(ENUM_IMPORT_IT_SELF_IN_SCALA, mappingContext.getEnumImportItSelfInScala()); dataModel.put(PARENT_INTERFACE_PROPERTIES, mappingContext.getParentInterfaceProperties()); 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 e1b37c23547eaba1b3eefb9606dd5866badbe82d..52fe0f061bc16cd52888ded1be14282c8345dd57 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/mapper/UnionDefinitionToDataModelMapper.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/mapper/UnionDefinitionToDataModelMapper.java @@ -10,6 +10,7 @@ import static com.kobylynskyi.graphql.codegen.model.DataModelFields.ANNOTATIONS; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.CLASS_NAME; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.ENUM_IMPORT_IT_SELF_IN_SCALA; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.GENERATED_INFO; +import static com.kobylynskyi.graphql.codegen.model.DataModelFields.GENERATED_ANNOTATION; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.JAVA_DOC; import static com.kobylynskyi.graphql.codegen.model.DataModelFields.PACKAGE; @@ -43,6 +44,7 @@ public class UnionDefinitionToDataModelMapper { dataModel.put(CLASS_NAME, dataModelMapper.getModelClassNameWithPrefixAndSuffix(mappingContext, definition)); dataModel.put(ANNOTATIONS, graphQLTypeMapper.getAnnotations(mappingContext, definition)); dataModel.put(JAVA_DOC, definition.getJavaDoc()); + dataModel.put(GENERATED_ANNOTATION, mappingContext.getAddGeneratedAnnotation()); dataModel.put(GENERATED_INFO, mappingContext.getGeneratedInformation()); dataModel.put(ENUM_IMPORT_IT_SELF_IN_SCALA, mappingContext.getEnumImportItSelfInScala()); return dataModel; diff --git a/src/main/java/com/kobylynskyi/graphql/codegen/model/DataModelFields.java b/src/main/java/com/kobylynskyi/graphql/codegen/model/DataModelFields.java index f4e5e9b978cd0e478b35742e6943cc4c5eb6d9f6..51828289377e00cae334f895f2cc3cc5dcd76842 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/model/DataModelFields.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/model/DataModelFields.java @@ -26,6 +26,7 @@ public final class DataModelFields { public static final String OPERATION_NAME = "operationName"; public static final String METHOD_NAME = "methodName"; public static final String RETURN_TYPE_NAME = "returnTypeName"; + public static final String GENERATED_ANNOTATION = "generatedAnnotation"; public static final String GENERATED_INFO = "generatedInfo"; public static final String RESPONSE_PROJECTION_MAX_DEPTH = "responseProjectionMaxDepth"; public static final String ENUM_IMPORT_IT_SELF_IN_SCALA = "enumImportItSelfInScala"; 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 74ecf3209e1c6845c7aaa418ffa3615b0bd141c5..2d0976b22a39a05af936621f3953e36c3cd66ba2 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/model/GraphQLCodegenConfiguration.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/model/GraphQLCodegenConfiguration.java @@ -250,6 +250,13 @@ public interface GraphQLCodegenConfiguration { */ Boolean getGenerateApisWithThrowsException(); + /** + * Specifies whether generated classes should be annotated with @Generated + * + * @return true if classes should be annotated with @Generated + */ + Boolean getAddGeneratedAnnotation(); + /** * Relay-related configurations. * 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 4ca314d35275f4907b910f695a1906af76c4e288..6d9fd0bb4eb305240149bcc4a95205fec81690a4 100644 --- a/src/main/java/com/kobylynskyi/graphql/codegen/model/MappingConfig.java +++ b/src/main/java/com/kobylynskyi/graphql/codegen/model/MappingConfig.java @@ -52,6 +52,7 @@ public class MappingConfig implements GraphQLCodegenConfiguration, Combinable fieldsWithResolvers = new HashSet<>(); @@ -132,6 +133,7 @@ public class MappingConfig implements GraphQLCodegenConfiguration, Combinable */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen", date = "${generatedInfo.getDateTime()}" @@ -47,4 +47,4 @@ public enum ${className}<#if implements?has_content> implements <#list implement return this.graphqlName; } -} \ No newline at end of file +} diff --git a/src/main/resources/templates/java-lang/javaClassGraphqlInterface.ftl b/src/main/resources/templates/java-lang/javaClassGraphqlInterface.ftl index 0090b600d7cc6045a148a505d273547ccb322de7..4d55a9a2e9cc8498e8d423ba8a236ab92079aeef 100644 --- a/src/main/resources/templates/java-lang/javaClassGraphqlInterface.ftl +++ b/src/main/resources/templates/java-lang/javaClassGraphqlInterface.ftl @@ -15,7 +15,7 @@ import ${import}.*; */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen", date = "${generatedInfo.getDateTime()}" @@ -45,4 +45,4 @@ public interface ${className} <#if implements?has_content>extends <#list impleme -} \ No newline at end of file +} diff --git a/src/main/resources/templates/java-lang/javaClassGraphqlOperations.ftl b/src/main/resources/templates/java-lang/javaClassGraphqlOperations.ftl index 08ede514d43e666cb697938f43c2ed41f5ba39ba..ea1d463a895298250ba018c8369a0e9ba3f9d2f8 100644 --- a/src/main/resources/templates/java-lang/javaClassGraphqlOperations.ftl +++ b/src/main/resources/templates/java-lang/javaClassGraphqlOperations.ftl @@ -13,7 +13,7 @@ import ${import}.*; */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen", date = "${generatedInfo.getDateTime()}" @@ -38,4 +38,4 @@ public interface ${className}<#if implements?has_content> extends <#list impleme ${operation.type} ${operation.name}(<#list operation.parameters as param>${param.type} ${param.name}<#if param_has_next>, )<#if operation.throwsException> throws Exception; -} \ No newline at end of file +} diff --git a/src/main/resources/templates/java-lang/javaClassGraphqlParametrizedInput.ftl b/src/main/resources/templates/java-lang/javaClassGraphqlParametrizedInput.ftl index 77e456a607e9d1e7f4f729e7d0d3775dc197b915..89b9b4e169a2ccd113bc0c439acea8b48b320039 100644 --- a/src/main/resources/templates/java-lang/javaClassGraphqlParametrizedInput.ftl +++ b/src/main/resources/templates/java-lang/javaClassGraphqlParametrizedInput.ftl @@ -17,7 +17,7 @@ import java.util.Objects; */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen", date = "${generatedInfo.getDateTime()}" diff --git a/src/main/resources/templates/java-lang/javaClassGraphqlRequest.ftl b/src/main/resources/templates/java-lang/javaClassGraphqlRequest.ftl index e400784e86863e82fedae74fa47cb2d1123b8ead..13e0e1a6c956180bb9b7339e357504d3f7317fa6 100644 --- a/src/main/resources/templates/java-lang/javaClassGraphqlRequest.ftl +++ b/src/main/resources/templates/java-lang/javaClassGraphqlRequest.ftl @@ -19,7 +19,7 @@ import java.util.Set; */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen", date = "${generatedInfo.getDateTime()}" diff --git a/src/main/resources/templates/java-lang/javaClassGraphqlResponse.ftl b/src/main/resources/templates/java-lang/javaClassGraphqlResponse.ftl index ce9308b412a775291f3fd0d673ddd171dbe621dd..bb727de7f094fe2c2cd8fee4e635295efef5e36f 100644 --- a/src/main/resources/templates/java-lang/javaClassGraphqlResponse.ftl +++ b/src/main/resources/templates/java-lang/javaClassGraphqlResponse.ftl @@ -12,7 +12,7 @@ import java.util.Map; */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen", date = "${generatedInfo.getDateTime()}" diff --git a/src/main/resources/templates/java-lang/javaClassGraphqlResponseProjection.ftl b/src/main/resources/templates/java-lang/javaClassGraphqlResponseProjection.ftl index 5282e8cd84962193859486aaeb3a4670ea346499..98e4a63d0068a710f5a2b0546ea513f445255ea0 100644 --- a/src/main/resources/templates/java-lang/javaClassGraphqlResponseProjection.ftl +++ b/src/main/resources/templates/java-lang/javaClassGraphqlResponseProjection.ftl @@ -15,7 +15,7 @@ import java.util.Objects; */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen", date = "${generatedInfo.getDateTime()}" diff --git a/src/main/resources/templates/java-lang/javaClassGraphqlType.ftl b/src/main/resources/templates/java-lang/javaClassGraphqlType.ftl index f4016bdf55b69e0ef4cdfc8dd98ad240df07fda0..844bc86ad2a453d7a8dd1e0c092a84327306ef83 100644 --- a/src/main/resources/templates/java-lang/javaClassGraphqlType.ftl +++ b/src/main/resources/templates/java-lang/javaClassGraphqlType.ftl @@ -25,7 +25,7 @@ import java.util.StringJoiner; */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen", date = "${generatedInfo.getDateTime()}" diff --git a/src/main/resources/templates/java-lang/javaClassGraphqlUnion.ftl b/src/main/resources/templates/java-lang/javaClassGraphqlUnion.ftl index def432b0a088a32fa1a06fa20a1af3d9f127842b..9aa05d5b4f6d399100f7ffbd14319edb0e74eb0d 100644 --- a/src/main/resources/templates/java-lang/javaClassGraphqlUnion.ftl +++ b/src/main/resources/templates/java-lang/javaClassGraphqlUnion.ftl @@ -10,7 +10,7 @@ package ${package}; */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen", date = "${generatedInfo.getDateTime()}" @@ -21,4 +21,4 @@ package ${package}; public interface ${className} { -} \ No newline at end of file +} diff --git a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlEnum.ftl b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlEnum.ftl index 73d189631414e41cca52740e9a176baa5c7b98d2..0dd3ce51cb3b9a63939c51e5fb57ba1f919ca375 100755 --- a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlEnum.ftl +++ b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlEnum.ftl @@ -9,7 +9,7 @@ package ${package} */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"], date = "${generatedInfo.getDateTime()}" @@ -37,4 +37,4 @@ enum class ${className}(val graphqlName: String)<#if implements?has_content> : < -} \ No newline at end of file +} diff --git a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlInterface.ftl b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlInterface.ftl index 59ffb1e450020ed5be3cec4ea30ce3eaabf70f0e..4c512e1527830ecee7fdc561dde7223827fba2b3 100755 --- a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlInterface.ftl +++ b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlInterface.ftl @@ -37,7 +37,7 @@ import ${import}.* */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"], date = "${generatedInfo.getDateTime()}" @@ -67,4 +67,4 @@ interface ${className}<#if implements?has_content> : <#list implements as interf -} \ No newline at end of file +} diff --git a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlOperations.ftl b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlOperations.ftl index af0bf0668eaf5cb15614d48171c2dcdc6317312d..b84121916c8a979fbfdc9ad9c2ea36cc6bd4eab2 100755 --- a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlOperations.ftl +++ b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlOperations.ftl @@ -13,7 +13,7 @@ import ${import}.* */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"], date = "${generatedInfo.getDateTime()}" @@ -41,4 +41,4 @@ interface ${className}<#if implements?has_content> : <#list implements as interf fun ${operation.name}(<#list operation.parameters as param>${param.name}: ${param.type}<#if param_has_next>, ): ${operation.type} -} \ No newline at end of file +} diff --git a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlParametrizedInput.ftl b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlParametrizedInput.ftl index b7e9f6cca472573d230c13601db1418297de20ba..18b9b6841341e18a8b8ba0dcefc9050f32141d23 100755 --- a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlParametrizedInput.ftl +++ b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlParametrizedInput.ftl @@ -11,7 +11,7 @@ import java.util.StringJoiner */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"], date = "${generatedInfo.getDateTime()}" @@ -51,4 +51,4 @@ data class ${className}( return joiner.toString() } } - \ No newline at end of file + diff --git a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlRequest.ftl b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlRequest.ftl index 41d86254c1865fc4b24577e25c76bad2c4d4d8c5..c510cbda219eacecb9fbca749c7cd0d3c0783c7a 100755 --- a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlRequest.ftl +++ b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlRequest.ftl @@ -16,7 +16,7 @@ import java.util.Objects */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"], date = "${generatedInfo.getDateTime()}" @@ -152,4 +152,4 @@ open class ${className}(private val alias: String?) : GraphQLOperationRequest { } -} \ No newline at end of file +} diff --git a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlResponse.ftl b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlResponse.ftl index 9b2000111f092544e965ad2d47d377f5dc02f87b..e5d962d177ddf013df61edf8f278a10fe5e5b639 100755 --- a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlResponse.ftl +++ b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlResponse.ftl @@ -11,7 +11,7 @@ import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLResult */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"], date = "${generatedInfo.getDateTime()}" @@ -44,4 +44,4 @@ open class ${className} : GraphQLResult>() return data.getValue(OPERATION_NAME) } -} \ No newline at end of file +} diff --git a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlResponseProjection.ftl b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlResponseProjection.ftl index f333516ca028b22e65164b6e8418c84ed9f9bb56..692b9310dd6ab55adcd4b5f8105a24191e39994e 100755 --- a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlResponseProjection.ftl +++ b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlResponseProjection.ftl @@ -15,7 +15,7 @@ import java.util.Objects */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"], date = "${generatedInfo.getDateTime()}" diff --git a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlType.ftl b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlType.ftl index e292741221647b07df39dfb37cd8bd2110b75c95..c35c1a1bcf4feddb738fdd7ad1a46c49b891322c 100755 --- a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlType.ftl +++ b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlType.ftl @@ -44,7 +44,7 @@ import java.util.StringJoiner */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"], date = "${generatedInfo.getDateTime()}" @@ -158,4 +158,4 @@ data class ${className}( } } - \ No newline at end of file + diff --git a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlUnion.ftl b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlUnion.ftl index 177126bcc807bcd2753cb1521c2af75287b5dfba..c10c72156bed0e632f0e7d91cf20dbb7dd99df9e 100755 --- a/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlUnion.ftl +++ b/src/main/resources/templates/kotlin-lang/kotlinClassGraphqlUnion.ftl @@ -10,7 +10,7 @@ package ${package} */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"], date = "${generatedInfo.getDateTime()}" @@ -21,4 +21,4 @@ package ${package} interface ${className} { -} \ No newline at end of file +} diff --git a/src/main/resources/templates/scala-lang/scalaClassGraphqlEnum.ftl b/src/main/resources/templates/scala-lang/scalaClassGraphqlEnum.ftl index 5bd28555386eb1d3606e8c56ef474826b3839722..e00c304232db5f8e5abb0ed720e95ea440c12c73 100644 --- a/src/main/resources/templates/scala-lang/scalaClassGraphqlEnum.ftl +++ b/src/main/resources/templates/scala-lang/scalaClassGraphqlEnum.ftl @@ -13,7 +13,7 @@ import com.fasterxml.jackson.core.`type`.TypeReference */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), date = "${generatedInfo.getDateTime()}" diff --git a/src/main/resources/templates/scala-lang/scalaClassGraphqlInterface.ftl b/src/main/resources/templates/scala-lang/scalaClassGraphqlInterface.ftl index e9fb6efe924aa94a778616be02e8cec6040fb4ac..84195d17f6a3335829e99bdade2b0e762410c33d 100644 --- a/src/main/resources/templates/scala-lang/scalaClassGraphqlInterface.ftl +++ b/src/main/resources/templates/scala-lang/scalaClassGraphqlInterface.ftl @@ -32,7 +32,7 @@ import ${enum}._ */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), date = "${generatedInfo.getDateTime()}" @@ -62,4 +62,4 @@ trait ${className}<#if implements?has_content> extends<#list implements as inter -} \ No newline at end of file +} diff --git a/src/main/resources/templates/scala-lang/scalaClassGraphqlOperations.ftl b/src/main/resources/templates/scala-lang/scalaClassGraphqlOperations.ftl index c9501be5640245b4fe606b686bdc66d4bfb547d4..444c8dea32408b4a89bdfaceedfbcc1f15b66726 100644 --- a/src/main/resources/templates/scala-lang/scalaClassGraphqlOperations.ftl +++ b/src/main/resources/templates/scala-lang/scalaClassGraphqlOperations.ftl @@ -45,7 +45,7 @@ import ${import}._ */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), date = "${generatedInfo.getDateTime()}" @@ -73,4 +73,4 @@ trait ${className}<#if implements?has_content> extends <#list implements as inte def ${operation.name}(<#list operation.parameters as param>${param.name}: ${param.type}<#if param_has_next>, ): ${operation.type} -} \ No newline at end of file +} diff --git a/src/main/resources/templates/scala-lang/scalaClassGraphqlParametrizedInput.ftl b/src/main/resources/templates/scala-lang/scalaClassGraphqlParametrizedInput.ftl index db31e8942556feed6cf1ce42173744d59e3bc299..50ede6d610a9651277977b310d075db7974e3b4c 100644 --- a/src/main/resources/templates/scala-lang/scalaClassGraphqlParametrizedInput.ftl +++ b/src/main/resources/templates/scala-lang/scalaClassGraphqlParametrizedInput.ftl @@ -30,7 +30,7 @@ import ${enum}._ */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), date = "${generatedInfo.getDateTime()}" @@ -63,4 +63,4 @@ case class ${className}( } -} \ No newline at end of file +} diff --git a/src/main/resources/templates/scala-lang/scalaClassGraphqlRequest.ftl b/src/main/resources/templates/scala-lang/scalaClassGraphqlRequest.ftl index dbd3db1e2e73c9ff990df4d01a23208ee2a90f20..2308be2e8624bef12ca7ab09168e4971a94c5191 100644 --- a/src/main/resources/templates/scala-lang/scalaClassGraphqlRequest.ftl +++ b/src/main/resources/templates/scala-lang/scalaClassGraphqlRequest.ftl @@ -37,7 +37,7 @@ import ${enum}._ */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), date = "${generatedInfo.getDateTime()}" @@ -168,4 +168,4 @@ object ${className} { } -} \ No newline at end of file +} diff --git a/src/main/resources/templates/scala-lang/scalaClassGraphqlResponse.ftl b/src/main/resources/templates/scala-lang/scalaClassGraphqlResponse.ftl index befa6e71856fc28c0462002a8bb53c56979696e5..04f7332eb7fcdf0e6a6efbfc6212af35b5a142b8 100644 --- a/src/main/resources/templates/scala-lang/scalaClassGraphqlResponse.ftl +++ b/src/main/resources/templates/scala-lang/scalaClassGraphqlResponse.ftl @@ -13,7 +13,7 @@ import java.util.{ Map => JMap } */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), date = "${generatedInfo.getDateTime()}" diff --git a/src/main/resources/templates/scala-lang/scalaClassGraphqlResponseProjection.ftl b/src/main/resources/templates/scala-lang/scalaClassGraphqlResponseProjection.ftl index 7e4467df33abdcc91d2f0996b1b7a0766444ce3f..80879b83ed026949d73e25f7abc7e3e40b128637 100644 --- a/src/main/resources/templates/scala-lang/scalaClassGraphqlResponseProjection.ftl +++ b/src/main/resources/templates/scala-lang/scalaClassGraphqlResponseProjection.ftl @@ -15,7 +15,7 @@ import java.util.Objects */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), date = "${generatedInfo.getDateTime()}" diff --git a/src/main/resources/templates/scala-lang/scalaClassGraphqlType.ftl b/src/main/resources/templates/scala-lang/scalaClassGraphqlType.ftl index b3011166adc882168c1c820e54c092041bbd7fb3..369cc2f97620b160b4b277d0e212edf4d4960ece 100644 --- a/src/main/resources/templates/scala-lang/scalaClassGraphqlType.ftl +++ b/src/main/resources/templates/scala-lang/scalaClassGraphqlType.ftl @@ -59,7 +59,7 @@ import ${enum}._ */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), date = "${generatedInfo.getDateTime()}" @@ -131,4 +131,4 @@ object ${className} { } } - \ No newline at end of file + diff --git a/src/main/resources/templates/scala-lang/scalaClassGraphqlUnion.ftl b/src/main/resources/templates/scala-lang/scalaClassGraphqlUnion.ftl index 4c507705a5efd79aa87317f60609bfc67429e070..79a26ca288fb1c2baf4c12f9911c24fb58f29992 100644 --- a/src/main/resources/templates/scala-lang/scalaClassGraphqlUnion.ftl +++ b/src/main/resources/templates/scala-lang/scalaClassGraphqlUnion.ftl @@ -10,7 +10,7 @@ package ${package} */ -<#if generatedInfo.getGeneratedType()?has_content> +<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content> @${generatedInfo.getGeneratedType()}( value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"), date = "${generatedInfo.getDateTime()}" @@ -21,4 +21,4 @@ package ${package} trait ${className} { -} \ No newline at end of file +} diff --git a/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenFileCreatorTest.java b/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenFileCreatorTest.java index 09953d9a3b6cede89f9e6aef359c7af5c4fbe24c..0e96a1e233981935b6a6ca841c667a9e040254a3 100644 --- a/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenFileCreatorTest.java +++ b/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenFileCreatorTest.java @@ -42,10 +42,11 @@ class GraphQLCodegenFileCreatorTest { Map dataModel = new HashMap<>(); dataModel.put(DataModelFields.CLASS_NAME, "Class1"); dataModel.put(DataModelFields.ANNOTATIONS, Collections.emptyList()); + dataModel.put(DataModelFields.GENERATED_ANNOTATION, false); dataModel.put(DataModelFields.GENERATED_INFO, new GeneratedInformation()); GraphQLCodegenFileCreator.generateFile(mappingContext, FreeMarkerTemplateType.ENUM, dataModel, OUTPUT_DIR); assertThrows(UnableToCreateFileException.class, () -> GraphQLCodegenFileCreator.generateFile(mappingContext, FreeMarkerTemplateType.ENUM, dataModel, OUTPUT_DIR)); } -} \ No newline at end of file +} diff --git a/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenTest.java b/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenTest.java index 6da797e06c10fabbccbc8c360c2818d01a451457..24c0e8cc9f0790a8817412449cd6999939eac5b6 100644 --- a/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenTest.java +++ b/src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenTest.java @@ -226,6 +226,20 @@ class GraphQLCodegenTest { getFileByName(files, "EventPropertyTO.java")); } + @Test + void generate_GeneratedAnnotation() throws Exception { + mappingConfig.setAddGeneratedAnnotation(false); + mappingConfig.setModelNameSuffix("TO"); + + generate("src/test/resources/schemas/test.graphqls"); + + File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles()); + assertNotEquals(0, files.length); + + assertSameTrimmedContent(new File("src/test/resources/expected-classes/EventPropertyTO_withoutGeneratedAnnotation.java.txt"), + getFileByName(files, "EventPropertyTO.java")); + } + @Test void generate_NoSchemas() { GeneratedInformation staticGeneratedInfo = TestUtils.getStaticGeneratedInfo(); diff --git a/src/test/java/com/kobylynskyi/graphql/codegen/model/MappingConfigTest.java b/src/test/java/com/kobylynskyi/graphql/codegen/model/MappingConfigTest.java index 3732057f2b66f8940f068c430c4149f8b17703f4..183c08486bb788859d5951a0bf095264aa3d939e 100644 --- a/src/test/java/com/kobylynskyi/graphql/codegen/model/MappingConfigTest.java +++ b/src/test/java/com/kobylynskyi/graphql/codegen/model/MappingConfigTest.java @@ -71,6 +71,7 @@ class MappingConfigTest { assertFalse(mappingConfig.getGenerateClient()); assertFalse(mappingConfig.getGenerateModelsForRootTypes()); assertTrue(mappingConfig.getGenerateApisWithThrowsException()); + assertTrue(mappingConfig.getAddGeneratedAnnotation()); assertEquals("11", mappingConfig.getTypeResolverPrefix()); assertEquals("12", mappingConfig.getTypeResolverSuffix()); assertEquals("key", mappingConfig.getRelayConfig().getDirectiveArgumentName()); @@ -112,6 +113,7 @@ class MappingConfigTest { assertFalse(mappingConfig.getGenerateClient()); assertFalse(mappingConfig.getGenerateModelsForRootTypes()); assertTrue(mappingConfig.getGenerateApisWithThrowsException()); + assertTrue(mappingConfig.getAddGeneratedAnnotation()); assertEquals("9", mappingConfig.getParametrizedInputSuffix()); assertEquals("11", mappingConfig.getTypeResolverPrefix()); assertEquals("12", mappingConfig.getTypeResolverSuffix()); @@ -157,6 +159,7 @@ class MappingConfigTest { assertTrue(mappingConfig.getGenerateClient()); assertTrue(mappingConfig.getGenerateModelsForRootTypes()); assertFalse(mappingConfig.getGenerateApisWithThrowsException()); + assertFalse(mappingConfig.getAddGeneratedAnnotation()); assertEquals("99", mappingConfig.getParametrizedInputSuffix()); assertEquals("1111", mappingConfig.getTypeResolverPrefix()); assertEquals("1212", mappingConfig.getTypeResolverSuffix()); @@ -201,6 +204,7 @@ class MappingConfigTest { config.setGenerateClient(false); config.setGenerateModelsForRootTypes(false); config.setGenerateApisWithThrowsException(true); + config.setAddGeneratedAnnotation(true); config.setParametrizedInputSuffix("9"); config.setTypeResolverPrefix("11"); config.setTypeResolverSuffix("12"); @@ -243,6 +247,7 @@ class MappingConfigTest { config.setGenerateClient(true); config.setGenerateModelsForRootTypes(true); config.setGenerateApisWithThrowsException(false); + config.setAddGeneratedAnnotation(false); config.setParametrizedInputSuffix("99"); config.setTypeResolverPrefix("1111"); config.setTypeResolverSuffix("1212"); @@ -297,4 +302,4 @@ class MappingConfigTest { assertEquals(expectedMappingConfig.getRelayConfig(), mappingConfig.getRelayConfig()); } -} \ No newline at end of file +} diff --git a/src/test/resources/expected-classes/EventPropertyTO_withoutGeneratedAnnotation.java.txt b/src/test/resources/expected-classes/EventPropertyTO_withoutGeneratedAnnotation.java.txt new file mode 100644 index 0000000000000000000000000000000000000000..109d91bedf5e7260c967212b9d91317f71d95f40 --- /dev/null +++ b/src/test/resources/expected-classes/EventPropertyTO_withoutGeneratedAnnotation.java.txt @@ -0,0 +1,187 @@ +package com.kobylynskyi.graphql.test1; + + +/** + * An event property have all possible types + */ +public class EventPropertyTO implements java.io.Serializable { + + private Double floatVal; + private Boolean booleanVal; + private int intVal; + private java.util.List intVals; + private String stringVal; + private java.util.List child; + private EventTO parent; + + public EventPropertyTO() { + } + + public EventPropertyTO(Double floatVal, Boolean booleanVal, int intVal, java.util.List intVals, String stringVal, java.util.List child, EventTO parent) { + this.floatVal = floatVal; + this.booleanVal = booleanVal; + this.intVal = intVal; + this.intVals = intVals; + this.stringVal = stringVal; + this.child = child; + this.parent = parent; + } + + /** + * Float property + * with multiline comment + */ + public Double getFloatVal() { + return floatVal; + } + /** + * Float property + * with multiline comment + */ + public void setFloatVal(Double floatVal) { + this.floatVal = floatVal; + } + + public Boolean getBooleanVal() { + return booleanVal; + } + public void setBooleanVal(Boolean booleanVal) { + this.booleanVal = booleanVal; + } + + public int getIntVal() { + return intVal; + } + public void setIntVal(int intVal) { + this.intVal = intVal; + } + + /** + * primitive should not be generated + */ + public java.util.List getIntVals() { + return intVals; + } + /** + * primitive should not be generated + */ + public void setIntVals(java.util.List intVals) { + this.intVals = intVals; + } + + /** + * String comment + */ + public String getStringVal() { + return stringVal; + } + /** + * String comment + */ + public void setStringVal(String stringVal) { + this.stringVal = stringVal; + } + + /** + * Properties + */ + public java.util.List getChild() { + return child; + } + /** + * Properties + */ + public void setChild(java.util.List child) { + this.child = child; + } + + /** + * Parent event of the property + */ + public EventTO getParent() { + return parent; + } + /** + * Parent event of the property + */ + public void setParent(EventTO parent) { + this.parent = parent; + } + + + + public static EventPropertyTO.Builder builder() { + return new EventPropertyTO.Builder(); + } + + public static class Builder { + + private Double floatVal; + private Boolean booleanVal; + private int intVal; + private java.util.List intVals; + private String stringVal; + private java.util.List child; + private EventTO parent; + + public Builder() { + } + + /** + * Float property + * with multiline comment + */ + public Builder setFloatVal(Double floatVal) { + this.floatVal = floatVal; + return this; + } + + public Builder setBooleanVal(Boolean booleanVal) { + this.booleanVal = booleanVal; + return this; + } + + public Builder setIntVal(int intVal) { + this.intVal = intVal; + return this; + } + + /** + * primitive should not be generated + */ + public Builder setIntVals(java.util.List intVals) { + this.intVals = intVals; + return this; + } + + /** + * String comment + */ + public Builder setStringVal(String stringVal) { + this.stringVal = stringVal; + return this; + } + + /** + * Properties + */ + public Builder setChild(java.util.List child) { + this.child = child; + return this; + } + + /** + * Parent event of the property + */ + public Builder setParent(EventTO parent) { + this.parent = parent; + return this; + } + + + public EventPropertyTO build() { + return new EventPropertyTO(floatVal, booleanVal, intVal, intVals, stringVal, child, parent); + } + + } +}