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 classInside class describes a "cfgfile" item, it has the only attribute "file", the attribute must be definedstatic classInside 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 booleanprivate booleanprivate booleanprivate booleanprivate final List<PreprocessTask.CfgFile> private booleanprivate Fileprivate booleanprivate Stringprivate Stringprivate final List<PreprocessTask.Global> private Stringprivate booleanprivate Stringprivate booleanprivate Stringprivate booleanprivate Fileprivate booleanprivate booleanFields inherited from class org.apache.tools.ant.Task
target, taskName, taskType, wrapperFields inherited from class org.apache.tools.ant.ProjectComponent
description, location, project -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidLog a debug messagevoidLog an error messagevoidexecute()private voidprivate voidfillCfgFiles(PreprocessorContext context) private voidfillGlobalVars(PreprocessorContext context) (package private) PreprocessorContextgetVariable(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 casevoidLog an information messagevoidsetAllowWhitespace(boolean flag) Set the "allowWhitespace", it allows to manage the mode to allow whitespace between the // and the #.voidsetCareForLastNextLine(boolean flag) Set the "careforlastnextline" attribute, it allows to make precise processing of last next line charvoidsetClear(boolean flag) Set the "clear" attribute, it is a boolean attribute allows to make the preprocessor to clear the destination directory before its workvoidsetCompareDestiation(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.voidsetCopyFileAttributes(boolean flag) Set the "copyfileattributes", it turns on mode to copy file attributes if file generated or copied.voidsetDestination(File dst) Set the "destination" attribute, it allows to define the destination directory where the preprocessed files will be placed invoidsetDisableOut(boolean flag) Set the "disableOut" attribute, it is a boolean attribute allows to disable any output operations into the destination directoryvoidsetExcluded(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)voidsetExcludedFolders(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 itemsvoidsetInCharset(String charSet) Set the "inCharset" attribute, it allows to define the text encoding for the reading text filesvoidsetKeepLines(boolean flag) Set the "keepLines" attribute, it is a boolean attribute to keep non-executing lines as commented ones in the outputvoidsetOutCharset(String charSet) Set the "outCharset" attribute, it allows to define the text encoding for the writing text filesvoidsetPreserveIndent(boolean flag) Set the "preserveident" attribute, to preserve spaces occupied by '//$' and '//$$' directives.voidsetProcessing(String ext) Set the "processing" attribute, it defines the file extensions to be processedvoidsetRemoveComments(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 filesvoidSet the "source" attribute, it allows to define the source directory to be preprocessedvoidsetUnknownVarAsFalse(boolean flag) Set the "unknownVarAsFalse" attribute, it allows to interpret unknown variables as FALSE.voidsetVariable(String varName, Value value, PreprocessorContext context) Set a value to the variablevoidsetVerbose(boolean flag) Set the "verbose" attribute, it is a boolean attribute allows to set the verbose level of preprocessor messagesvoidLog 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, setTaskTypeMethods 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:
executein classorg.apache.tools.ant.Task- Throws:
org.apache.tools.ant.BuildException
-
error
Description copied from interface:PreprocessorLoggerLog an error message- Specified by:
errorin interfacePreprocessorLogger- Parameters:
message- the text to be output into the error log
-
info
Description copied from interface:PreprocessorLoggerLog an information message- Specified by:
infoin interfacePreprocessorLogger- Parameters:
message- the text to be output into the information log
-
debug
Description copied from interface:PreprocessorLoggerLog a debug message- Specified by:
debugin interfacePreprocessorLogger- Parameters:
message- the text to be output into the information log
-
warning
Description copied from interface:PreprocessorLoggerLog a warning message- Specified by:
warningin interfacePreprocessorLogger- Parameters:
message- the text to be output into the warning log
-
fillAntVariables
private void fillAntVariables() -
getVariableNames
Description copied from interface:SpecialVariableProcessorGet all variable names allowed by the processor as an array, all names must be in lower case- Specified by:
getVariableNamesin interfaceSpecialVariableProcessor- Returns:
- allowed variable names as a String array
-
getVariable
Description copied from interface:SpecialVariableProcessorGet the value for the variable- Specified by:
getVariablein 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:SpecialVariableProcessorSet a value to the variable- Specified by:
setVariablein 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
-