NetRexxC (Apache Ant API)
Date: 2018-07-10

org.apache.tools.ant.taskdefs.optional

## Class NetRexxC

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.MatchingTask
      - - org.apache.tools.ant.taskdefs.optional.NetRexxC

- All Implemented Interfaces:
    java.lang.Cloneable, SelectorContainer

      public class NetRexxC
      extends MatchingTask

  Compiles NetRexx source files. This task can take the following arguments:
  - binary
  - classpath
  - comments
  - compile
  - console
  - crossref
  - decimal
  - destdir
  - diag
  - explicit
  - format
  - keep
  - logo
  - replace
  - savelog
  - srcdir
  - sourcedir
  - strictargs
  - strictassign
  - strictcase
  - strictimport
  - symbols
  - time
  - trace
  - utf8
  - verbose
  - suppressMethodArgumentNotUsed
  - suppressPrivatePropertyNotUsed
  - suppressVariableNotUsed
  - suppressExceptionNotSignalled
  - suppressDeprecation
  - removeKeepExtension
  Of these arguments, the srcdir argument is required.

  When this task executes, it will recursively scan the srcdir looking for NetRexx source files to compile. This task makes its compile decision based on timestamp.

  Before files are compiled they and any other file in the srcdir will be copied to the destdir allowing support files to be located properly in the classpath. The reason for copying the source files before the compile is that NetRexxC has only two destinations for classfiles:

  1. The current directory, and,
  2. The directory the source is in (see sourcedir option)

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `NetRexxC.TraceAttr` Enumerated class corresponding to the trace attribute.
    `static class` | `NetRexxC.VerboseAttr` Enumerated class corresponding to the verbose attribute.

  - ### Field Summary

    - ### Fields inherited from class org.apache.tools.ant.taskdefs.MatchingTask

      `fileset`

    - ### Fields inherited from class org.apache.tools.ant.Task

      `target, taskName, taskType, wrapper`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `NetRexxC()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `execute()` Executes the task - performs the actual compiler call.
    `void` | `init()` init-Method sets defaults from Properties.
    `void` | `setBinary(boolean binary)` Set whether literals are treated as binary, rather than NetRexx types.
    `void` | `setClasspath(java.lang.String classpath)` Set the classpath used for NetRexx compilation.
    `void` | `setComments(boolean comments)` Set whether comments are passed through to the generated java source.
    `void` | `setCompact(boolean compact)` Set whether error messages come out in compact or verbose format.
    `void` | `setCompile(boolean compile)` Set whether the NetRexx compiler should compile the generated java code.
    `void` | `setConsole(boolean console)` Set whether or not compiler messages should be displayed on the 'console'.
    `void` | `setCrossref(boolean crossref)` Whether variable cross references are generated.
    `void` | `setDecimal(boolean decimal)` Set whether decimal arithmetic should be used for the netrexx code.
    `void` | `setDestDir(java.io.File destDirName)` Set the destination directory into which the NetRexx source files should be copied and then compiled.
    `void` | `setDiag(boolean diag)` Whether diagnostic information about the compile is generated
    `void` | `setExplicit(boolean explicit)` Sets whether variables must be declared explicitly before use.
    `void` | `setFormat(boolean format)` Whether the generated java code is formatted nicely or left to match NetRexx line numbers for call stack debugging.
    `void` | `setJava(boolean java)` Whether the generated java code is produced.
    `void` | `setKeep(boolean keep)` Sets whether the generated java source file should be kept after compilation.
    `void` | `setLogo(boolean logo)` Whether the compiler text logo is displayed when compiling.
    `void` | `setRemoveKeepExtension(boolean removeKeepExtension)` Tells whether the trailing .keep in nocompile-mode should be removed so that the resulting java source really ends on .java.
    `void` | `setReplace(boolean replace)` Whether the generated .java file should be replaced when compiling.
    `void` | `setSavelog(boolean savelog)` Sets whether the compiler messages will be written to NetRexxC.log as well as to the console.
    `void` | `setSourcedir(boolean sourcedir)` Tells the NetRexx compiler to store the class files in the same directory as the source files.
    `void` | `setSrcDir(java.io.File srcDirName)` Set the source dir to find the source Java files.
    `void` | `setStrictargs(boolean strictargs)` Tells the NetRexx compiler that method calls always need parentheses, even if no arguments are needed, e.g.
    `void` | `setStrictassign(boolean strictassign)` Tells the NetRexx compile that assignments must match exactly on type.
    `void` | `setStrictcase(boolean strictcase)` Specifies whether the NetRexx compiler should be case sensitive or not.
    `void` | `setStrictimport(boolean strictimport)` Sets whether classes need to be imported explicitly using an `import` statement.
    `void` | `setStrictprops(boolean strictprops)` Sets whether local properties need to be qualified explicitly using `this`.
    `void` | `setStrictsignal(boolean strictsignal)` Whether the compiler should force catching of exceptions by explicitly named types.
    `void` | `setSuppressDeprecation(boolean suppressDeprecation)` Tells whether we should filter out any deprecation-messages of the compiler out.
    `void` | `setSuppressExceptionNotSignalled(boolean suppressExceptionNotSignalled)` Whether the task should suppress the "FooException is in SIGNALS list but is not signalled within the method", which is sometimes rather useless.
    `void` | `setSuppressMethodArgumentNotUsed(boolean suppressMethodArgumentNotUsed)` Whether the task should suppress the "Method argument is not used" in strictargs-Mode, which can not be suppressed by the compiler itself.
    `void` | `setSuppressPrivatePropertyNotUsed(boolean suppressPrivatePropertyNotUsed)` Whether the task should suppress the "Private property is defined but not used" in strictargs-Mode, which can be quite annoying while developing.
    `void` | `setSuppressVariableNotUsed(boolean suppressVariableNotUsed)` Whether the task should suppress the "Variable is set but not used" in strictargs-Mode.
    `void` | `setSymbols(boolean symbols)` Sets whether debug symbols should be generated into the class file.
    `void` | `setTime(boolean time)` Asks the NetRexx compiler to print compilation times to the console Valid true values are "yes", "on" or "true".
    `void` | `setTrace(NetRexxC.TraceAttr trace)` Turns on or off tracing and directs the resultant trace output Valid values are: "trace", "trace1", "trace2" and "notrace".
    `void` | `setTrace(java.lang.String trace)` Turns on or off tracing and directs the resultant trace output Valid values are: "trace", "trace1", "trace2" and "notrace".
    `void` | `setUtf8(boolean utf8)` Tells the NetRexx compiler that the source is in UTF8.
    `void` | `setVerbose(NetRexxC.VerboseAttr verbose)` Whether lots of warnings and error messages should be generated
    `void` | `setVerbose(java.lang.String verbose)` Whether lots of warnings and error messages should be generated

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.MatchingTask

      `add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addSelector, addSize, addType, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDirectoryScanner, getImplicitFileSet, getSelectors, hasSelectors, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setExcludes, setExcludesfile, setFollowSymlinks, setIncludes, setIncludesfile, setProject, XsetIgnore, XsetItems`

    - ### Methods inherited from class org.apache.tools.ant.Task

      `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `clone, getDescription, getLocation, getProject, setDescription, setLocation`

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### NetRexxC

          public NetRexxC()

  - ### Method Detail

    - #### setBinary

          public void setBinary(boolean binary)

      Set whether literals are treated as binary, rather than NetRexx types. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default is false.
      Parameters:
        `binary` - a `boolean` value.

    - #### setClasspath

          public void setClasspath(java.lang.String classpath)

      Set the classpath used for NetRexx compilation.
      Parameters:
        `classpath` - the classpath to use.

    - #### setComments

          public void setComments(boolean comments)

      Set whether comments are passed through to the generated java source. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `comments` - a `boolean` value.

    - #### setCompact

          public void setCompact(boolean compact)

      Set whether error messages come out in compact or verbose format. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is true.
      Parameters:
        `compact` - a `boolean` value.

    - #### setCompile

          public void setCompile(boolean compile)

      Set whether the NetRexx compiler should compile the generated java code. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is true. Setting this flag to false, will automatically set the keep flag to true.
      Parameters:
        `compile` - a `boolean` value.

    - #### setConsole

          public void setConsole(boolean console)

      Set whether or not compiler messages should be displayed on the 'console'. Note that this task will rely on the default value for filtering compile messages. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `console` - a `boolean` value.

    - #### setCrossref

          public void setCrossref(boolean crossref)

      Whether variable cross references are generated. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `crossref` - a `boolean` value.

    - #### setDecimal

          public void setDecimal(boolean decimal)

      Set whether decimal arithmetic should be used for the netrexx code. Setting this to off will report decimal arithmetic as an error, for performance critical applications. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is true.
      Parameters:
        `decimal` - a `boolean` value.

    - #### setDestDir

          public void setDestDir(java.io.File destDirName)

      Set the destination directory into which the NetRexx source files should be copied and then compiled.
      Parameters:
        `destDirName` - the destination directory.

    - #### setDiag

          public void setDiag(boolean diag)

      Whether diagnostic information about the compile is generated
      Parameters:
        `diag` - a `boolean` value.

    - #### setExplicit

          public void setExplicit(boolean explicit)

      Sets whether variables must be declared explicitly before use. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `explicit` - a `boolean` value.

    - #### setFormat

          public void setFormat(boolean format)

      Whether the generated java code is formatted nicely or left to match NetRexx line numbers for call stack debugging. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value false.
      Parameters:
        `format` - a `boolean` value.

    - #### setJava

          public void setJava(boolean java)

      Whether the generated java code is produced. This is not implemented yet.
      Parameters:
        `java` - a `boolean` value.

    - #### setKeep

          public void setKeep(boolean keep)

      Sets whether the generated java source file should be kept after compilation. The generated files will have an extension of .java.keep, not .java. See setRemoveKeepExtension Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `keep` - a `boolean` value.
      See Also:
        `setRemoveKeepExtension(boolean)`

    - #### setLogo

          public void setLogo(boolean logo)

      Whether the compiler text logo is displayed when compiling. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `logo` - a `boolean` value.

    - #### setReplace

          public void setReplace(boolean replace)

      Whether the generated .java file should be replaced when compiling. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `replace` - a `boolean` value.

    - #### setSavelog

          public void setSavelog(boolean savelog)

      Sets whether the compiler messages will be written to NetRexxC.log as well as to the console. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `savelog` - a `boolean` value.

    - #### setSourcedir

          public void setSourcedir(boolean sourcedir)

      Tells the NetRexx compiler to store the class files in the same directory as the source files. The alternative is the working directory. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is true.
      Parameters:
        `sourcedir` - a `boolean` value.

    - #### setSrcDir

          public void setSrcDir(java.io.File srcDirName)

      Set the source dir to find the source Java files.
      Parameters:
        `srcDirName` - the source directory.

    - #### setStrictargs

          public void setStrictargs(boolean strictargs)

      Tells the NetRexx compiler that method calls always need parentheses, even if no arguments are needed, e.g. `aStringVar.getBytes` vs. `aStringVar.getBytes()`. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `strictargs` - a `boolean` value.

    - #### setStrictassign

          public void setStrictassign(boolean strictassign)

      Tells the NetRexx compile that assignments must match exactly on type. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `strictassign` - a `boolean` value.

    - #### setStrictcase

          public void setStrictcase(boolean strictcase)

      Specifies whether the NetRexx compiler should be case sensitive or not. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `strictcase` - a `boolean` value.

    - #### setStrictimport

          public void setStrictimport(boolean strictimport)

      Sets whether classes need to be imported explicitly using an `import` statement. By default the NetRexx compiler will import certain packages automatically. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `strictimport` - a `boolean` value.

    - #### setStrictprops

          public void setStrictprops(boolean strictprops)

      Sets whether local properties need to be qualified explicitly using `this`. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `strictprops` - a `boolean` value.

    - #### setStrictsignal

          public void setStrictsignal(boolean strictsignal)

      Whether the compiler should force catching of exceptions by explicitly named types. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false
      Parameters:
        `strictsignal` - a `boolean` value.

    - #### setSymbols

          public void setSymbols(boolean symbols)

      Sets whether debug symbols should be generated into the class file. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `symbols` - a `boolean` value.

    - #### setTime

          public void setTime(boolean time)

      Asks the NetRexx compiler to print compilation times to the console Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `time` - a `boolean` value.

    - #### setTrace

          public void setTrace(NetRexxC.TraceAttr trace)

      Turns on or off tracing and directs the resultant trace output Valid values are: "trace", "trace1", "trace2" and "notrace". "trace" and "trace2".
      Parameters:
        `trace` - the value to set.

    - #### setTrace

          public void setTrace(java.lang.String trace)

      Turns on or off tracing and directs the resultant trace output Valid values are: "trace", "trace1", "trace2" and "notrace". "trace" and "trace2".
      Parameters:
        `trace` - the value to set.

    - #### setUtf8

          public void setUtf8(boolean utf8)

      Tells the NetRexx compiler that the source is in UTF8. Valid true values are "yes", "on" or "true". Anything else sets the flag to false. The default value is false.
      Parameters:
        `utf8` - a `boolean` value.

    - #### setVerbose

          public void setVerbose(NetRexxC.VerboseAttr verbose)

      Whether lots of warnings and error messages should be generated
      Parameters:
        `verbose` - the value to set - verbose<level> or noverbose.

    - #### setVerbose

          public void setVerbose(java.lang.String verbose)

      Whether lots of warnings and error messages should be generated
      Parameters:
        `verbose` - the value to set - verbose<level> or noverbose.

    - #### setSuppressMethodArgumentNotUsed

          public void setSuppressMethodArgumentNotUsed(boolean suppressMethodArgumentNotUsed)

      Whether the task should suppress the "Method argument is not used" in strictargs-Mode, which can not be suppressed by the compiler itself. The warning is logged as verbose message, though.
      Parameters:
        `suppressMethodArgumentNotUsed` - a `boolean` value.

    - #### setSuppressPrivatePropertyNotUsed

          public void setSuppressPrivatePropertyNotUsed(boolean suppressPrivatePropertyNotUsed)

      Whether the task should suppress the "Private property is defined but not used" in strictargs-Mode, which can be quite annoying while developing. The warning is logged as verbose message, though.
      Parameters:
        `suppressPrivatePropertyNotUsed` - a `boolean` value.

    - #### setSuppressVariableNotUsed

          public void setSuppressVariableNotUsed(boolean suppressVariableNotUsed)

      Whether the task should suppress the "Variable is set but not used" in strictargs-Mode. Be careful with this one! The warning is logged as verbose message, though.
      Parameters:
        `suppressVariableNotUsed` - a `boolean` value.

    - #### setSuppressExceptionNotSignalled

          public void setSuppressExceptionNotSignalled(boolean suppressExceptionNotSignalled)

      Whether the task should suppress the "FooException is in SIGNALS list but is not signalled within the method", which is sometimes rather useless. The warning is logged as verbose message, though.
      Parameters:
        `suppressExceptionNotSignalled` - a `boolean` value.

    - #### setSuppressDeprecation

          public void setSuppressDeprecation(boolean suppressDeprecation)

      Tells whether we should filter out any deprecation-messages of the compiler out.
      Parameters:
        `suppressDeprecation` - a `boolean` value.

    - #### setRemoveKeepExtension

          public void setRemoveKeepExtension(boolean removeKeepExtension)

      Tells whether the trailing .keep in nocompile-mode should be removed so that the resulting java source really ends on .java. This facilitates the use of the javadoc tool later on.
      Parameters:
        `removeKeepExtension` - boolean

    - #### init

          public void init()

      init-Method sets defaults from Properties. That way, when ant is called with arguments like -Dant.netrexxc.verbose=verbose5 one can easily take control of all netrexxc-tasks.
      Overrides:
        `init` in class `Task`

    - #### execute

          public void execute()
                       throws BuildException

      Executes the task - performs the actual compiler call.
      Overrides:
        `execute` in class `Task`
      Throws:
        `BuildException` - on error.