Class PreprocessTask

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
com.igormaznitsa.jcp.ant.PreprocessTask
All Implemented Interfaces:
SpecialVariableProcessor, PreprocessorLogger, Cloneable

public class PreprocessTask extends org.apache.tools.ant.Task implements PreprocessorLogger, SpecialVariableProcessor
The class implements an ANT task to allow calls for preprocessing from ANT build scripts. Also it allows to out messages from preprocessor directives into the ANT log and read ANT properties as global variables (with the "ant." prefix)
Author:
Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    Inside class describes a "cfgfile" item, it has the only attribute "file", the attribute must be defined
    static class 
    Inside class describes a "global" item, it describes a global variable which will be added into the preprocessor context It has attributes "name" and "value", be careful in the value attribute usage because you have to use """ instead of \" symbol inside string values
  • Field Summary

    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
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
     
     
    void
    debug(String message)
    Log a debug message
    void
    error(String message)
    Log an error message
    void
     
    Get the value for the variable
    Get all variable names allowed by the processor as an array, all names must be in lower case
    void
    info(String message)
    Log an information message
    void
    setAllowWhitespace(boolean flag)
    Set the "allowWhitespace", it allows to manage the mode to allow whitespace between the // and the #.
    void
    setCareForLastNextLine(boolean flag)
    Set the "careforlastnextline" attribute, it allows to make precise processing of last next line char
    void
    setClear(boolean flag)
    Set the "clear" attribute, it is a boolean attribute allows to make the preprocessor to clear the destination directory before its work
    void
    setCompareDestiation(boolean flag)
    Set the "compareDestination" attribute, it allows to turn on the mode to compare destination file content and to not override the file by generated one if there is the same content.
    void
    setCopyFileAttributes(boolean flag)
    Set the "copyfileattributes", it turns on mode to copy file attributes if file generated or copied.
    void
    Set the "destination" attribute, it allows to define the destination directory where the preprocessed files will be placed in
    void
    setDisableOut(boolean flag)
    Set the "disableOut" attribute, it is a boolean attribute allows to disable any output operations into the destination directory
    void
    Set the "excluded" attribute, it defines the excluded file extensions which will be ignored by the preprocessor in its work (also those files will not be copied)
    void
    Set the "excludedfolders" attribute, sub-folders in source folders to be excluded from preprocessing, ANT patterns allowed, ${path.separator} should be used for multiple items
    void
    Set the "inCharset" attribute, it allows to define the text encoding for the reading text files
    void
    setKeepLines(boolean flag)
    Set the "keepLines" attribute, it is a boolean attribute to keep non-executing lines as commented ones in the output
    void
    Set the "outCharset" attribute, it allows to define the text encoding for the writing text files
    void
    setPreserveIndent(boolean flag)
    Set the "preserveident" attribute, to preserve spaces occupied by '//$' and '//$$' directives.
    void
    Set the "processing" attribute, it defines the file extensions to be processed
    void
    setRemoveComments(boolean flag)
    Set the "removeComments" attribute, it is a boolean attribute allows to make the preprocessor to remove all Java-like comments from the result files
    void
    Set the "source" attribute, it allows to define the source directory to be preprocessed
    void
    setUnknownVarAsFalse(boolean flag)
    Set the "unknownVarAsFalse" attribute, it allows to interpret unknown variables as FALSE.
    void
    setVariable(String varName, Value value, PreprocessorContext context)
    Set a value to the variable
    void
    setVerbose(boolean flag)
    Set the "verbose" attribute, it is a boolean attribute allows to set the verbose level of preprocessor messages
    void
    warning(String message)
    Log a warning message

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

    bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, 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, setProject

    Methods inherited from class Object

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

    • PreprocessTask

      public PreprocessTask()
  • Method Details

    • setCopyFileAttributes

      public void setCopyFileAttributes(boolean flag)
      Set the "copyfileattributes", it turns on mode to copy file attributes if file generated or copied.
      Parameters:
      flag - true if to copy attributes, false otherwise
    • setAllowWhitespace

      public void setAllowWhitespace(boolean flag)
      Set the "allowWhitespace", it allows to manage the mode to allow whitespace between the // and the #.
      Parameters:
      flag - true if whitespace is allowed, false otherwise
    • setPreserveIndent

      public void setPreserveIndent(boolean flag)
      Set the "preserveident" attribute, to preserve spaces occupied by '//$' and '//$$' directives.
      Parameters:
      flag - true to preserve positions of tail chars in lines marked by '//$$' and '//$', false otherwise
    • setCompareDestiation

      public void setCompareDestiation(boolean flag)
      Set the "compareDestination" attribute, it allows to turn on the mode to compare destination file content and to not override the file by generated one if there is the same content.
      Parameters:
      flag - true if to compare destination file content, false otherwise
    • setSource

      public void setSource(File src)
      Set the "source" attribute, it allows to define the source directory to be preprocessed
      Parameters:
      src - a directory to be used as the source one, must not be null
    • setCareForLastNextLine

      public void setCareForLastNextLine(boolean flag)
      Set the "careforlastnextline" attribute, it allows to make precise processing of last next line char
      Parameters:
      flag - shows to turn on or turn off the mode
    • setDestination

      public void setDestination(File dst)
      Set the "destination" attribute, it allows to define the destination directory where the preprocessed files will be placed in
      Parameters:
      dst - a directory to be used as the destination one, must not be null
    • setInCharset

      public void setInCharset(String charSet)
      Set the "inCharset" attribute, it allows to define the text encoding for the reading text files
      Parameters:
      charSet - the character set to be used to decode read texts, must not be null
    • setOutCharset

      public void setOutCharset(String charSet)
      Set the "outCharset" attribute, it allows to define the text encoding for the writing text files
      Parameters:
      charSet - the character set to be used to encode written texts, must not be null
    • setUnknownVarAsFalse

      public void setUnknownVarAsFalse(boolean flag)
      Set the "unknownVarAsFalse" attribute, it allows to interpret unknown variables as FALSE.
      Parameters:
      flag - true to turn on the mode, false otherwise.
    • setExcluded

      public void setExcluded(String ext)
      Set the "excluded" attribute, it defines the excluded file extensions which will be ignored by the preprocessor in its work (also those files will not be copied)
      Parameters:
      ext - the list of ignored file extensions, must not be null
    • setProcessing

      public void setProcessing(String ext)
      Set the "processing" attribute, it defines the file extensions to be processed
      Parameters:
      ext - the list of file extensions which should be preprocessed, must not be null
    • setExcludedFolders

      public void setExcludedFolders(String value)
      Set the "excludedfolders" attribute, sub-folders in source folders to be excluded from preprocessing, ANT patterns allowed, ${path.separator} should be used for multiple items
      Parameters:
      value - folder names as string
    • setClear

      public void setClear(boolean flag)
      Set the "clear" attribute, it is a boolean attribute allows to make the preprocessor to clear the destination directory before its work
      Parameters:
      flag - true if the destination directory must be cleared before preprocessing, otherwise false
    • setRemoveComments

      public void setRemoveComments(boolean flag)
      Set the "removeComments" attribute, it is a boolean attribute allows to make the preprocessor to remove all Java-like comments from the result files
      Parameters:
      flag - true if the result file must be cleared from comments, otherwise false
    • setVerbose

      public void setVerbose(boolean flag)
      Set the "verbose" attribute, it is a boolean attribute allows to set the verbose level of preprocessor messages
      Parameters:
      flag - true if the verbose level must be set, otherwise false
    • setKeepLines

      public void setKeepLines(boolean flag)
      Set the "keepLines" attribute, it is a boolean attribute to keep non-executing lines as commented ones in the output
      Parameters:
      flag - true if preprocessor should keep the lines as commented ones, false otherwise
    • setDisableOut

      public void setDisableOut(boolean flag)
      Set the "disableOut" attribute, it is a boolean attribute allows to disable any output operations into the destination directory
      Parameters:
      flag - true if the output operations must be disabled, otherwise false
    • createGlobal

      @ImplementationNote("Do not change because for ANT!") public PreprocessTask.Global createGlobal()
    • createCfgFile

      @ImplementationNote("Do not change because for ANT!") public PreprocessTask.CfgFile createCfgFile()
    • execute

      public void execute() throws org.apache.tools.ant.BuildException
      Overrides:
      execute in class org.apache.tools.ant.Task
      Throws:
      org.apache.tools.ant.BuildException
    • error

      public void error(String message)
      Description copied from interface: PreprocessorLogger
      Log an error message
      Specified by:
      error in interface PreprocessorLogger
      Parameters:
      message - the text to be output into the error log
    • info

      public void info(String message)
      Description copied from interface: PreprocessorLogger
      Log an information message
      Specified by:
      info in interface PreprocessorLogger
      Parameters:
      message - the text to be output into the information log
    • debug

      public void debug(String message)
      Description copied from interface: PreprocessorLogger
      Log a debug message
      Specified by:
      debug in interface PreprocessorLogger
      Parameters:
      message - the text to be output into the information log
    • warning

      public void warning(String message)
      Description copied from interface: PreprocessorLogger
      Log a warning message
      Specified by:
      warning in interface PreprocessorLogger
      Parameters:
      message - the text to be output into the warning log
    • getVariableNames

      @MustNotContainNull public String[] getVariableNames()
      Description copied from interface: SpecialVariableProcessor
      Get all variable names allowed by the processor as an array, all names must be in lower case
      Specified by:
      getVariableNames in interface SpecialVariableProcessor
      Returns:
      allowed variable names as a String array
    • getVariable

      public Value getVariable(String varName, PreprocessorContext context)
      Description copied from interface: SpecialVariableProcessor
      Get the value for the variable
      Specified by:
      getVariable in interface SpecialVariableProcessor
      Parameters:
      varName - the variable name, must not be null
      context - the preprocessor context, it can be null
      Returns:
      the value, it must not return null because it will notified preprocessor that it supports the variable
    • setVariable

      public void setVariable(String varName, Value value, PreprocessorContext context)
      Description copied from interface: SpecialVariableProcessor
      Set a value to the variable
      Specified by:
      setVariable in interface SpecialVariableProcessor
      Parameters:
      varName - the variable name, must not be null
      value - the value to be set to the variable, must not be null
      context - the preprocessor context, it can be null