Package com.igormaznitsa.jcp.ant
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)
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Inside class describes a "cfgfile" item, it has the only attribute "file", the attribute must be definedstatic 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
FieldsModifier and TypeFieldDescriptionprivate boolean
private boolean
private boolean
private boolean
private final List
<PreprocessTask.CfgFile> private boolean
private File
private boolean
private String
private String
private final List
<PreprocessTask.Global> private String
private boolean
private String
private boolean
private String
private boolean
private File
private boolean
private boolean
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 -
Method Summary
Modifier and TypeMethodDescriptionvoid
Log a debug messagevoid
Log an error messagevoid
execute()
private void
private void
fillCfgFiles
(PreprocessorContext context) private void
fillGlobalVars
(PreprocessorContext context) (package private) PreprocessorContext
getVariable
(String varName, PreprocessorContext context) Get the value for the variableString[]
Get all variable names allowed by the processor as an array, all names must be in lower casevoid
Log an information messagevoid
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 charvoid
setClear
(boolean flag) Set the "clear" attribute, it is a boolean attribute allows to make the preprocessor to clear the destination directory before its workvoid
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
setDestination
(File dst) Set the "destination" attribute, it allows to define the destination directory where the preprocessed files will be placed invoid
setDisableOut
(boolean flag) Set the "disableOut" attribute, it is a boolean attribute allows to disable any output operations into the destination directoryvoid
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)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 itemsvoid
setInCharset
(String charSet) Set the "inCharset" attribute, it allows to define the text encoding for the reading text filesvoid
setKeepLines
(boolean flag) Set the "keepLines" attribute, it is a boolean attribute to keep non-executing lines as commented ones in the outputvoid
setOutCharset
(String charSet) Set the "outCharset" attribute, it allows to define the text encoding for the writing text filesvoid
setPreserveIndent
(boolean flag) Set the "preserveident" attribute, to preserve spaces occupied by '//$' and '//$$' directives.void
setProcessing
(String ext) Set the "processing" attribute, it defines the file extensions to be processedvoid
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 filesvoid
Set the "source" attribute, it allows to define the source directory to be preprocessedvoid
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 variablevoid
setVerbose
(boolean flag) Set the "verbose" attribute, it is a boolean attribute allows to set the verbose level of preprocessor messagesvoid
Log a warning messageMethods 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
-
Field Details
-
sourceDirectory
-
destinationDirectory
-
inCharSet
-
outCharSet
-
excludedExtensions
-
processing
-
excludedFolders
-
disableOut
private boolean disableOut -
verbose
private boolean verbose -
clearDstFlag
private boolean clearDstFlag -
removeComments
private boolean removeComments -
keepLines
private boolean keepLines -
careForLastNextLine
private boolean careForLastNextLine -
compareDestination
private boolean compareDestination -
allowWhitespace
private boolean allowWhitespace -
preserveIndent
private boolean preserveIndent -
copyFileAttributes
private boolean copyFileAttributes -
unknownVarAsFalse
private boolean unknownVarAsFalse -
antVariables
-
globalVariables
-
configFiles
-
-
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
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
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
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
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
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
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
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
-
createCfgFile
-
fillCfgFiles
-
fillGlobalVars
-
generatePreprocessorContext
PreprocessorContext generatePreprocessorContext() -
execute
public void execute() throws org.apache.tools.ant.BuildException- Overrides:
execute
in classorg.apache.tools.ant.Task
- Throws:
org.apache.tools.ant.BuildException
-
error
Description copied from interface:PreprocessorLogger
Log an error message- Specified by:
error
in interfacePreprocessorLogger
- Parameters:
message
- the text to be output into the error log
-
info
Description copied from interface:PreprocessorLogger
Log an information message- Specified by:
info
in interfacePreprocessorLogger
- Parameters:
message
- the text to be output into the information log
-
debug
Description copied from interface:PreprocessorLogger
Log a debug message- Specified by:
debug
in interfacePreprocessorLogger
- Parameters:
message
- the text to be output into the information log
-
warning
Description copied from interface:PreprocessorLogger
Log a warning message- Specified by:
warning
in interfacePreprocessorLogger
- Parameters:
message
- the text to be output into the warning log
-
fillAntVariables
private void fillAntVariables() -
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 interfaceSpecialVariableProcessor
- Returns:
- allowed variable names as a String array
-
getVariable
Description copied from interface:SpecialVariableProcessor
Get the value for the variable- Specified by:
getVariable
in interfaceSpecialVariableProcessor
- Parameters:
varName
- the variable name, must not be nullcontext
- 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
Description copied from interface:SpecialVariableProcessor
Set a value to the variable- Specified by:
setVariable
in interfaceSpecialVariableProcessor
- Parameters:
varName
- the variable name, must not be nullvalue
- the value to be set to the variable, must not be nullcontext
- the preprocessor context, it can be null
-