Class SasMacroGradleTask

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
name.jurgenei.gradle.antlr.SasMacroGradleTask
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>

@DisableCachingByDefault(because="Macro expansion is file-system driven and this proof-of-concept does not yet declare full incremental cache semantics") public abstract class SasMacroGradleTask extends org.gradle.api.DefaultTask
Expands SAS macros from source files into normalized intermediate SAS files.

This task is first stage in chained workflow:

 SasProgramFile -> SasMacroGradleTask -> XmlAstSasGradleTask -> XML AST
 
  • Nested Class Summary

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

    org.gradle.api.Named.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
    SasMacroGradleTask(org.gradle.api.model.ObjectFactory objects)
    Creates macro task with SAS defaults.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Expands all selected SAS files into destination directory preserving relative paths.
    org.gradle.api.file.DirectoryProperty
    Destination folder containing expanded SAS files.
    org.gradle.api.provider.ListProperty<String>
    Ant-style exclude patterns relative to getSourceDirectory().
    org.gradle.api.provider.Property<Boolean>
    Fails task when unresolved &macro references remain after expansion.
    org.gradle.api.provider.ListProperty<String>
    Ant-style include patterns relative to getSourceDirectory().
    org.gradle.api.provider.MapProperty<String,String>
    Macro values provided by build logic before file-local declarations.
    org.gradle.api.file.DirectoryProperty
    Source folder scanned for SAS files.

    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, doNotTrackStateIf, getAsDynamicObject, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonsNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, restoreOnlyIf, restoreTaskActions, 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, notCompatibleWithConfigurationCache
  • Constructor Details

    • SasMacroGradleTask

      @Inject public SasMacroGradleTask(org.gradle.api.model.ObjectFactory objects)
      Creates macro task with SAS defaults.
      Parameters:
      objects - Gradle object factory.
  • Method Details

    • getSourceDirectory

      @InputDirectory @PathSensitive(RELATIVE) public org.gradle.api.file.DirectoryProperty getSourceDirectory()
      Source folder scanned for SAS files.
      Returns:
      source directory.
    • getDestinationDirectory

      @OutputDirectory public org.gradle.api.file.DirectoryProperty getDestinationDirectory()
      Destination folder containing expanded SAS files.
      Returns:
      destination directory.
    • getIncludes

      @Input public org.gradle.api.provider.ListProperty<String> getIncludes()
      Ant-style include patterns relative to getSourceDirectory().
      Returns:
      include patterns.
    • getExcludes

      @Input public org.gradle.api.provider.ListProperty<String> getExcludes()
      Ant-style exclude patterns relative to getSourceDirectory().
      Returns:
      exclude patterns.
    • getPredefinedMacros

      @Input public org.gradle.api.provider.MapProperty<String,String> getPredefinedMacros()
      Macro values provided by build logic before file-local declarations.
      Returns:
      macro map.
    • getFailOnUndefinedMacro

      @Input public org.gradle.api.provider.Property<Boolean> getFailOnUndefinedMacro()
      Fails task when unresolved &macro references remain after expansion.
      Returns:
      fail-on-undefined flag.
    • expand

      public void expand()
      Expands all selected SAS files into destination directory preserving relative paths.