Class GeneratePojoTask
- All Implemented Interfaces:
com.graphql_java_generator.plugin.conf.CommonConfiguration,com.graphql_java_generator.plugin.conf.GenerateClientCodeConfiguration,com.graphql_java_generator.plugin.conf.GenerateCodeCommonConfiguration,com.graphql_java_generator.plugin.conf.GeneratePojoConfiguration,com.graphql_java_generator.plugin.conf.GenerateServerCodeConfiguration,com.graphql_java_generator.plugin.conf.GraphQLConfiguration,Comparable<org.gradle.api.Task>,org.gradle.api.internal.DynamicObjectAware,org.gradle.api.internal.TaskInternal,org.gradle.api.Named,org.gradle.api.plugins.ExtensionAware,org.gradle.api.Task,org.gradle.util.Configurable<org.gradle.api.Task>
The generatePojo goal generates all the java objects that match the provided GraphQL schema. It allows to work in Java with graphQL, in a schema first approach.
This goal generates:- One java interface for each GraphQL `union` and `interface`
- One java class for each GraphQL `type` and `input` type, including the query, mutation and subscription (if any). If the GraphQL type implements an interface, then its java class implements this same interface
- One java enum for each GraphQL enum
Every class, interface and their attributes are marked with the annotation from the GraphQL annotation package. This allows to retrieve the GraphQL information for every class, interface and attribute, at runtime.
It can run in two modes (see the mode plugin parameter for more information):
- server: In the server mode, only the GraphQL annotation are added. You can add the JPA annotation, with the generateJPAAnnotation plugin parameter set to true.
- client: The client mode is the default one. This mode generates the same POJO as in server mode, with the addition of the Jackson annotations. These annotations allows to serialize and unserialize the GraphQL POJO to and from JSON. And the CustomJacksonDeserializers utility class is generated, that allows to deserialize custom scalars and arrays.
If false (default value since 2.0, recommended), you must add the runtime dependency, for the client or
server, depending on the mode parameter you choosed. So the needed dependency would one of these two:
com.graphql-java-generator
graphql-java-client-runtime
${graphql-plugin.version}
com.graphql-java-generator
graphql-java-server-runtime
${graphql-plugin.version}
If true, you must add the runtime dependency, for the client or server, depending on the mode
parameter you choosed. So the needed dependency would one of these two:
com.graphql-java-generator
graphql-java-client-dependencies
pom
${graphql-plugin.version}
com.graphql-java-generator
graphql-java-server-dependencies
pom
${graphql-plugin.version}
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.gradle.api.Named
org.gradle.api.Named.Namer -
Field Summary
Fields inherited from class com.graphql_java_generator.gradleplugin.GenerateServerCodeTask
generateBatchMappingDataFetchers, ignoredSpringMappingsFields inherited from class com.graphql_java_generator.gradleplugin.GenerateCodeCommonTask
targetResourceFolder, targetSourceFolder, useJakartaEE9Fields inherited from class com.graphql_java_generator.gradleplugin.CommonTask
extension, skipGenerationIfSchemaHasNotChangedFields inherited from interface com.graphql_java_generator.plugin.conf.CommonConfiguration
DEFAULT_ADD_RELAY_CONNECTIONS, DEFAULT_JSON_GRAPHQL_SCHEMA_FILE, DEFAULT_MAX_TOKENS, DEFAULT_PACKAGE_NAME, DEFAULT_PREFIX, DEFAULT_SCHEMA_FILE_FOLDER, DEFAULT_SCHEMA_FILE_PATTERN, DEFAULT_SCHEMA_SUB_FOLDER, DEFAULT_SKIP_GENERATION_IF_SCHEMA_HAS_NOT_CHANGED, DEFAULT_SUFFIX, DEFAULT_TARGET_SCHEMA_SUBFOLDERFields inherited from interface com.graphql_java_generator.plugin.conf.GenerateClientCodeConfiguration
DEFAULT_GENERATE_DEPRECATED_REQUEST_RESPONSEFields inherited from interface com.graphql_java_generator.plugin.conf.GenerateCodeCommonConfiguration
DEFAULT_COPY_RUNTIME_SOURCES, DEFAULT_QUERY_MUTATION_EXECUTION_PROTOCOL, DEFAULT_SCHEMA_PERSONALIZATION_FILE, DEFAULT_SEPARATE_UTIL_CLASSES, DEFAULT_SOURCE_ENCODING, DEFAULT_SPRING_BEAN_SUFFIX, DEFAULT_TARGET_RESOURCE_FOLDER, DEFAULT_TARGET_SOURCE_FOLDER, DEFAULT_USE_JAKARTA_EE9Fields inherited from interface com.graphql_java_generator.plugin.conf.GeneratePojoConfiguration
DEFAULT_GENERATE_JACKSON_ANNOTATIONSFields inherited from interface com.graphql_java_generator.plugin.conf.GenerateServerCodeConfiguration
DEFAULT_BATCH_MAPPING_DATA_FETCHER_RETURN_TYPE, DEFAULT_BATCH_MAPPING_DATA_FETCHER_RETURN_TYPE_STR, DEFAULT_GENERATE_BATCH_LOADER_ENVIRONMENT, DEFAULT_GENERATE_BATCH_MAPPING_DATA_FETCHERS, DEFAULT_GENERATE_DATA_FETCHER_FOR_EVERY_FIELD_WITH_ARGUMENT, DEFAULT_GENERATE_DATA_LOADER_FOR_LISTS, DEFAULT_GENERATE_JPA_ANNOTATION, DEFAULT_IGNORED_SPRING_MAPPINGS, DEFAULT_JAVA_TYPE_FOR_ID_TYPE, DEFAULT_SCAN_BASE_PACKAGESFields inherited from interface com.graphql_java_generator.plugin.conf.GraphQLConfiguration
DEFAULT_MODEFields inherited from interface org.gradle.api.Task
TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE -
Constructor Summary
ConstructorsConstructorDescriptionGeneratePojoTask(GeneratePojoExtension extension, org.gradle.api.file.ProjectLayout projectLayout) GeneratePojoTask(org.gradle.api.file.ProjectLayout projectLayout) -
Method Summary
Modifier and TypeMethodDescriptionvoidexecute()protected GeneratePojoExtensionbooleanbooleanbooleanThere is no utility classes for this goal.voidsetGenerateJacksonAnnotations(boolean generateJacksonAnnotations) Methods inherited from class com.graphql_java_generator.gradleplugin.GraphQLGenerateCodeTask
getMode, isGenerateDeprecatedRequestResponse, setGenerateDeprecatedRequestResponse, setModeMethods inherited from class com.graphql_java_generator.gradleplugin.GenerateServerCodeTask
getBatchMappingDataFetcherReturnType, getIgnoredSpringMappings, getJavaTypeForIDType, getPackaging, getQuotedScanBasePackages, getScanBasePackages, isGenerateBatchLoaderEnvironment, isGenerateBatchMappingDataFetchers, isGenerateDataFetcherForEveryFieldsWithArguments, isGenerateDataLoaderForLists, isGenerateJPAAnnotation, setBatchMappingDataFetcherReturnType, setGenerateBatchLoaderEnvironment, setGenerateBatchMappingDataFetchers, setGenerateDataFetcherForEveryFieldsWithArguments, setGenerateDataLoaderForLists, setGenerateJPAAnnotation, setIgnoredSpringMappings, setJavaTypeForIDType, setPackaging, setScanBasePackagesMethods inherited from class com.graphql_java_generator.gradleplugin.GenerateCodeCommonTask
getCustomScalars, getPackageName, getQueryMutationExecutionProtocol, getSchemaPersonalizationFile, getSourceEncoding, getSpringAutoConfigurationPackage, getSpringBeanSuffix, getTargetClassFolder, getTargetResourceFolder, getTargetSourceFolder, isCopyRuntimeSources, isUseJakartaEE9, setCopyRuntimeSources, setCustomScalars, setPackageName, setQueryMutationExecutionProtocol, setSchemaPersonalizationFile, setSeparateUtilityClasses, setSourceEncoding, setSpringBeanSuffix, setTargetResourceFolder, setTargetSourceFolder, setUseJakartaEE9Methods inherited from class com.graphql_java_generator.gradleplugin.CommonTask
getDefaultTargetSchemaFileName, getEnumPrefix, getEnumSuffix, getFileValue, getInputPrefix, getInputSuffix, getInterfacePrefix, getInterfaceSuffix, getJsonGraphqlSchemaFilename, getMaxTokens, getProjectBuildDir, getProjectDir, getProjectMainSourceFolder, getSchemaFileFolder, getSchemaFilePattern, getTargetSchemaSubFolder, getTemplates, getTypePrefix, getTypeSuffix, getUnionPrefix, getUnionSuffix, getValue, isAddRelayConnections, isInitialized, isSkipGenerationIfSchemaHasNotChanged, logConfiguration, setAddRelayConnections, setEnumPrefix, setEnumSuffix, setExtension, setInitialized, setInputPrefix, setInputSuffix, setInterfacePrefix, setInterfaceSuffix, setJsonGraphqlSchemaFilename, setParserOptions, setSchemaFileFolder, setSchemaFilePattern, setSkipGenerationIfSchemaHasNotChanged, setTargetSchemaSubFolder, setTemplates, setTypePrefix, setTypeSuffix, setUnionPrefix, setUnionSuffixMethods inherited from class org.gradle.api.DefaultTask
compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesServiceMethods inherited from class org.gradle.api.internal.AbstractTask
acceptServiceReferences, appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, setImpliesSubProjectsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.graphql_java_generator.plugin.conf.CommonConfiguration
getDefaultTargetSchemaFileName, getEnumPrefix, getEnumSuffix, getInputPrefix, getInputSuffix, getInterfacePrefix, getInterfaceSuffix, getJsonGraphqlSchemaFilename, getMaxTokens, getProjectBuildDir, getProjectDir, getProjectMainSourceFolder, getSchemaFileFolder, getSchemaFilePattern, getTargetSchemaSubFolder, getTemplates, getTypePrefix, getTypeSuffix, getUnionPrefix, getUnionSuffix, isAddRelayConnections, isSkipGenerationIfSchemaHasNotChanged, logCommonConfigurationMethods inherited from interface com.graphql_java_generator.plugin.conf.GenerateClientCodeConfiguration
isGenerateDeprecatedRequestResponseMethods inherited from interface com.graphql_java_generator.plugin.conf.GenerateCodeCommonConfiguration
getCustomScalars, getPackageName, getQueryMutationExecutionProtocol, getSchemaPersonalizationFile, getSourceEncoding, getSpringAutoConfigurationPackage, getSpringBeanSuffix, getTargetClassFolder, getTargetResourceFolder, getTargetSourceFolder, isCopyRuntimeSources, isUseJakartaEE9, logGenerateCodeCommonConfigurationMethods inherited from interface com.graphql_java_generator.plugin.conf.GeneratePojoConfiguration
getModeMethods inherited from interface com.graphql_java_generator.plugin.conf.GenerateServerCodeConfiguration
getBatchMappingDataFetcherReturnType, getIgnoredSpringMappings, getJavaTypeForIDType, getPackaging, getQuotedScanBasePackages, getScanBasePackages, isGenerateBatchLoaderEnvironment, isGenerateBatchMappingDataFetchers, isGenerateDataFetcherForEveryFieldsWithArguments, isGenerateDataLoaderForLists, isGenerateJPAAnnotation, logConfiguration, logGenerateServerCodeConfigurationMethods inherited from interface com.graphql_java_generator.plugin.conf.GraphQLConfiguration
logConfigurationMethods inherited from interface org.gradle.api.Task
doNotTrackState, notCompatibleWithConfigurationCache
-
Constructor Details
-
GeneratePojoTask
@Inject public GeneratePojoTask(org.gradle.api.file.ProjectLayout projectLayout) - Parameters:
projectLayout- This Gradle service is automatically injected by gradle. It allows to retrieve the project directory, as accessing the GradleProjectis forbidden from a task.
-
GeneratePojoTask
public GeneratePojoTask(GeneratePojoExtension extension, org.gradle.api.file.ProjectLayout projectLayout)
-
-
Method Details
-
execute
public void execute()- Overrides:
executein classGraphQLGenerateCodeTask
-
getExtension
- Overrides:
getExtensionin classGraphQLGenerateCodeTask
-
isGenerateJacksonAnnotations
@Input public boolean isGenerateJacksonAnnotations()- Specified by:
isGenerateJacksonAnnotationsin interfacecom.graphql_java_generator.plugin.conf.CommonConfiguration- Specified by:
isGenerateJacksonAnnotationsin interfacecom.graphql_java_generator.plugin.conf.GenerateClientCodeConfiguration- Specified by:
isGenerateJacksonAnnotationsin interfacecom.graphql_java_generator.plugin.conf.GeneratePojoConfiguration- Specified by:
isGenerateJacksonAnnotationsin interfacecom.graphql_java_generator.plugin.conf.GenerateServerCodeConfiguration- Specified by:
isGenerateJacksonAnnotationsin interfacecom.graphql_java_generator.plugin.conf.GraphQLConfiguration- Overrides:
isGenerateJacksonAnnotationsin classGraphQLGenerateCodeTask
-
setGenerateJacksonAnnotations
public void setGenerateJacksonAnnotations(boolean generateJacksonAnnotations) -
isGenerateUtilityClasses
public boolean isGenerateUtilityClasses()- Specified by:
isGenerateUtilityClassesin interfacecom.graphql_java_generator.plugin.conf.GenerateCodeCommonConfiguration- Specified by:
isGenerateUtilityClassesin interfacecom.graphql_java_generator.plugin.conf.GeneratePojoConfiguration- Overrides:
isGenerateUtilityClassesin classGenerateCodeCommonTask
-
isSeparateUtilityClasses
public boolean isSeparateUtilityClasses()There is no utility classes for this goal.- Specified by:
isSeparateUtilityClassesin interfacecom.graphql_java_generator.plugin.conf.GenerateCodeCommonConfiguration- Specified by:
isSeparateUtilityClassesin interfacecom.graphql_java_generator.plugin.conf.GeneratePojoConfiguration- Overrides:
isSeparateUtilityClassesin classGenerateCodeCommonTask- Returns:
- The
GeneratePojoConfigurationimplementation of this method always returns false
-