未验证 提交 dd048a34 编写于 作者: B Brayden Streibel 提交者: GitHub

Flag to specify whether @generated annotation should be added (#534)

*   Flag to specifie whether the @generated annotation is added

* 🐛  Add missing parameter to sbt plugin

* 👌  Fix file spacing, code style

* 🎨  fix constructor code style

* 🐛  Fix sbt plugin setting flag

*   Add tests for addGeneratedAnnotation flag
上级 5b94daf5
......@@ -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<String> fieldsWithResolvers = new HashSet<>();
private Set<String> 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
......
......@@ -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
}
......@@ -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")
......
......@@ -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)
......
......@@ -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);
}
......
......@@ -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;
......
......@@ -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;
......
......@@ -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;
......
......@@ -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());
......
......@@ -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;
......
......@@ -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());
......
......@@ -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;
......
......@@ -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";
......
......@@ -250,6 +250,13 @@ public interface GraphQLCodegenConfiguration {
*/
Boolean getGenerateApisWithThrowsException();
/**
* Specifies whether generated classes should be annotated with @Generated
*
* @return <b>true</b> if classes should be annotated with @Generated
*/
Boolean getAddGeneratedAnnotation();
/**
* Relay-related configurations.
*
......
......@@ -52,6 +52,7 @@ public class MappingConfig implements GraphQLCodegenConfiguration, Combinable<Ma
private Boolean generateModelsForRootTypes;
private Boolean useOptionalForNullableReturnTypes;
private Boolean generateApisWithThrowsException;
private Boolean addGeneratedAnnotation;
// field resolvers configs:
private Set<String> fieldsWithResolvers = new HashSet<>();
......@@ -132,6 +133,7 @@ public class MappingConfig implements GraphQLCodegenConfiguration, Combinable<Ma
generateModelsForRootTypes = getValueOrDefaultToThis(source, GraphQLCodegenConfiguration::getGenerateModelsForRootTypes);
useOptionalForNullableReturnTypes = getValueOrDefaultToThis(source, GraphQLCodegenConfiguration::getUseOptionalForNullableReturnTypes);
generateApisWithThrowsException = getValueOrDefaultToThis(source, GraphQLCodegenConfiguration::getGenerateApisWithThrowsException);
addGeneratedAnnotation = getValueOrDefaultToThis(source, GraphQLCodegenConfiguration::getAddGeneratedAnnotation);
relayConfig = getValueOrDefaultToThis(source, GraphQLCodegenConfiguration::getRelayConfig);
queryResolverParentInterface = getValueOrDefaultToThis(source, GraphQLCodegenConfiguration::getQueryResolverParentInterface);
mutationResolverParentInterface = getValueOrDefaultToThis(source, GraphQLCodegenConfiguration::getMutationResolverParentInterface);
......@@ -422,6 +424,15 @@ public class MappingConfig implements GraphQLCodegenConfiguration, Combinable<Ma
this.generateApisWithThrowsException = generateApisWithThrowsException;
}
@Override
public Boolean getAddGeneratedAnnotation() {
return addGeneratedAnnotation;
}
public void setAddGeneratedAnnotation(Boolean addGeneratedAnnotation) {
this.addGeneratedAnnotation = addGeneratedAnnotation;
}
@Override
public RelayConfig getRelayConfig() {
return relayConfig;
......
......@@ -24,6 +24,8 @@ public class MappingConfigConstants {
public static final String DEFAULT_GENERATE_MODELS_FOR_ROOT_TYPES_STRING = "false";
public static final boolean DEFAULT_GENERATE_APIS_WITH_THROWS_EXCEPTION = true;
public static final String DEFAULT_GENERATE_APIS_WITH_THROWS_EXCEPTION_STRING = "true";
public static final boolean DEFAULT_ADD_GENERATED_ANNOTATION = true;
public static final String DEFAULT_ADD_GENERATED_ANNOTATION_STRING = "true";
public static final boolean DEFAULT_USE_OPTIONAL_FOR_NULLABLE_RETURN_TYPES = false;
public static final String DEFAULT_USE_OPTIONAL_FOR_NULLABLE_RETURN_TYPES_STRING = "false";
public static final ApiNamePrefixStrategy DEFAULT_API_NAME_PREFIX_STRATEGY = ApiNamePrefixStrategy.CONSTANT;
......
......@@ -184,6 +184,11 @@ public class MappingContext implements GraphQLCodegenConfiguration {
return config.getGenerateApisWithThrowsException();
}
@Override
public Boolean getAddGeneratedAnnotation() {
return config.getAddGeneratedAnnotation();
}
@Override
public RelayConfig getRelayConfig() {
return config.getRelayConfig();
......
......@@ -9,7 +9,7 @@ package ${package};
</#list>
*/
</#if>
<#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
}
......@@ -15,7 +15,7 @@ import ${import}.*;
</#list>
*/
</#if>
<#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
</#list>
</#if>
}
\ No newline at end of file
}
......@@ -13,7 +13,7 @@ import ${import}.*;
</#list>
*/
</#if>
<#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></#list>)<#if operation.throwsException> throws Exception</#if>;
</#list>
}
\ No newline at end of file
}
......@@ -17,7 +17,7 @@ import java.util.Objects;
</#list>
*/
</#if>
<#if generatedInfo.getGeneratedType()?has_content>
<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content>
@${generatedInfo.getGeneratedType()}(
value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen",
date = "${generatedInfo.getDateTime()}"
......
......@@ -19,7 +19,7 @@ import java.util.Set;
</#list>
*/
</#if>
<#if generatedInfo.getGeneratedType()?has_content>
<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content>
@${generatedInfo.getGeneratedType()}(
value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen",
date = "${generatedInfo.getDateTime()}"
......
......@@ -12,7 +12,7 @@ import java.util.Map;
</#list>
*/
</#if>
<#if generatedInfo.getGeneratedType()?has_content>
<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content>
@${generatedInfo.getGeneratedType()}(
value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen",
date = "${generatedInfo.getDateTime()}"
......
......@@ -15,7 +15,7 @@ import java.util.Objects;
</#list>
*/
</#if>
<#if generatedInfo.getGeneratedType()?has_content>
<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content>
@${generatedInfo.getGeneratedType()}(
value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen",
date = "${generatedInfo.getDateTime()}"
......
......@@ -25,7 +25,7 @@ import java.util.StringJoiner;
</#list>
*/
</#if>
<#if generatedInfo.getGeneratedType()?has_content>
<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content>
@${generatedInfo.getGeneratedType()}(
value = "com.kobylynskyi.graphql.codegen.GraphQLCodegen",
date = "${generatedInfo.getDateTime()}"
......
......@@ -10,7 +10,7 @@ package ${package};
</#list>
*/
</#if>
<#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};
</#list>
public interface ${className} {
}
\ No newline at end of file
}
......@@ -9,7 +9,7 @@ package ${package}
</#list>
*/
</#if>
<#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> : <
</#list>
</#if>
}
\ No newline at end of file
}
......@@ -37,7 +37,7 @@ import ${import}.*
</#list>
*/
</#if>
<#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
</#list>
</#if>
}
\ No newline at end of file
}
......@@ -13,7 +13,7 @@ import ${import}.*
</#list>
*/
</#if>
<#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>, </#if></#list>): ${operation.type}
</#list>
}
\ No newline at end of file
}
......@@ -11,7 +11,7 @@ import java.util.StringJoiner
</#list>
*/
</#if>
<#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()
}
}
</#if>
\ No newline at end of file
</#if>
......@@ -16,7 +16,7 @@ import java.util.Objects
</#list>
*/
</#if>
<#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 {
}
</#if>
}
\ No newline at end of file
}
......@@ -11,7 +11,7 @@ import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLResult
</#list>
*/
</#if>
<#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<MutableMap<String, ${returnTypeName}>>()
return data.getValue(OPERATION_NAME)
</#if>
}
}
\ No newline at end of file
}
......@@ -15,7 +15,7 @@ import java.util.Objects
</#list>
*/
</#if>
<#if generatedInfo.getGeneratedType()?has_content>
<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content>
@${generatedInfo.getGeneratedType()}(
value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"],
date = "${generatedInfo.getDateTime()}"
......
......@@ -44,7 +44,7 @@ import java.util.StringJoiner
</#list>
*/
</#if>
<#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}(
}
</#if>
}
</#if>
\ No newline at end of file
</#if>
......@@ -10,7 +10,7 @@ package ${package}
</#list>
*/
</#if>
<#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}
</#list>
interface ${className} {
}
\ No newline at end of file
}
......@@ -13,7 +13,7 @@ import com.fasterxml.jackson.core.`type`.TypeReference
</#list>
*/
</#if>
<#if generatedInfo.getGeneratedType()?has_content>
<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content>
@${generatedInfo.getGeneratedType()}(
value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"),
date = "${generatedInfo.getDateTime()}"
......
......@@ -32,7 +32,7 @@ import ${enum}._
</#list>
*/
</#if>
<#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
</#list>
</#if>
}
\ No newline at end of file
}
......@@ -45,7 +45,7 @@ import ${import}._
</#list>
*/
</#if>
<#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>, </#if></#list>): ${operation.type}
</#list>
}
\ No newline at end of file
}
......@@ -30,7 +30,7 @@ import ${enum}._
</#list>
*/
</#if>
<#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}(
</#if>
}
}
\ No newline at end of file
}
......@@ -37,7 +37,7 @@ import ${enum}._
</#list>
*/
</#if>
<#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} {
}
</#if>
}
\ No newline at end of file
}
......@@ -13,7 +13,7 @@ import java.util.{ Map => JMap }
</#list>
*/
</#if>
<#if generatedInfo.getGeneratedType()?has_content>
<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content>
@${generatedInfo.getGeneratedType()}(
value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"),
date = "${generatedInfo.getDateTime()}"
......
......@@ -15,7 +15,7 @@ import java.util.Objects
</#list>
*/
</#if>
<#if generatedInfo.getGeneratedType()?has_content>
<#if generatedAnnotation && generatedInfo.getGeneratedType()?has_content>
@${generatedInfo.getGeneratedType()}(
value = Array("com.kobylynskyi.graphql.codegen.GraphQLCodegen"),
date = "${generatedInfo.getDateTime()}"
......
......@@ -59,7 +59,7 @@ import ${enum}._
</#list>
*/
</#if>
<#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} {
}
}
</#if>
\ No newline at end of file
</#if>
......@@ -10,7 +10,7 @@ package ${package}
</#list>
*/
</#if>
<#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}
</#list>
trait ${className} {
}
\ No newline at end of file
}
......@@ -42,10 +42,11 @@ class GraphQLCodegenFileCreatorTest {
Map<String, Object> 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
}
......@@ -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();
......
......@@ -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
}
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<Integer> intVals;
private String stringVal;
private java.util.List<EventPropertyTO> child;
private EventTO parent;
public EventPropertyTO() {
}
public EventPropertyTO(Double floatVal, Boolean booleanVal, int intVal, java.util.List<Integer> intVals, String stringVal, java.util.List<EventPropertyTO> 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<Integer> getIntVals() {
return intVals;
}
/**
* primitive should not be generated
*/
public void setIntVals(java.util.List<Integer> 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<EventPropertyTO> getChild() {
return child;
}
/**
* Properties
*/
public void setChild(java.util.List<EventPropertyTO> 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<Integer> intVals;
private String stringVal;
private java.util.List<EventPropertyTO> 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<Integer> 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<EventPropertyTO> 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);
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册