Class GenerationSpec

java.lang.Object
com.ennovativesolutions.modelina.gradle.GenerationSpec

public abstract class GenerationSpec extends Object
Configuration for a single Modelina generation. Multiple generations can be declared inside the modelina { generations { ... } } block, each producing its own generation task.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract org.gradle.api.provider.MapProperty<String,Object>
    Options passed to generateToFiles, e.g.
    abstract org.gradle.api.file.RegularFileProperty
    The input document to generate models from.
    abstract org.gradle.api.provider.Property<String>
    Target output language.
    The name of this generation, as declared in the DSL.
    abstract org.gradle.api.provider.Property<String>
    Convenience for the namespace complete-model option (C#).
    abstract org.gradle.api.provider.MapProperty<String,Object>
    Options passed to the generator constructor, e.g.
    abstract org.gradle.api.file.DirectoryProperty
    Directory the generated source files are written to.
    abstract org.gradle.api.provider.Property<String>
    Convenience for the packageName complete-model option (Java, Kotlin, Scala, Go, Python, ...).
    abstract org.gradle.api.provider.ListProperty<Object>
    Modelina presets to apply.
    abstract org.gradle.api.provider.MapProperty<String,Object>
    Values made available to the transform script as context.env.
    abstract org.gradle.api.file.RegularFileProperty
    Optional ECMAScript module that pre-processes the parsed input document before generation.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • GenerationSpec

      @Inject public GenerationSpec(String name)
  • Method Details

    • getName

      public String getName()
      The name of this generation, as declared in the DSL. Used to derive the task name.
    • getLanguage

      public abstract org.gradle.api.provider.Property<String> getLanguage()
      Target output language. One of: java, typescript, csharp, cplusplus, dart, go, kotlin, javascript, php, python, rust, scala.
    • getInputFile

      public abstract org.gradle.api.file.RegularFileProperty getInputFile()
      The input document to generate models from. May be an AsyncAPI, OpenAPI, JSON Schema, Avro, Swagger or Meta-model document, in JSON or YAML.
    • getOutputDir

      public abstract org.gradle.api.file.DirectoryProperty getOutputDir()
      Directory the generated source files are written to.
    • getPresets

      public abstract org.gradle.api.provider.ListProperty<Object> getPresets()
      Modelina presets to apply. Each entry is either a preset constant name (e.g. 'JAVA_JACKSON_PRESET') or a map binding options to a preset (e.g. [name: 'JAVA_CONSTRAINTS_PRESET', options: [useJakarta: true]]). Names map to the preset constants exported by the @asyncapi/modelina package.
    • getOptions

      public abstract org.gradle.api.provider.MapProperty<String,Object> getOptions()
      Options passed to the generator constructor, e.g. [collectionType: 'List'] for Java or [moduleSystem: 'ESM'] for TypeScript.
    • getCompleteOptions

      public abstract org.gradle.api.provider.MapProperty<String,Object> getCompleteOptions()
      Options passed to generateToFiles, e.g. [exportType: 'named'] for TypeScript. For the common packageName / namespace cases prefer the dedicated convenience properties below.
    • getPackageName

      public abstract org.gradle.api.provider.Property<String> getPackageName()
      Convenience for the packageName complete-model option (Java, Kotlin, Scala, Go, Python, ...). Merged into getCompleteOptions().
    • getNamespace

      public abstract org.gradle.api.provider.Property<String> getNamespace()
      Convenience for the namespace complete-model option (C#). Merged into getCompleteOptions().
    • getTransformScript

      public abstract org.gradle.api.file.RegularFileProperty getTransformScript()
      Optional ECMAScript module that pre-processes the parsed input document before generation. It must export a default function (document, context) => root | root[] returning one or more self-contained root schemas. When set, each returned root is run through generateCompleteModels, results are deduplicated by model name, and the plugin writes the files itself (the output directory is emptied first). Use this for input shapes Modelina cannot consume directly (e.g. unwrapping a CloudEvents envelope, titling anonymous schemas).
    • getTransformEnv

      public abstract org.gradle.api.provider.MapProperty<String,Object> getTransformEnv()
      Values made available to the transform script as context.env. Use for transform-specific knobs such as a root title or message name.