Class GenerateLanguageTask

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
io.lionweb.gradleplugin.tasks.AbstractGenerationTask
io.lionweb.gradleplugin.tasks.GenerateLanguageTask
All Implemented Interfaces:
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>

public abstract class GenerateLanguageTask extends AbstractGenerationTask
The GenerateLanguageTask is an abstract Gradle task used for processing LionWeb Language files, generating Java code representations for the defined languages. The task supports multiple serialization formats and handles language dependencies using a topological sort mechanism.

This task works by reading serialized language definitions from a specified directory, processing the provided files in the supported formats (currently JSON), and generating Java classes in the specified output directory.

Users can configure the input directory for the language definitions, the target directory for generated code, and the package name to be used for the generated classes. The task validates the input directories, processes the files, and applies the appropriate serialization format for language chunks.

Tasks performed include: - Loading serialized language chunks from files in the input directory, filtered by `LionWebVersion`. - Deserializing language specifications and resolving dependencies through a topological sort. - Generating Java code using the specified package name and output directory.

If unsupported file formats (such as Protobuf) or issues with serialization are encountered during execution, appropriate exception handling and logging are performed to assist in debugging.

Gradle properties: - `languagesDirectory` - Optional directory containing serialized language files. - `generationDirectory` - Optional output directory for generated Java files. - `packageName` - Required property specifying the package for generated Java classes.

  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.gradle.api.Task

    org.gradle.api.Task.Namer
  • Field Summary

    Fields 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

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    run()
     

    Methods 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, usesService

    Methods inherited from class org.gradle.api.internal.AbstractTask

    acceptServiceReferences, appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getConvention, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, setImpliesSubProjects

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.gradle.api.Task

    doNotTrackState, getConvention, notCompatibleWithConfigurationCache
  • Constructor Details

    • GenerateLanguageTask

      public GenerateLanguageTask()
  • Method Details

    • run

      public void run()