Showing preview only (3,024K chars total). Download the full file or copy to clipboard to get everything.
Repository: raydac/java-comment-preprocessor
Branch: master
Commit: 74a11a047782
Files: 717
Total size: 2.6 MB
Directory structure:
gitextract_jyzsnnek/
├── .gitattributes
├── .github/
│ ├── dependabot.yml
│ └── workflows/
│ └── run-maven-tests.yml
├── .gitignore
├── .projectKnowledge/
│ ├── JCPreprocessor.mmd
│ └── documap.mmd
├── LICENSE
├── README.md
├── changelog.txt
├── jcp/
│ ├── pom.xml
│ └── src/
│ ├── assemble/
│ │ └── bundle.xml
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── igormaznitsa/
│ │ │ └── jcp/
│ │ │ ├── InfoHelper.java
│ │ │ ├── JcpPreprocessor.java
│ │ │ ├── ant/
│ │ │ │ └── PreprocessTask.java
│ │ │ ├── cmdline/
│ │ │ │ ├── ActionPreprocessorExtensionHandler.java
│ │ │ │ ├── AllowMergeBlockLineHandler.java
│ │ │ │ ├── AllowWhitespaceDirectiveHandler.java
│ │ │ │ ├── CareForLastEolHandler.java
│ │ │ │ ├── ClearTargetHandler.java
│ │ │ │ ├── CommandLineHandler.java
│ │ │ │ ├── DestinationDirectoryHandler.java
│ │ │ │ ├── DontOverwriteSameContentHandler.java
│ │ │ │ ├── ExcludeFoldersHandler.java
│ │ │ │ ├── ExcludedFileExtensionsHandler.java
│ │ │ │ ├── FileExtensionsHandler.java
│ │ │ │ ├── GlobalVariableDefiningFileHandler.java
│ │ │ │ ├── GlobalVariableHandler.java
│ │ │ │ ├── HelpHandler.java
│ │ │ │ ├── InCharsetHandler.java
│ │ │ │ ├── KeepAttributesHandler.java
│ │ │ │ ├── KeepCommentsHandler.java
│ │ │ │ ├── KeepLineHandler.java
│ │ │ │ ├── OutCharsetHandler.java
│ │ │ │ ├── PreserveIndentDirectiveHandler.java
│ │ │ │ ├── RemoveCommentsHandler.java
│ │ │ │ ├── SourceDirectoryHandler.java
│ │ │ │ ├── UnknownAsFalseHandler.java
│ │ │ │ └── VerboseHandler.java
│ │ │ ├── containers/
│ │ │ │ ├── FileInfoContainer.java
│ │ │ │ ├── PreprocessingFlag.java
│ │ │ │ └── TextFileDataContainer.java
│ │ │ ├── context/
│ │ │ │ ├── CommentRemoverType.java
│ │ │ │ ├── CommentTextProcessor.java
│ │ │ │ ├── EnvironmentVariableProcessor.java
│ │ │ │ ├── ExecutionAllowable.java
│ │ │ │ ├── JCPSpecialVariableProcessor.java
│ │ │ │ ├── PreprocessingState.java
│ │ │ │ ├── PreprocessorContext.java
│ │ │ │ ├── PreprocessorContextAware.java
│ │ │ │ └── SpecialVariableProcessor.java
│ │ │ ├── directives/
│ │ │ │ ├── AbortDirectiveHandler.java
│ │ │ │ ├── AbstractDirectiveHandler.java
│ │ │ │ ├── ActionDirectiveHandler.java
│ │ │ │ ├── AfterDirectiveProcessingBehaviour.java
│ │ │ │ ├── BreakDirectiveHandler.java
│ │ │ │ ├── CommentNextLineDirectiveHandler.java
│ │ │ │ ├── ContinueDirectiveHandler.java
│ │ │ │ ├── DefineDirectiveHandler.java
│ │ │ │ ├── DefinelDirectiveHandler.java
│ │ │ │ ├── DirectiveArgumentType.java
│ │ │ │ ├── EchoDirectiveHandler.java
│ │ │ │ ├── ElseDirectiveHandler.java
│ │ │ │ ├── EndDirectiveHandler.java
│ │ │ │ ├── EndIfDirectiveHandler.java
│ │ │ │ ├── ErrorDirectiveHandler.java
│ │ │ │ ├── ExcludeIfDirectiveHandler.java
│ │ │ │ ├── ExitDirectiveHandler.java
│ │ │ │ ├── ExitIfDirectiveHandler.java
│ │ │ │ ├── FlushDirectiveHandler.java
│ │ │ │ ├── GlobalDirectiveHandler.java
│ │ │ │ ├── GlobalElseDirectiveHandler.java
│ │ │ │ ├── GlobalEndIfDirectiveHandler.java
│ │ │ │ ├── GlobalIfDirectiveHandler.java
│ │ │ │ ├── IfDefDirectiveHandler.java
│ │ │ │ ├── IfDefinedDirectiveHandler.java
│ │ │ │ ├── IfDirectiveHandler.java
│ │ │ │ ├── IfNDefDirectiveHandler.java
│ │ │ │ ├── IncludeDirectiveHandler.java
│ │ │ │ ├── LocalDirectiveHandler.java
│ │ │ │ ├── MsgDirectiveHandler.java
│ │ │ │ ├── NoAutoFlushHandler.java
│ │ │ │ ├── OutDisabledDirectiveHandler.java
│ │ │ │ ├── OutEnabledDirectiveHandler.java
│ │ │ │ ├── OutNameDirectiveHandler.java
│ │ │ │ ├── OutdirDirectiveHandler.java
│ │ │ │ ├── PostfixDirectiveHandler.java
│ │ │ │ ├── PrefixDirectiveHandler.java
│ │ │ │ ├── UndefDirectiveHandler.java
│ │ │ │ ├── WarningDirectiveHandler.java
│ │ │ │ └── WhileDirectiveHandler.java
│ │ │ ├── exceptions/
│ │ │ │ ├── FilePositionInfo.java
│ │ │ │ └── PreprocessorException.java
│ │ │ ├── expression/
│ │ │ │ ├── Expression.java
│ │ │ │ ├── ExpressionItem.java
│ │ │ │ ├── ExpressionItemPriority.java
│ │ │ │ ├── ExpressionItemType.java
│ │ │ │ ├── ExpressionParser.java
│ │ │ │ ├── ExpressionTree.java
│ │ │ │ ├── ExpressionTreeElement.java
│ │ │ │ ├── Value.java
│ │ │ │ ├── ValueType.java
│ │ │ │ ├── Variable.java
│ │ │ │ ├── functions/
│ │ │ │ │ ├── AbstractFunction.java
│ │ │ │ │ ├── AbstractStrConverter.java
│ │ │ │ │ ├── FunctionABS.java
│ │ │ │ │ ├── FunctionBINFILE.java
│ │ │ │ │ ├── FunctionDefinedByUser.java
│ │ │ │ │ ├── FunctionESC.java
│ │ │ │ │ ├── FunctionEVALFILE.java
│ │ │ │ │ ├── FunctionIS.java
│ │ │ │ │ ├── FunctionISSUBSTR.java
│ │ │ │ │ ├── FunctionROUND.java
│ │ │ │ │ ├── FunctionSTR2CSV.java
│ │ │ │ │ ├── FunctionSTR2GO.java
│ │ │ │ │ ├── FunctionSTR2INT.java
│ │ │ │ │ ├── FunctionSTR2JAVA.java
│ │ │ │ │ ├── FunctionSTR2JS.java
│ │ │ │ │ ├── FunctionSTR2JSON.java
│ │ │ │ │ ├── FunctionSTR2WEB.java
│ │ │ │ │ ├── FunctionSTR2XML.java
│ │ │ │ │ ├── FunctionSTRLEN.java
│ │ │ │ │ ├── FunctionTRIMLINES.java
│ │ │ │ │ └── xml/
│ │ │ │ │ ├── AbstractXMLFunction.java
│ │ │ │ │ ├── FunctionXML_ATTR.java
│ │ │ │ │ ├── FunctionXML_GET.java
│ │ │ │ │ ├── FunctionXML_LIST.java
│ │ │ │ │ ├── FunctionXML_NAME.java
│ │ │ │ │ ├── FunctionXML_OPEN.java
│ │ │ │ │ ├── FunctionXML_ROOT.java
│ │ │ │ │ ├── FunctionXML_SIZE.java
│ │ │ │ │ ├── FunctionXML_TEXT.java
│ │ │ │ │ ├── FunctionXML_XELEMENT.java
│ │ │ │ │ ├── FunctionXML_XLIST.java
│ │ │ │ │ └── NodeContainer.java
│ │ │ │ └── operators/
│ │ │ │ ├── AbstractOperator.java
│ │ │ │ ├── OperatorADD.java
│ │ │ │ ├── OperatorAND.java
│ │ │ │ ├── OperatorDIV.java
│ │ │ │ ├── OperatorEQU.java
│ │ │ │ ├── OperatorGREAT.java
│ │ │ │ ├── OperatorGREATEQU.java
│ │ │ │ ├── OperatorLESS.java
│ │ │ │ ├── OperatorLESSEQU.java
│ │ │ │ ├── OperatorMOD.java
│ │ │ │ ├── OperatorMUL.java
│ │ │ │ ├── OperatorNOT.java
│ │ │ │ ├── OperatorNOTEQU.java
│ │ │ │ ├── OperatorOR.java
│ │ │ │ ├── OperatorSUB.java
│ │ │ │ └── OperatorXOR.java
│ │ │ ├── extension/
│ │ │ │ ├── LogPreprocessorExtension.java
│ │ │ │ └── PreprocessorExtension.java
│ │ │ ├── gradle/
│ │ │ │ ├── JcpGradlePlugin.java
│ │ │ │ └── JcpTask.java
│ │ │ ├── logger/
│ │ │ │ ├── PreprocessorLogger.java
│ │ │ │ └── SystemOutLogger.java
│ │ │ ├── maven/
│ │ │ │ ├── MavenPropertiesImporter.java
│ │ │ │ └── PreprocessMojo.java
│ │ │ ├── removers/
│ │ │ │ ├── AbstractCommentRemover.java
│ │ │ │ ├── CStyleCommentRemover.java
│ │ │ │ ├── JcpCommentLineRemover.java
│ │ │ │ └── JustCopyRemover.java
│ │ │ └── utils/
│ │ │ ├── AntPathMatcher.java
│ │ │ ├── ArrayUtils.java
│ │ │ ├── GetUtils.java
│ │ │ ├── IOUtils.java
│ │ │ ├── PreprocessorUtils.java
│ │ │ └── ResettablePrinter.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ └── gradle-plugins/
│ │ │ └── com.igormaznitsa.jcp.properties
│ │ ├── com/
│ │ │ └── igormaznitsa/
│ │ │ └── jcp/
│ │ │ └── ant/
│ │ │ ├── antlib.xml
│ │ │ └── tasks.properties
│ │ └── jcpversion.properties
│ ├── site/
│ │ ├── markdown/
│ │ │ ├── examples/
│ │ │ │ └── hello-world.md
│ │ │ ├── index.md
│ │ │ └── usage.md
│ │ └── site.xml
│ └── test/
│ ├── java/
│ │ └── com/
│ │ └── igormaznitsa/
│ │ └── jcp/
│ │ ├── AbstractMockPreprocessorContextTest.java
│ │ ├── AbstractSpyPreprocessorContextTest.java
│ │ ├── JCPreprocessorTest.java
│ │ ├── TestUtils.java
│ │ ├── ant/
│ │ │ └── PreprocessTaskTest.java
│ │ ├── cmdline/
│ │ │ ├── AbstractCommandLineHandlerTest.java
│ │ │ ├── ActionPreprocessorExtensionHandlerTest.java
│ │ │ ├── AllowMergeBlockLineHandlerTest.java
│ │ │ ├── AllowWhitespaceDirectiveHandlerTest.java
│ │ │ ├── CareForLastEolHandlerTest.java
│ │ │ ├── ClearTargetFolderHandlerTest.java
│ │ │ ├── CommentRemoverTypeHandlerTest.java
│ │ │ ├── DestinationDirectoryHandlerTest.java
│ │ │ ├── DontOverwriteSameContentHandlerTest.java
│ │ │ ├── ExcludeFoldersHandlerTest.java
│ │ │ ├── ExcludedFileExtensionsHandlerTest.java
│ │ │ ├── FileExtensionsHandlerTest.java
│ │ │ ├── GlobalVariableDefiningFileHandlerTest.java
│ │ │ ├── GlobalVariableHandlerTest.java
│ │ │ ├── HelpHandlerTest.java
│ │ │ ├── InCharsetHandlerTest.java
│ │ │ ├── KeepLineHandlerTest.java
│ │ │ ├── OutCharsetHandlerTest.java
│ │ │ ├── PreserveIndentDirectiveHandlerTest.java
│ │ │ ├── RemoveCommentsHandlerTest.java
│ │ │ ├── SourceDirectoryHandlerTest.java
│ │ │ ├── UnknownAsFalseHandlerTest.java
│ │ │ └── VerboseHandlerTest.java
│ │ ├── context/
│ │ │ ├── EnvironmentVariableProcessorTest.java
│ │ │ ├── JCPSpecialVariableProcessorTest.java
│ │ │ ├── PreprocessorContextTest.java
│ │ │ └── ProcessContentWithSpacesAndWithoutTest.java
│ │ ├── directives/
│ │ │ ├── AbortDirectiveHandlerTest.java
│ │ │ ├── AbstractDirectiveHandlerAcceptanceTest.java
│ │ │ ├── AbstractDirectiveHandlerTest.java
│ │ │ ├── ActionDirectiveHandlerTest.java
│ │ │ ├── CommentNextLineDirectiveHandlerTest.java
│ │ │ ├── DefineDirectiveHandlerTest.java
│ │ │ ├── DefinelDirectiveHandlerTest.java
│ │ │ ├── EchoDirectiveHandlerTest.java
│ │ │ ├── ErrorDirectiveHandlerTest.java
│ │ │ ├── ExcludeIfDirectiveHandlerTest.java
│ │ │ ├── ExitDirectiveHandlerTest.java
│ │ │ ├── ExitIfDirectiveHandlerTest.java
│ │ │ ├── FlushDirectiveHandlerTest.java
│ │ │ ├── GlobalDirectiveHandlerTest.java
│ │ │ ├── GlobalIfElseEndifTest.java
│ │ │ ├── IfDefDirectiveHandlerTest.java
│ │ │ ├── IfDefinedDirectiveHandlerTest.java
│ │ │ ├── IfElseEndifDirectiveHandlerTest.java
│ │ │ ├── IfElseEndifDirectiveWithKeepLinesHandlerTest.java
│ │ │ ├── IfNDefDirectiveHandlerTest.java
│ │ │ ├── IncludeDirectiveHandlerTest.java
│ │ │ ├── LinesNotMatchException.java
│ │ │ ├── LocalDirectiveHandlerTest.java
│ │ │ ├── MsgDirectiveHandlerTest.java
│ │ │ ├── NoAutoFlushDirectiveHandlerTest.java
│ │ │ ├── OnlySpacesTest.java
│ │ │ ├── OutDisabledDirectiveHandlerTest.java
│ │ │ ├── OutEnabledDirectiveHandlerTest.java
│ │ │ ├── OutNameDirectiveHandlerTest.java
│ │ │ ├── OutdirDirectiveHandlerTest.java
│ │ │ ├── PrefixPostfixDirectiveHandlerTest.java
│ │ │ ├── SpecVarsROTest.java
│ │ │ ├── SpecialDirectivesBlockTest.java
│ │ │ ├── SpecialDirectivesTest.java
│ │ │ ├── UndefDirectiveHandlerTest.java
│ │ │ ├── VariablePair.java
│ │ │ ├── WarningDirectiveHandlerTest.java
│ │ │ └── WhileContinueBreakEndDirectiveHandlerTest.java
│ │ ├── exceptions/
│ │ │ └── PreprocessorExceptionTest.java
│ │ ├── expression/
│ │ │ ├── ExpressionParserTest.java
│ │ │ ├── ExpressionTest.java
│ │ │ ├── ExpressionTreeTest.java
│ │ │ ├── functions/
│ │ │ │ ├── AbstractFunctionTest.java
│ │ │ │ ├── FunctionABSTest.java
│ │ │ │ ├── FunctionBINFILETest.java
│ │ │ │ ├── FunctionDefinedByUserTest.java
│ │ │ │ ├── FunctionESCTest.java
│ │ │ │ ├── FunctionEVALFILETest.java
│ │ │ │ ├── FunctionISSUBSTRTest.java
│ │ │ │ ├── FunctionISTest.java
│ │ │ │ ├── FunctionROUNDTest.java
│ │ │ │ ├── FunctionSTR2CSVTest.java
│ │ │ │ ├── FunctionSTR2GOTest.java
│ │ │ │ ├── FunctionSTR2INTTest.java
│ │ │ │ ├── FunctionSTR2JAVATest.java
│ │ │ │ ├── FunctionSTR2JSONTest.java
│ │ │ │ ├── FunctionSTR2JSTest.java
│ │ │ │ ├── FunctionSTR2WEBTest.java
│ │ │ │ ├── FunctionSTR2XMLTest.java
│ │ │ │ ├── FunctionSTRLENTest.java
│ │ │ │ ├── FunctionTRIMLINESTest.java
│ │ │ │ └── xml/
│ │ │ │ ├── AbstractFunctionXMLTest.java
│ │ │ │ ├── FunctionXML_ATTRTest.java
│ │ │ │ ├── FunctionXML_GETTest.java
│ │ │ │ ├── FunctionXML_LISTTest.java
│ │ │ │ ├── FunctionXML_NAMETest.java
│ │ │ │ ├── FunctionXML_OPENTest.java
│ │ │ │ ├── FunctionXML_ROOTTest.java
│ │ │ │ ├── FunctionXML_SIZETest.java
│ │ │ │ ├── FunctionXML_TEXTTest.java
│ │ │ │ ├── FunctionXML_XELEMENTTest.java
│ │ │ │ └── FunctionXML_XLISTTest.java
│ │ │ └── operators/
│ │ │ ├── AbstractOperatorTest.java
│ │ │ ├── OperatorADDTest.java
│ │ │ ├── OperatorANDTest.java
│ │ │ ├── OperatorDIVTest.java
│ │ │ ├── OperatorEQUTest.java
│ │ │ ├── OperatorGREATEQUTest.java
│ │ │ ├── OperatorGREATTest.java
│ │ │ ├── OperatorLESSEQUTest.java
│ │ │ ├── OperatorLESSTest.java
│ │ │ ├── OperatorMODTest.java
│ │ │ ├── OperatorMULTest.java
│ │ │ ├── OperatorNOTEQUTest.java
│ │ │ ├── OperatorNOTTest.java
│ │ │ ├── OperatorORTest.java
│ │ │ ├── OperatorSUBTest.java
│ │ │ └── OperatorXORTest.java
│ │ ├── maven/
│ │ │ ├── MavenPropertiesImporterTest.java
│ │ │ └── PreprocessMojoTest.java
│ │ ├── removers/
│ │ │ ├── AbstractCommentRemoverTest.java
│ │ │ ├── CStyleCommentsRemoverTest.java
│ │ │ ├── JcpCommentLineRemoverTest.java
│ │ │ └── JustCopyCommentsRemoverTest.java
│ │ ├── usecases/
│ │ │ ├── AbortTest.java
│ │ │ ├── AbstractUseCaseTest.java
│ │ │ ├── BinFileTest.java
│ │ │ ├── DefUndefTest.java
│ │ │ ├── EvalFileTest.java
│ │ │ ├── ExternalGlobalDefFileTest.java
│ │ │ ├── GenerationTest.java
│ │ │ ├── IncludeAndExitTest.java
│ │ │ ├── InsidePreprocessingTest.java
│ │ │ ├── PrefixPostfixTest.java
│ │ │ ├── PreserveIndentOffTest.java
│ │ │ ├── PreserveIndentOnTest.java
│ │ │ ├── SimpleTest.java
│ │ │ ├── SpacesBeforeDirectivesNotAllowedTest.java
│ │ │ ├── SpacesBeforeDirectivesTest.java
│ │ │ ├── StaticSiteTest.java
│ │ │ ├── Str2JavaTest.java
│ │ │ ├── StringDirectiveTest.java
│ │ │ ├── TextBufferVariablesTest.java
│ │ │ ├── UnknownVarAsFalseTest.java
│ │ │ ├── UsePrefixAsMultilineTest.java
│ │ │ └── UserFunctionTest.java
│ │ └── utils/
│ │ ├── PreprocessorUtilsTest.java
│ │ └── antpathmatcher/
│ │ └── AntPathMatcherTest.java
│ └── resources/
│ └── com/
│ └── igormaznitsa/
│ └── jcp/
│ ├── cmdline/
│ │ └── global_variable_def.txt
│ ├── context/
│ │ ├── spacedFile.txt
│ │ └── standardFile.txt
│ ├── directives/
│ │ ├── directive_abort.txt
│ │ ├── directive_action.txt
│ │ ├── directive_comment_next_line.txt
│ │ ├── directive_define.txt
│ │ ├── directive_definel.txt
│ │ ├── directive_echo.txt
│ │ ├── directive_error.txt
│ │ ├── directive_excludeif.txt
│ │ ├── directive_exit.txt
│ │ ├── directive_exitif.txt
│ │ ├── directive_global.txt
│ │ ├── directive_globalifelseendif.txt
│ │ ├── directive_globalifelseendif2.txt
│ │ ├── directive_if_else_endif.txt
│ │ ├── directive_if_else_endif_with_keptlines.txt
│ │ ├── directive_ifdef.txt
│ │ ├── directive_ifdefined.txt
│ │ ├── directive_ifndef.txt
│ │ ├── directive_include.txt
│ │ ├── directive_include2.txt
│ │ ├── directive_include3.txt
│ │ ├── directive_local.txt
│ │ ├── directive_msg.txt
│ │ ├── directive_outdir.txt
│ │ ├── directive_outdisabled.txt
│ │ ├── directive_outenabled.txt
│ │ ├── directive_outname.txt
│ │ ├── directive_prefixpostfix.txt
│ │ ├── directive_special.txt
│ │ ├── directive_special_block.txt
│ │ ├── directive_undef.txt
│ │ ├── directive_warning.txt
│ │ ├── directive_while_continue_break_end.txt
│ │ ├── only_spaces.txt
│ │ └── specvars_ro.txt
│ ├── exceptions/
│ │ ├── wrong_bracket.txt
│ │ ├── wrong_bracket_closing.txt
│ │ └── wrong_bracket_include.txt
│ ├── expression/
│ │ └── functions/
│ │ ├── eval/
│ │ │ ├── TestBin.txt
│ │ │ ├── TestBinLong.txt
│ │ │ ├── TestEval.java
│ │ │ └── TestEvalWithIncluded.java
│ │ └── xml/
│ │ ├── noxml.txt
│ │ └── test.xml
│ ├── global_error_at.txt
│ ├── global_ok.txt
│ ├── maven/
│ │ └── test.pom.xml
│ ├── removers/
│ │ └── java/
│ │ ├── etalon.etl
│ │ └── test_java.ppp
│ ├── usecases/
│ │ ├── AbortTest/
│ │ │ ├── etl/
│ │ │ │ └── text.txt
│ │ │ └── src/
│ │ │ ├── text.txt
│ │ │ ├── text1.txt
│ │ │ ├── text2.txt
│ │ │ └── text3.txt
│ │ ├── BinFileTest/
│ │ │ ├── etl/
│ │ │ │ └── body.txt
│ │ │ └── src/
│ │ │ └── body.txt
│ │ ├── DefUndefTest/
│ │ │ ├── etl/
│ │ │ │ └── text.txt
│ │ │ └── src/
│ │ │ └── text.txt
│ │ ├── EvalFileTest/
│ │ │ ├── etl/
│ │ │ │ └── newfolder/
│ │ │ │ ├── file1.txt
│ │ │ │ └── file2.txt
│ │ │ └── src/
│ │ │ ├── _file1.txt
│ │ │ ├── _file2.txt
│ │ │ └── text.txt
│ │ ├── ExternalGlobalDefFileTest/
│ │ │ ├── etl/
│ │ │ │ └── test.txt
│ │ │ ├── list.cfg
│ │ │ └── src/
│ │ │ └── test.txt
│ │ ├── GenerationTest/
│ │ │ ├── etl/
│ │ │ │ ├── file1.ttt
│ │ │ │ ├── file2.ttt
│ │ │ │ └── file3.ttt
│ │ │ └── src/
│ │ │ └── text.txt
│ │ ├── IncludeAndExitTest/
│ │ │ ├── etl/
│ │ │ │ └── text.txt
│ │ │ └── src/
│ │ │ ├── text.txt
│ │ │ ├── text1.txt
│ │ │ └── text2.txt
│ │ ├── InsidePreprocessingTest/
│ │ │ ├── etl/
│ │ │ │ └── text.txt
│ │ │ └── src/
│ │ │ ├── some.txt
│ │ │ └── text.txt
│ │ ├── PrefixPostfixTest/
│ │ │ ├── etl/
│ │ │ │ └── text.txt
│ │ │ └── src/
│ │ │ └── text.txt
│ │ ├── PreserveIndentOffTest/
│ │ │ ├── etl/
│ │ │ │ └── text.txt
│ │ │ └── src/
│ │ │ └── text.txt
│ │ ├── PreserveIndentOnTest/
│ │ │ ├── etl/
│ │ │ │ └── text.txt
│ │ │ └── src/
│ │ │ └── text.txt
│ │ ├── SimpleTest/
│ │ │ ├── etl/
│ │ │ │ └── text.txt
│ │ │ └── src/
│ │ │ └── text.txt
│ │ ├── SpacesBeforeDirectivesNotAllowedTest/
│ │ │ ├── etl/
│ │ │ │ └── body.txt
│ │ │ └── src/
│ │ │ └── body.txt
│ │ ├── SpacesBeforeDirectivesTest/
│ │ │ ├── etl/
│ │ │ │ └── body.txt
│ │ │ └── src/
│ │ │ └── body.txt
│ │ ├── StaticSiteTest/
│ │ │ ├── etl/
│ │ │ │ ├── cmn/
│ │ │ │ │ ├── sendfeedback.phtml
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── styles2.css
│ │ │ │ ├── eng/
│ │ │ │ │ ├── end.txt
│ │ │ │ │ ├── gpage_airaggression.htm
│ │ │ │ │ ├── gpage_airboil.htm
│ │ │ │ │ ├── gpage_aneks_ny2006.htm
│ │ │ │ │ ├── gpage_blazinggears.htm
│ │ │ │ │ ├── gpage_caspianmonster.htm
│ │ │ │ │ ├── gpage_castleassault.htm
│ │ │ │ │ ├── gpage_cockroach.htm
│ │ │ │ │ ├── gpage_coconutsfall.htm
│ │ │ │ │ ├── gpage_conecone.htm
│ │ │ │ │ ├── gpage_copterbomber.htm
│ │ │ │ │ ├── gpage_drunkman.htm
│ │ │ │ │ ├── gpage_firingline.htm
│ │ │ │ │ ├── gpage_fisher.htm
│ │ │ │ │ ├── gpage_fruitmania.htm
│ │ │ │ │ ├── gpage_hardday.htm
│ │ │ │ │ ├── gpage_hunt.htm
│ │ │ │ │ ├── gpage_icegifts.htm
│ │ │ │ │ ├── gpage_ironstream.htm
│ │ │ │ │ ├── gpage_kalah.htm
│ │ │ │ │ ├── gpage_kickkick.htm
│ │ │ │ │ ├── gpage_lifesaver.htm
│ │ │ │ │ ├── gpage_livebridge.htm
│ │ │ │ │ ├── gpage_mobilechase.htm
│ │ │ │ │ ├── gpage_mobilesheriff.htm
│ │ │ │ │ ├── gpage_mtvpaparazzo.htm
│ │ │ │ │ ├── gpage_mtvpillow.htm
│ │ │ │ │ ├── gpage_mtvpuzzle.htm
│ │ │ │ │ ├── gpage_mtvstage.htm
│ │ │ │ │ ├── gpage_nimble.htm
│ │ │ │ │ ├── gpage_opthunderclap.htm
│ │ │ │ │ ├── gpage_oysterbank.htm
│ │ │ │ │ ├── gpage_papaninsquest.htm
│ │ │ │ │ ├── gpage_ravenscheese.htm
│ │ │ │ │ ├── gpage_searoad.htm
│ │ │ │ │ ├── gpage_searovers.htm
│ │ │ │ │ ├── gpage_slider_alpop.htm
│ │ │ │ │ ├── gpage_smashingkick.htm
│ │ │ │ │ ├── gpage_smscat.htm
│ │ │ │ │ ├── gpage_spiders.htm
│ │ │ │ │ ├── gpage_starharbor.htm
│ │ │ │ │ ├── gpage_strangehunt.htm
│ │ │ │ │ ├── gpage_tastydish.htm
│ │ │ │ │ ├── gpage_vineyard.htm
│ │ │ │ │ ├── gpage_waterway.htm
│ │ │ │ │ ├── gpage_wildballs.htm
│ │ │ │ │ ├── gpage_wildroad.htm
│ │ │ │ │ ├── menu1_about.htm
│ │ │ │ │ ├── menu1_contacts.htm
│ │ │ │ │ ├── menu1_job.htm
│ │ │ │ │ ├── menu1_news.htm
│ │ │ │ │ ├── menu1_partnership.htm
│ │ │ │ │ ├── menu2_all.htm
│ │ │ │ │ ├── menu2_arcade.htm
│ │ │ │ │ ├── menu2_clientserver.htm
│ │ │ │ │ ├── menu2_erotic.htm
│ │ │ │ │ ├── menu2_fighting.htm
│ │ │ │ │ ├── menu2_gambling.htm
│ │ │ │ │ ├── menu2_logic.htm
│ │ │ │ │ ├── menu2_multiplayer.htm
│ │ │ │ │ ├── menu2_quest.htm
│ │ │ │ │ ├── menu2_racing.htm
│ │ │ │ │ ├── menu2_shooter.htm
│ │ │ │ │ ├── menu2_sport.htm
│ │ │ │ │ ├── menu3_appsall.htm
│ │ │ │ │ ├── send_error.html
│ │ │ │ │ └── send_ok.html
│ │ │ │ ├── games/
│ │ │ │ │ └── games2003_2006.html
│ │ │ │ ├── index.htm
│ │ │ │ ├── loadpages/
│ │ │ │ │ ├── muzon_AirBoil.htm
│ │ │ │ │ └── muzon_StarHarbor.htm
│ │ │ │ ├── rus/
│ │ │ │ │ ├── gpage_airaggression.htm
│ │ │ │ │ ├── gpage_airboil.htm
│ │ │ │ │ ├── gpage_aneks_ny2006.htm
│ │ │ │ │ ├── gpage_blazinggears.htm
│ │ │ │ │ ├── gpage_caspianmonster.htm
│ │ │ │ │ ├── gpage_castleassault.htm
│ │ │ │ │ ├── gpage_cockroach.htm
│ │ │ │ │ ├── gpage_coconutsfall.htm
│ │ │ │ │ ├── gpage_conecone.htm
│ │ │ │ │ ├── gpage_copterbomber.htm
│ │ │ │ │ ├── gpage_drunkman.htm
│ │ │ │ │ ├── gpage_firingline.htm
│ │ │ │ │ ├── gpage_fisher.htm
│ │ │ │ │ ├── gpage_fruitmania.htm
│ │ │ │ │ ├── gpage_hardday.htm
│ │ │ │ │ ├── gpage_hunt.htm
│ │ │ │ │ ├── gpage_icegifts.htm
│ │ │ │ │ ├── gpage_ironstream.htm
│ │ │ │ │ ├── gpage_kalah.htm
│ │ │ │ │ ├── gpage_kickkick.htm
│ │ │ │ │ ├── gpage_lifesaver.htm
│ │ │ │ │ ├── gpage_livebridge.htm
│ │ │ │ │ ├── gpage_mobilechase.htm
│ │ │ │ │ ├── gpage_mobilesheriff.htm
│ │ │ │ │ ├── gpage_mtvpaparazzo.htm
│ │ │ │ │ ├── gpage_mtvpillow.htm
│ │ │ │ │ ├── gpage_mtvpuzzle.htm
│ │ │ │ │ ├── gpage_mtvstage.htm
│ │ │ │ │ ├── gpage_nimble.htm
│ │ │ │ │ ├── gpage_opthunderclap.htm
│ │ │ │ │ ├── gpage_oysterbank.htm
│ │ │ │ │ ├── gpage_papaninsquest.htm
│ │ │ │ │ ├── gpage_ravenscheese.htm
│ │ │ │ │ ├── gpage_searoad.htm
│ │ │ │ │ ├── gpage_searovers.htm
│ │ │ │ │ ├── gpage_slider_alpop.htm
│ │ │ │ │ ├── gpage_smashingkick.htm
│ │ │ │ │ ├── gpage_smscat.htm
│ │ │ │ │ ├── gpage_spiders.htm
│ │ │ │ │ ├── gpage_starharbor.htm
│ │ │ │ │ ├── gpage_strangehunt.htm
│ │ │ │ │ ├── gpage_tastydish.htm
│ │ │ │ │ ├── gpage_vineyard.htm
│ │ │ │ │ ├── gpage_waterway.htm
│ │ │ │ │ ├── gpage_wildballs.htm
│ │ │ │ │ ├── gpage_wildroad.htm
│ │ │ │ │ ├── menu1_about.htm
│ │ │ │ │ ├── menu1_contacts.htm
│ │ │ │ │ ├── menu1_job.htm
│ │ │ │ │ ├── menu1_news.htm
│ │ │ │ │ ├── menu1_partnership.htm
│ │ │ │ │ ├── menu2_all.htm
│ │ │ │ │ ├── menu2_arcade.htm
│ │ │ │ │ ├── menu2_clientserver.htm
│ │ │ │ │ ├── menu2_erotic.htm
│ │ │ │ │ ├── menu2_fighting.htm
│ │ │ │ │ ├── menu2_gambling.htm
│ │ │ │ │ ├── menu2_logic.htm
│ │ │ │ │ ├── menu2_multiplayer.htm
│ │ │ │ │ ├── menu2_quest.htm
│ │ │ │ │ ├── menu2_racing.htm
│ │ │ │ │ ├── menu2_shooter.htm
│ │ │ │ │ ├── menu2_sport.htm
│ │ │ │ │ ├── menu3_appsall.htm
│ │ │ │ │ ├── send_error.html
│ │ │ │ │ └── send_ok.html
│ │ │ │ └── wap/
│ │ │ │ ├── index.wml
│ │ │ │ └── logo.wbmp
│ │ │ └── src/
│ │ │ ├── about.htm
│ │ │ ├── channels.xml
│ │ │ ├── cmn/
│ │ │ │ ├── sendfeedback.phtml
│ │ │ │ ├── styles.css
│ │ │ │ └── styles2.css
│ │ │ ├── contacts.htm
│ │ │ ├── devices.xml
│ │ │ ├── eng/
│ │ │ │ ├── send_error.html
│ │ │ │ └── send_ok.html
│ │ │ ├── gamelist.htm
│ │ │ ├── gameref.htm
│ │ │ ├── games/
│ │ │ │ └── games2003_2006.html
│ │ │ ├── games.htm
│ │ │ ├── games.xml
│ │ │ ├── hotnews.htm
│ │ │ ├── hotnews.xml
│ │ │ ├── index.htm
│ │ │ ├── job.htm
│ │ │ ├── loadpages/
│ │ │ │ ├── muzon_AirBoil.htm
│ │ │ │ └── muzon_StarHarbor.htm
│ │ │ ├── main.htm
│ │ │ ├── news.htm
│ │ │ ├── news.xml
│ │ │ ├── partnership.htm
│ │ │ ├── rus/
│ │ │ │ ├── send_error.html
│ │ │ │ └── send_ok.html
│ │ │ ├── site.xml
│ │ │ └── wap/
│ │ │ ├── index.wml
│ │ │ └── logo.wbmp
│ │ ├── Str2JavaTest/
│ │ │ ├── etl/
│ │ │ │ └── text.txt
│ │ │ └── src/
│ │ │ ├── body.txt
│ │ │ ├── str.txt
│ │ │ └── text.txt
│ │ ├── StringDirectiveTest/
│ │ │ ├── etl/
│ │ │ │ └── text.txt
│ │ │ └── src/
│ │ │ └── text.txt
│ │ ├── TextBufferVariablesTest/
│ │ │ ├── etl/
│ │ │ │ └── text.txt
│ │ │ └── src/
│ │ │ └── text.txt
│ │ ├── UnknownVarAsFalseTest/
│ │ │ ├── etl/
│ │ │ │ └── body.txt
│ │ │ └── src/
│ │ │ └── body.txt
│ │ ├── UsePrefixAsMultilineTest/
│ │ │ ├── etl/
│ │ │ │ └── text.txt
│ │ │ └── src/
│ │ │ └── text.txt
│ │ └── UserFunctionTest/
│ │ ├── etl/
│ │ │ └── text.txt
│ │ └── src/
│ │ └── text.txt
│ └── utils/
│ └── somefile.txt
├── jcp-tests/
│ ├── extlibs/
│ │ └── gradle-tooling-api-5.1.jar
│ ├── jcp-test-android/
│ │ ├── app/
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src/
│ │ │ ├── androidTest/
│ │ │ │ └── java/
│ │ │ │ └── android/
│ │ │ │ └── it/
│ │ │ │ └── igormaznitsa/
│ │ │ │ └── com/
│ │ │ │ └── jcpandroid/
│ │ │ │ └── ExampleInstrumentedTest.java
│ │ │ ├── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── android/
│ │ │ │ │ └── it/
│ │ │ │ │ └── igormaznitsa/
│ │ │ │ │ └── com/
│ │ │ │ │ └── jcpandroid/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── utils/
│ │ │ │ │ └── Utils.java
│ │ │ │ └── res/
│ │ │ │ ├── drawable/
│ │ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── drawable-v24/
│ │ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── layout/
│ │ │ │ │ ├── activity_main.xml
│ │ │ │ │ └── content_main.xml
│ │ │ │ ├── menu/
│ │ │ │ │ └── menu_main.xml
│ │ │ │ ├── mipmap-anydpi-v26/
│ │ │ │ │ ├── ic_launcher.xml
│ │ │ │ │ └── ic_launcher_round.xml
│ │ │ │ └── values/
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── android/
│ │ │ └── it/
│ │ │ └── igormaznitsa/
│ │ │ └── com/
│ │ │ └── jcpandroid/
│ │ │ ├── ExampleUnitTest.java
│ │ │ └── utils/
│ │ │ └── UtilsTest.java
│ │ ├── build.gradle
│ │ ├── gradle.properties
│ │ ├── local.properties
│ │ ├── pom.xml
│ │ └── settings.gradle
│ ├── jcp-test-ant/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── test/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── igormaznitsa/
│ │ │ └── jcp/
│ │ │ └── it/
│ │ │ └── ant/
│ │ │ └── TestAntTaskResult.java
│ │ └── resources/
│ │ ├── build.xml
│ │ ├── config.cfg
│ │ └── src/
│ │ └── com/
│ │ └── igormaznitsa/
│ │ └── dummyproject/
│ │ └── main.java
│ ├── jcp-test-gradle-6/
│ │ ├── build.gradle
│ │ ├── configFile.txt
│ │ ├── pom.xml
│ │ ├── settings.gradle
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── igormaznitsa/
│ │ │ └── jcp/
│ │ │ └── it/
│ │ │ └── gradle/
│ │ │ ├── Main.java
│ │ │ └── Some.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── igormaznitsa/
│ │ └── jcp/
│ │ └── it/
│ │ └── gradle/
│ │ └── TestMain.java
│ ├── jcp-test-gradle-7/
│ │ ├── build.gradle
│ │ ├── configFile.txt
│ │ ├── pom.xml
│ │ ├── settings.gradle
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── igormaznitsa/
│ │ │ └── jcp/
│ │ │ └── it/
│ │ │ └── gradle/
│ │ │ ├── Main.java
│ │ │ └── Some.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── igormaznitsa/
│ │ └── jcp/
│ │ └── it/
│ │ └── gradle/
│ │ └── TestMain.java
│ ├── jcp-test-gradle-8/
│ │ ├── build.gradle
│ │ ├── configFile.txt
│ │ ├── pom.xml
│ │ ├── settings.gradle
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── igormaznitsa/
│ │ │ └── jcp/
│ │ │ └── it/
│ │ │ └── gradle/
│ │ │ ├── Main.java
│ │ │ └── Some.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── igormaznitsa/
│ │ └── jcp/
│ │ └── it/
│ │ └── gradle/
│ │ └── TestMain.java
│ ├── jcp-test-gradle-9/
│ │ ├── build.gradle
│ │ ├── configFile.txt
│ │ ├── pom.xml
│ │ ├── settings.gradle
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── igormaznitsa/
│ │ │ └── jcp/
│ │ │ └── it/
│ │ │ └── gradle/
│ │ │ ├── Main.java
│ │ │ └── Some.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── igormaznitsa/
│ │ └── jcp/
│ │ └── it/
│ │ └── gradle/
│ │ └── TestMain.java
│ ├── jcp-test-javassist/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── igormaznitsa/
│ │ │ └── jcp/
│ │ │ └── it/
│ │ │ └── test/
│ │ │ ├── JavassistMain.java
│ │ │ ├── Javassistable.java
│ │ │ └── Main.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── igormaznitsa/
│ │ └── jcp/
│ │ └── it/
│ │ └── test/
│ │ └── JavassistableTest.java
│ ├── jcp-test-jep238/
│ │ ├── pom.jdk9.xml
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── assembly/
│ │ │ └── assembly.xml
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── igormaznitsa/
│ │ │ └── tests/
│ │ │ ├── JDK9APIClass.java
│ │ │ ├── Main.java
│ │ │ └── OldJavaClass.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── igormaznitsa/
│ │ └── tests/
│ │ ├── JDK9APIClassTest.java
│ │ └── OldJavaClassTest.java
│ ├── jcp-test-maven/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── igormaznitsa/
│ │ │ └── jcp/
│ │ │ └── it/
│ │ │ └── maven/
│ │ │ └── Main.java
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── igormaznitsa/
│ │ └── jcp/
│ │ └── it/
│ │ └── maven/
│ │ └── TestMain.java
│ ├── jcp-test-maven-action/
│ │ ├── jcp-test-maven-action-action/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── igormaznitsa/
│ │ │ └── jcp/
│ │ │ └── it/
│ │ │ └── CustomPreprocessorExtension.java
│ │ ├── jcp-test-maven-action-plugin-call/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ ├── main/
│ │ │ │ └── java/
│ │ │ │ └── com/
│ │ │ │ └── igormaznitsa/
│ │ │ │ └── jcp/
│ │ │ │ └── it/
│ │ │ │ └── Main.java
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── igormaznitsa/
│ │ │ └── jcp/
│ │ │ └── it/
│ │ │ └── MainTest.java
│ │ └── pom.xml
│ ├── jcp-test-static-site/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── resources/
│ │ │ ├── about.htm
│ │ │ ├── channels.xml
│ │ │ ├── cmn/
│ │ │ │ ├── sendfeedback.phtml
│ │ │ │ ├── styles.css
│ │ │ │ └── styles2.css
│ │ │ ├── contacts.htm
│ │ │ ├── devices.xml
│ │ │ ├── eng/
│ │ │ │ ├── send_error.html
│ │ │ │ └── send_ok.html
│ │ │ ├── gamelist.htm
│ │ │ ├── gameref.htm
│ │ │ ├── games/
│ │ │ │ └── games2003_2006.html
│ │ │ ├── games.htm
│ │ │ ├── games.xml
│ │ │ ├── hotnews.htm
│ │ │ ├── hotnews.xml
│ │ │ ├── index.htm
│ │ │ ├── job.htm
│ │ │ ├── loadpages/
│ │ │ │ ├── muzon_AirBoil.htm
│ │ │ │ └── muzon_StarHarbor.htm
│ │ │ ├── main.htm
│ │ │ ├── news.htm
│ │ │ ├── news.xml
│ │ │ ├── partnership.htm
│ │ │ ├── rus/
│ │ │ │ ├── send_error.html
│ │ │ │ └── send_ok.html
│ │ │ ├── site.xml
│ │ │ └── wap/
│ │ │ ├── index.wml
│ │ │ └── logo.wbmp
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── igormaznitsa/
│ │ └── jcp/
│ │ └── it/
│ │ └── test/
│ │ └── TestSite.java
│ └── pom.xml
└── pom.xml
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
* text=false
* -crlf
================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: "maven"
directory: "/"
schedule:
interval: "daily"
rebase-strategy: "disabled"
================================================
FILE: .github/workflows/run-maven-tests.yml
================================================
name: Run maven tests
on:
pull_request:
branches:
- master
push:
branches:
- master
jobs:
test:
name: Run tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: maven
- name: Maven test
run: mvn test
================================================
FILE: .gitignore
================================================
**/.gradle/
**/build/
**/target/
/nbproject/
**/dependency-reduced-pom.xml
*.iml
/.idea/
/.idea/libraries
/jcp-tests/jcp-test-jep238/build.log
/jcp-tests/jcp-test-gradle/.buildProfile/report/
/jcp/.flattened-pom.xml
================================================
FILE: .projectKnowledge/JCPreprocessor.mmd
================================================
Mind Map generated by NB MindMap plugin
> __version__=`1.0`,showJumps=`true`
---
# Java Comment<br/>preprocessor
- LINK
<pre>https://github.com/raydac/java-comment-preprocessor</pre>
## Current
> fillColor=`#FFFF99`
## Issues
> fillColor=`#FF9999`,topicLinkUID=`15150167A1AA`
- LINK
<pre>https://github.com/raydac/java-comment-preprocessor/issues</pre>
## Backlog
> fillColor=`#99FF99`
## Changelog
> leftSide=`true`
- FILE
<pre>changelog.txt</pre>
================================================
FILE: .projectKnowledge/documap.mmd
================================================
[Scia Reto](https://sciareto.org) mind map
> __version__=`1.1`,showJumps=`true`
---
# Java Comment Preprocessor<br/>v 7\.2\.0
##
> fillColor=`#FFFFFF`,mmd.image=`iVBORw0KGgoAAAANSUhEUgAAAL4AAAAwCAYAAACvzsA1AAAQkElEQVR42u1dB1gVxxZeiS3RGI2xRtm93MstXBBUwK5YUey9xl4TC1gAsYBdH6Im6osleWqKL7EbSWKPiVhATSyxIAjYEH02LBdszJtZBoPXe3dmdheSl7fn+863IDPnzM78c+bMOTMrx2mkkUZUVBVyTci1CGyCXFpFvWUge1HorY3bqJFGqlF/yICBf1dJbwXIOQx6n2tDpZGa9JgR+IhLqqD3LKNOmzZUGqlF78oAPeK6CvX6yNB5XRsujdQik0zgD1Sg0wXyIxk6T2rDpZFa1EIm8D9RoNNfps5F2nBppBYtkgnC3Qp0PpOps7E2XBqpRRdlgvCMTH09ZeoD2lBppCbJBeFtmfruy9SX9lfuxNQoQUPS/xDVVAB8ORY4XIGuHX+1znu4TD/gwceG1MwY/fIbkdVLqi3/yXJeQ2gB0TCFwLcw6rujQNcsFd63GOQ3Ib8FuRR+ot+L40gTE2WtckuxfaoHj5YaQOZCve3OXF2xW4tqKm7k45W5gL+zzMMle6Vu2KOlus0PFrmXUCCyJH7f0viJ3rnon4S5IpBL4DbkjUFx/O/OqCzkcpjRz2/jn/OoHJZFTSsUAn9AIWyi87iNzI72hLwd8j0uN4SajYwp5Kf4iX5HCbwHkM9DHkEr2LZK/xiC/1nWSj14vAyCP0YfqhY6Hn/NudhW6m9mrYKyl+uR7JuMItwgr8SuZRZ+32f4mY374jDkOgqaiQAXCLkt5taQPSTK/wv3sw23IW8MbNgoznZSLwbyC8jHIYdAzsCYQJNGh3+ex9Lw4wrBuIJBl02hrjIMugyQ92Kwy9GFjlHsxFbJCXXmIDAB5EwEzgdL9KduhhvBncnmEkpB/2iVmx+Um43kQs6x/RPKX2wA9xfoq1NUnw75KuP7XoLclLGZIRLyZuQrh1aZAwxteQi5h5O9aDG8MtvwhPGGfAFPbN/C2NiyJpRiFOp5zGCBtqvwXnmMrKLDXeu9OYbG0BLfta3W38tcZLh0M8wIEPDTJ5sa/qRgo5sRrm/3nynuSWhSZYmTys2G3KmHSwzgXrReJ1E1CPIthe/Lkpu5ISFnDS4zRkFb8oO/Mrb4eW4b+vtnkFMgr8e/V6ZtuF4FYNwm+GaIyhNkZFLo2UzxPjpsBYDKjKzLG/bKroe598gIhWCPMGxCz4xJkCeYwPUQ00dyQX99tKlTxkSTOIEer3BLt610u5O1WlxVwMOPoSsV7VbOQTVkAVep+L7LKf100mFCpWNxP5++UZDj8M/olO6vkHvhcqXyuT1UNI6g+AX216TKPKDYJC0myKhKsTQPJ+hgOW+Ug9+N5VRogL3C9BD3/unjzCB9rDkhfYwZXB9tBtc+tIBrIyyfs4A9qbtVfF4dam59daRFlHMj2GiDK0hSRrgx7WaYIRFOhNO3Jrv/7EREcgFM9rGEZrcuAJ2OuBPW9w4eYw5vhN/Ck+89jD+m8Nduji4ze1uiTBbeoUtZYZoOvksoV09Cx1uU+4dovOGrgDusIh5Amrr77ZWmDbf0uTrcAq4Ms8RdGeoBrgz2AJcHQu5vPcBq6RO7Wb3T+lnBlUEe4Oowy91rH5ku3ggxiasIsv6IMyKMtRxYelrXBvXvZQbApRCavLCQgL+9IMJKFwhK/XC5nwjWU2IDyH1B0FEcuxGkDqhCiBRI1T2E3S0pSiPIOPVawqqvRxcE1tQ+1iNpfeGztydI6Qm5myfTXYWLXT0rJnfyzLnU3RPK8nySNsBj7dXhHuLqAVcT0X3KCDNeFP3/qSaW8UOZ9Sbc65eGquLNp5LjIXspV1b0/BRyI2yVK2AvIoz7E0/jPqBMTpH8x1pO5POEei1xueYKEmUkHXco+2IeQc4G+wopPaxNL3X1BMmdPZMh30ru6AWSOniBi+29Np6qUbPpSaO3pMLUuvW4k/UtpS+0qJGTGOQt1k3u4rkqtbcVrhpwBRkCrf8I0fV5cT3Y1T6itYTQ3mkU70yy2lKBiysUY4YmpquEjKYU7uYttUFfgqAwf8w4mFB2qhMdBzm64wcRBPl7Jd6jF2GD5UXZH6SMch/7CqdbelkvBtUAiYE1nie2rrExsZU3uNDCG5ypVSv1N2vtWCllCULuYnrC3Tf+XGMfcL65N0hsWWNFUnuv7EtdvcSVA60mous01H2wbfWg/NVJp2mHqZRQtEns30igz8ShR9IG+QZBTrrawB/M0R9AI3V0nAP5lRh89rWEskMJnTcUJz7G4vAZeg6i6HiWpfsd+wrHmniWOR/gAxBwzzXymXO2kQ846VX73Am9H4AsuiY/iOmEVykqr77O70tU9pR37RNnG9S8fb6Z94kLgd7gYtsaILmTF0CuT0ov6wLGzexpRhxskJD1xEmkpDFFUKQcpf54gqzv1Qb+PoZ4bmVGVwSBMVWi7FG78kcV+Pdq0ACC/mzO7polAPG5Ftvg9wJa93OnfWvO/9Xke/W4mx/IZf9LTl0cj1ZcvJv/+GNu/qgcZN/0M3V8NkHwAzSR0KqR2AauJJ290D1o7nIvD5a2vsn47sskZKEs79sO6iylSIaplUCdoOZAu3DkO7ZNGZe2UnapcqmyJoaM7lMnna8GITfoS4p3u+coji+OmpvfIwTeY4LfZgTkPE4Q/JPieb+GDk1cFf/yCTr/58d0uLzOf+wJg++NE0a/9N/Mvhlw1cg45VX7zCmfmp/JCF12YXh/N0JU6LkTy006xt6boQ2pBFmV1RzwUhTJhddyK4Ty1Sk3PmsY4+9ZnPzDVMVwu+pD7oCTIMjCHWYMqTmN0kDgpuWC1y9FBDLkBMyHq9V6ZYLH8XW5X6tZi8QL/vcThDpiGThhDsE6mcfzrH+umwSg7w9+1tUuneFbh2VfpjYj4Jd1sJrf5tQ5sYtkZRBWWlXpPcJu+oqDOj8SXjYvhEG6Umjv9A6XCzon8XxkxdFhuP+oCICpTjepOv9jGOhpCbo6LyCDeAjqo0KdaxDgW+Mqvbq3juPrhx4R6oll4nn/p7DMpAQ8Yf5wfSDw3Xy7O1A3v5CB/4R7/cSjC16FndU5x+h5PJSQlag28DsQXvgHB3VmEuoE4XJSGdglDuTuJMgNp+zALxkzsSysd6b4KF9nuwhioc5D+PM3R4W6AAH7sFAfHBIaPIRAF4867xYCuAN8E/MvQmMQJzQU/36Er7sE1X1p/XMn0MVjOl/xdCgEv7267EIGfhbOs+Qn0jGXbQw4JOVvdqsN/H8TFDo63tmNUAf5nnsIZRx9fe0Soc77hHcZUsCAeOo8HGLlDgt1J2OQgzi+Qb84oRE4KHJj8LPQBOyqVvdlNGgf3/zYT0JT+O8B8O8NYw8J9RPQJEGTRZwAOnEC3NnP+5Y6IvjYqyuNoyWFCXxHK3+kggicPTXjCv7+xSv0nKCwg4M6/go7cZSTttxX4OMtYGwDOti0Dq8i7SEbITcg1EmSasCB6g28Ech/gSCHFn3BASHgGQL3fqEZ5OZgH99ssOgn8q267BZagb1CC/FvB/iARfmtPwL/Ud5/91FXX+90aytHqmi/OHcD+81yOO+uwm0c3n1Hxub6PQYcrlGQOWamchSd5yi9X1UB6J3dzS3KyT8vQnNzLAWn5o0ScooqXW73i0CHIBea394rtLy1R2gJ9kCQ7xYCwU4hUPwcyg9C2ws7hTZgl9Aa7OZbRMKy93KtfxNxdTgEJ8ARvt4zCTWuhHamctJnptSgYhR7AhYifVdJVSLdsZX6NqVc4A9xIq+HjMRY3gCQDpatpuyPIIKcKJKAPXzLXQjku4TAFzv51pcRwH8UggAEO4jl2y7Z6tqp7XdCRxArtEP/fheWOYjKw0mSa/2h64Os/0G+YZAC4H/IFTxVIbRhH4Os0lwhf1iABDapVPtdGaBPkJC3g1B3ppN6nxDqrWHojzMMGWaHFMu3GYVA/r3QLidWaB8DGewQOgAE9m2uHadtEbr+vk3oDLYLncAO13ZdYdkcNDkQ+NHKsE90f5oeQbIOujZ0poZ0ynV8IQDfqqJPLhBkfa1241dz8s9hr5MBfCk/jZRL8HdQpzgn/0CbHLdPktBysNW1rSsCuQh0vuNABPKtQhewBfLXFQPLbBR6gM1CN/R7HPz79Vzr3x6uCEG5rg9yi6q0JF2iqErw8VfLtODoiMfHOOKGDq2Fcc4vbX+kYvKMdOxhtNrAJ134aCRRty8j6KWWvrcpohTOso1SdQ4w9AXpOmQSraAtfNcjWyC4N/HdEjYJ3c9tgmDfKPS8v0g/Lma90Ddng9ATbHLtNhZaf4AmBgI/WhVi+XZZsdXbVqJQUZbQX6wX0YfLMH6kqJ07g/6FXCFubGn8dKljpGZG4JskZL1PsGDOkhd+MnIQckJpAK9wVPSNa88aCNzfCr0Rb1unGwjWCQOmRxvGg7W6gU/W830Wfyv0yoSTQbT+W+EE2C50vLStekdhBx9Em+V8SGjvfMqcRyQhfFtSJnZYKIUgq6yaoK+rsPFVGJJEpJszpE3leif1OlLoLkoAUEvKdxhH27GRLn2KLDIEX/hC+CDrK/6DpZ/rhtyaawwF840TwRL92Mtf8X2XrBf6gW+E3k/hBHm8ke/WU8b4jaVo8wq8mhbN974oUYQOr7WhGD9fCUMlVe8Ew3u4qBwdIlKwwsaXoUyiPKeYsaQY7gSZFj/vUJmjREoX7BLQTt5Amk6do8udH/Pdx7kucJ8I5ruPj5xtCgczTZPBHGMYmKuf0D/aEJwUYwjeFeM+pk+MMaTPQkPIqWghWC9jDGku5j/DocL7mB9wdBe/pb6RFEioO53hHbxlGj3Z9AWn7AhoUUrgL6VoC+l0aIDEJo/18yCZnLwwbC3ajp2tC6k8xxi6dLYpDMwyhiVHmqfER5ojwAxjBIgyT96GJgH6G1oF5hkn7ZvrNul9mWM4iiuYLG0EQe8kju6aKg31U3GTTEUnCAp1FDIyOPKlZqUxXMBJH0W+yxVOyr46awdHGkI7RZmmPIswT9s41TINTLeE95hunmqLMk8BMyD4Z5nCz841h3ZfYJjyhoJx/FTl96Q58x6rYl+Rrk0a1AZ+NmF5pPlS2QZCo2k+oUc6/nCfIgyp5EAaOrl5VOHke436lx/GTTFObT/ZEpkZboncF2aOTIbPtRGW6cenmaedhKvA/hnmCHT5m5tnDVE6lotVAPw17o9TtSQibaxZPpibwDHedivIiA7tbfZ6HP3NKmdEulw+hkIGsjBZjAOdbeeLkqyYLAq1RLWb6DFzykTLjHERQhQfaplVoYASSj7YlWMxAjkYxJ1VxM4aRllS/+Hf6YLoqGo4jBeAGVmfDnjWs9xP1WM/rAeOkARgN4lWhgsOmwY4YIGj/2ox0tea0JF3cMwYtc/+LAtyN9BhtZ523IaTeetrnDFK/OhRsMfsl/uccPPMIlzBEZL9Lg5RXuOkrwOiLy+U52R8FZrL/QZRW7t+CpTplqAVu52Dfm/IiEON8Ma7Ip5QiCtxhfwZ7DGGKPE50hpdebTn/MjRXvPm/Qn9gCZ3BRwEqFQQboNGGjmkEV7Ri8Wn5z9iRlqii2g9otH/BXX3iBK/8tvFOt2tq+c8l7GGN7RO0ejvTTWNI797ufM0jipjNQzppPWKRn9bcnfPTXrq9f0b5P93k3HQRq13NPpbEwT5J+76AcWrVfvjAwkm98HekN/Veqfw6L8MpcrkyHZvbQAAAABJRU5ErkJggg==`
### goals
> fillColor=`#FF3700`,textColor=`#DBDBDB`
#### preprocess
> fillColor=`#FF3700`,textColor=`#DBDBDB`
##### sources
> fillColor=`#FFFF00`
###### Source root folders for preprocessing,<br/>if it is empty then project provided folders will be used\.
> fillColor=`#49EFB6`
####### \<sources\><br/> \<src\>$\{basedir\}/src\</src\><br/> \<src\>$\{basedir\}/res\</src\><br/>\</sources\>
> align=`left`,fillColor=`#FFB600`
##### eol
> fillColor=`#FFFF00`
###### End of line string to be used in reprocessed results\.<br/>It supports java escaping chars\.
> fillColor=`#49EFB6`
####### $\{line\.separator\}
######## \<eol\>\\r\\n\</eol\>
> fillColor=`#FFB600`
##### keepAttributes
> fillColor=`#FFFF00`
###### Keep attributes for preprocessing file<br/>and copy them to result one\.
> fillColor=`#49EFB6`
####### false
######## \<keepAttributes\>true\</keepAttributes\>
> fillColor=`#FFB600`
##### target
> fillColor=`#FFFF00`
###### Target folder to place preprocessing result<br/>in regular source processing phase\.
> fillColor=`#49EFB6`
####### \<target\>$\{project\.build\.directory\}/generated\-sources/preprocessed\</target\>
> fillColor=`#FFB600`
##### targetTest
> fillColor=`#FFFF00`
###### Target folder to place preprocessing result<br/>in test source processing phase\.
> fillColor=`#49EFB6`
####### \<targetTest\>$\{project\.build\.directory\}/generated\-test\-sources/preprocessed\</targetTest\>
> fillColor=`#FFB600`
##### sourceEncoding
> fillColor=`#FFFF00`
###### Encoding for text read operations\.
> fillColor=`#49EFB6`
####### UTF\-8
######## \<sourceEncoding\>US\-ASCII\</sourceEncoding\>
> fillColor=`#FFB600`
##### targetEncoding
> fillColor=`#FFFF00`
###### Encoding for text write operations\.
> fillColor=`#49EFB6`
####### UTF\-8
######## \<targetEncoding\>US\-ASCII\</targetEncoding\>
> fillColor=`#FFB600`
##### ignoreMissingSources
> fillColor=`#FFFF00`
###### Flag to ignore missing source folders,<br/>if false then mojo fail for any missing source folder,<br/>if true then missing folder will be ignored\.
> fillColor=`#49EFB6`
####### false
######## \<ignoreMissingSources\>true\</ignoreMissingSources\>
> fillColor=`#FFB600`
##### excludeExtensions
> fillColor=`#FFFF00`
###### List of file extensions to be excluded from preprocessing\.
> fillColor=`#49EFB6`
####### xml
######## \<excludeExtensions\><br/> \<ext\>png\</ext\><br/> \<ext\>xml\</ext\><br/> \<ext\>txt\</ext\><br/>\</excludeExtensions\>
> align=`left`,fillColor=`#FFB600`
##### extensions
> fillColor=`#FFFF00`
###### List of file extensions to be included into preprocessing\.
> fillColor=`#49EFB6`
####### java, txt, htm, html
######## \<extensions\><br/> \<ext\>cpp\</ext\><br/> \<ext\>frt\</ext\><br/>\</extensions\>
> align=`left`,fillColor=`#FFB600`
##### unknownVarAsFalse
> fillColor=`#FFFF00`
###### Recognize a unknown variable as containing boolean FALSE flag\.
> fillColor=`#49EFB6`
####### false
######## \<unknownVarAsFalse\>true\</unknownVarAsFalse\>
> fillColor=`#FFB600`
##### dryRun
> fillColor=`#FFFF00`
###### Dry run, making preprocessing but without output
> fillColor=`#49EFB6`
####### false
######## \<dryRun\>true\</dryRun\>
> fillColor=`#FFB600`
##### verbose
> fillColor=`#FFFF00`
###### Verbose mode
> fillColor=`#49EFB6`
####### false
######## \<verbose\>true\</verbose\>
> fillColor=`#FFB600`
##### clearTarget
> fillColor=`#FFFF00`
###### Clear target folder if it exists\.
> fillColor=`#49EFB6`
####### false
######## \<clearTarget\>true\</clearTarget\>
> fillColor=`#FFB600`
##### baseDir
> fillColor=`#FFFF00`
###### Set base directory which will be used for relative source paths\.
> fillColor=`#49EFB6`
####### $\{project\.basedir\}
######## \<baseDir\>$\{project\.basedir\}/src\</baseDir\>
> fillColor=`#FFB600`
##### careForLastEol
> fillColor=`#FFFF00`
###### Carefully reproduce last EOL in result files\.
> fillColor=`#49EFB6`
####### false
######## \<careForLastEol\>true\</careForLastEol\>
> fillColor=`#FFB600`
##### replaceSources
> fillColor=`#FFFF00`
###### Replace source root folders in maven project<br/>after preprocessing for following processing\.
> fillColor=`#49EFB6`
####### true
######## \<replaceSources\>false\</replaceSources\>
> fillColor=`#FFB600`
##### keepComments
> fillColor=`#FFFF00`
###### Keep comments in result files\.
> fillColor=`#49EFB6`
####### true
######## \<keepComments\>REMOVE\_JCP\_ONLY\</keepComments\>
> fillColor=`#FFB600`
##### vars
> fillColor=`#FFFF00`
###### List of variables to be registered<br/>in preprocessor as global ones\.
> fillColor=`#49EFB6`
####### \<vars\><br/> \<glob\_var1\>SOME TEXT\</glob\_var1\><br/> \<glob\_var2\>12345\</glob\_var2\><br/>\</vars\>
> align=`left`,fillColor=`#FFB600`
##### excludeFolders
> fillColor=`#FFFF00`
###### List of patterns of folder paths to be excluded from preprocessing,<br/>It uses ANT path pattern format\.
> fillColor=`#49EFB6`
####### \<excludeFolders\><br/> \<folder\>\*\*/folder1\</folder\><br/> \<folder\>/some/\*\*/folder2\</folder\><br/>\</excludeFolder\>
> align=`left`,fillColor=`#FFB600`
##### configFiles
> fillColor=`#FFFF00`
###### List of external files containing variable definitions\.
> fillColor=`#49EFB6`
####### \<configFiles\><br/> \<file\>$\{basedir\}/config1\.txt\</file\><br/> \<file\>$\{basedir\}/config2\.txt\</file\><br/>\</configFiles\>
> align=`left`,fillColor=`#FFB600`
##### keepLines
> fillColor=`#FFFF00`
###### Keep preprocessing directives in result files as commented ones,<br/>it is useful to not break line numeration in result files\.
> fillColor=`#49EFB6`
####### true
######## \<keepLines\>false\</keepLines\>
> fillColor=`#FFB600`
##### allowWhitespaces
> fillColor=`#FFFF00`
###### Turn on support of white spaces<br/>in preprocessor directives between '//' and the '\#'\.
> fillColor=`#49EFB6`
####### false
######## \<allowWhitespaces\>true\</allowWhitespaces\>
> fillColor=`#FFB600`
##### allowBlocks
> fillColor=`#FFFF00`
###### Enable merging of text lines for //$""" and //$$"""
> fillColor=`#49EFB6`
####### false
######## \<allowBlocks\>true\</allowBlocks\>
> fillColor=`#FFB600`
##### preserveIndents
> fillColor=`#FFFF00`
###### Preserve indents in lines marked by '//$' and '//$$' directives\.<br/>Directives will be replaced by white spaces chars\.
> fillColor=`#49EFB6`
####### false
######## \<preserveIndents\>true\</preserveIndents\>
> fillColor=`#FFB600`
##### useTestSources
> fillColor=`#FFFF00`
###### Turn on test sources root use\.
> fillColor=`#49EFB6`
####### false
######## \<useTestSources\>true\</useTestSources\>
> fillColor=`#FFB600`
##### skip
> fillColor=`#FFFF00`
###### Skip preprocessing\.
> fillColor=`#49EFB6`
####### false
######## \<skip\>true\</skip\>
> fillColor=`#FFB600`
####### activated by
######## jcp\.preprocess\.skip
> fillColor=`#FFB600`
##### dontOverwriteSameContent
> fillColor=`#FFFF00`
###### Turn on check of content body compare with existing result file to prevent overwriting,<br/>if content is the same then preprocessor will not be writing new result content\.
> fillColor=`#49EFB6`
####### false
######## \<dontOverwriteSameContent\>true\</dontOverwriteSameContent\>
> fillColor=`#FFB600`
##### actionPreprocessorExtension
> fillColor=`#FFFF00`
###### Provide a class as the preprocessor extension through its full class name\.<br/>The class must have the default constructor\.
> fillColor=`#49EFB6`
####### null
> fillColor=`#FFFFFF`
######## \<actionPreprocessorExtension\>com\.igormaznitsa\.jcp\.extension\.LogPreprocessorExtension\</actionPreprocessorExtension\>
> fillColor=`#FFB600`
##
> fillColor=`#FFFFFF`,mmd.image=`iVBORw0KGgoAAAANSUhEUgAAAE4AAAAwCAYAAAC/gkysAAAOyUlEQVR42u1aB1QU1xrGksTEHo2JCqwtKpZYYiwxmjxN4ovJM5pEE9t7JjFGfSemgh17jw2DvYJ0kCYggjRBBGmiCCwgICIIClIFEf73/Xdn1wUWWBHfieWe852ZvXPnzr3f/H1WR+cJauUlZZV+p3vFd7tqG2kesytgms7zprkVpOSozomo8Q0f+eCwJa6Jdt1X0elP9zo9Z0hDyw5JUSftxeseVz4L/MGq0OK1xWTdeRk5GKxNSveKHcbXM/zkzwkDSToT1X4XXstpkWwbOd/78/0kSNNdLoiz77mmxGfK4V3PGdPQbgZdbS8/HLz95MjtZPn6EgVpEmz0jclp0KZoEN2Jx5bm3X12iaooK1dJ3TXXy11idvi5n+izjqw6Lq1EmlLqHHqvzQ2cbWn0TEtXUfodJWlNku0i344wdotlgqw6LatOmiBuOdl2XUmQRj+2gUrCn6l2KzxNSVqzq1bhE4J+tMm17LBYkKORNAlMqkOfdenhS0+K0OTsd8efHUfgN8NMed5Gfij4J+9JBx84gbrATuLN1XTqY1PrZ8p7qjxnep4u7Nl299E7qjmBusBS59h/Q1zC0fOjea7Ms4lPMWkVD0jLOpfUL3LNKRfHtzZodgJaSB2cRJnX5/u3PdWSdjerQHWe4hA1JvQPx4ts5Gt0AtpAz5ich2wJyQpJ7s7zlhWWPl2k5VxMV6rpC/EHz80I+NYiw6qzQmrqTZqkrif6rs/3m3HM8KmzZwgxlOevXtrqs8hrwr5iq47L6vSc2qmrKjRxZyfzVIQm6hvAebcIY/fdbqN3KlSzIUhTSh3so+PAjTeCf7afzs+KXHXq6SAt+8K1YefmWrs4Ddz4aPasFidh12M1uY/ZdYSD6CeWtNKcItV5jInfhKi1nmF+046SbZeVj2zTarN1cBJXLq4/PUbKdZ8wz5ldoKqhxe8PmpvqGJ0S+rsjpbnF0BkEuJyg8yYt31jasMQpQhM6PX7vxidONYFGfF58K7917uWM1fkJWTlx+wLp5Hvb6XbUdYI0CJWy7b6KXEdsFSTWZbuOv7qQLDssqeYQaroH855FQNyX13G/SgX5b0laefE9lROgiopD5XfLSq7aRJDbqB1k3sqQ7sTdpCTLcOEBozd6UarzJUFijaRBIh37raewRS7kNWE/WbRbJAjkuZhMs5aKo7rkikzirQ0lPpMP//Kkec7hgAdQnnAslFze2SLSKPuea6go/Q5l+CYIO5cdmkIIVMkeqqXJ0Fu0X0QnR23HeDnIDiP54fPkOnwreX6yh1KdoinN4wr6gun8Lw7kMvRPOt52oSrzsNFfwS/rRO7lGx3/dqEJVKVaX1ZIysTcmIyIdM9YCoFNO9F/g8KWgTiPMbvo7s0CygpOFlIG20dIvcjBYF011WSEgJDs0FQqSstlg09XTPzFvVnnk0nZKsorCJmIMAGX/jwj5uICAceHeGG3zn5v+Q2vK3ypq2LNutXXbK1LwLL/A2EaHh4816YlNrYAapl6bp4NqwrSIAUJTNpxqJjPV4eoNLeY0txjBHEXDJ3E5p0Hb1KRxqUkxwEbhUQxIdxKc4rp3FwbCvnNUWKrgjS18pIySjS/wAm/kFY2Bx4f/rUHl5pXWX8jYCAwCWhX274eC2k2shU9zdsY7cRbDkl2iIouKyq9XZiaQ1etw8nrX/sEYbwBt/d3ktPATeQ3/Rjdy7tLsaYBUNUVFDzfVmzYHdeZZLZfZyYdoJzodCFJD8SKBImF13KorlZxvxzPjxDks+1zHbEtPtTI+T1p7eOAbcBeYAewAlgDfAmo4j4bPWMdeOeGI0xJGjbZAlgKm5LkMnRLCRN1v/ieapP85vMSsijBLJQy/ORUdD2XskNS6PzPDoK4gG+PC1UKmHUcwlNBpz4yFaQF/WgtbOCjNiYd4Q8kebPwvDARJ5zf3rwY0v8f7KE/0A3QAzoAHYFhwAJgMghrWpd21UvScOwJOGOjpZ4fm1JmQFKNqoMwQHWtKD2PkJ8K4hKOhhB/F/X6dC/dv1tGSRZhINWeim/kacGK9uRl+CVQMjx6quPFqHPzbMf/rNP7xRr29gLQFhgKrAV+B9prY6K0I03PuBMM/REOB/ymHaM8eVYtK6+oRmLJ7SJxnn/1FlcyKGaHL5WX3hfXmNDaGl9nZ1OTet7L13x/wrEQYSq8Jx2Yo4mAKudNgTbAEGAr4AOsf2R1hb1iG1HGKldyq7DWjTKp6adjEW6UVLt2xfQshS93UxFZVysvu0/hy1yFh2YTUInQghK6tMWbv+pTXnz1F5lsH8XfJMht9E67NNfL+jWFJlUIbAK0BEYDvkAcMKZepG3SmfAKFm6MfFNISZ2bhRRFb/Im36+PVJPM4J/sKdM/UUiKNiqXdvKyCITZ6/rPNKeKsvJK1xOPXxBB8aXNZ6rdfysijTzH7SanwZsKfKcenSQEoJWhVs4P542BV4AfgFxgltZBbdRaRWnmhk98F7xtr/J75VpJCQesToM2wbMtoszAJNF3YaEzFSImY+K1IU0RihSJoBeejrwnHqCLyDbuxGZWGlOSXUhx+4JAYGi1+9nL+880I0vEdrCpJuhq/bDRgySB7FQ2P1QmkO4V1yMzIPHM3cx8rTbLG/H95qiQAg4JWC3LISUhv5+g+APnHnhgTYRDegQxMJGcMVza5ks3g65SGe5hstkLI+wRzxASp5Q+9FcKYaRWkHxbhEGcVSCTSAqcbSU+6GSHX3tYp8ixX9NaB5eXPkiKsejhsGkJ3p8foLKCEq2Ii1zpTojxRNrEWQMHohzZZ19IpcjVHiJOUzqDwmu5lOpyCaRUCHvo0HMtxe0/p3AiidmV5uVYLmyhi5gbaidIZOMfhICbVVJTY2l3H2Misgn+jHhm0sGFD1urq9ObIr1Rl7im1z2vTDz7nUU+vy02vtqEC5z22GGB6oVKzgbOfHGQ7t0ppsA51hSx0gPnCuLu3swX8ZwIXTgY/sBE3M+hC6u1sJelZUL1HQzWink5G+Hc9Fb4NWE/ObjmJJ9VOmKFG2WeTRJOg9vtyOvi2bwGvg8xXVDYYpf+DZagR284/eD3/YrmybaRC7gawerGhpn/9JLhn1AjYSwNnEIp62xVk3ZOuYL/a0tKdRcqBom5vN1XZBG3II2snpxxeEG6YR4IOa+I8TzH76lcUuLvC7gnVApPYnb4QRWNRL+ixrdEIfGwi1xVSfeKJx84Kf7N1Wekfv/WZJLqXdXgBpVqJz983kT930FcHOSANWqdpypuUtqTYkgMqxZSG7LosLjOuhrX5Lgex3aH5xTekjcMhC1xFc6gHPOzJHI4w47Ef7qZyquql5t4jXfiMhGiZGNezR+yrUCiE9Kv4AX2dHGDF3mM/Ytfjn38/iARmlza7P3wpIEAdQIbpXvGymJ2+nlwhaHqh2FeKFcoWBXZ/XOFgnNHqDKZtzbU+huCslIi5u9c5StVt5WiTARVEuc8lu0fP4ftZKVye2eF7WRPLQLdI+fJGuM1FkW5RAUbx4WHZLsIit0beC9wjtU/6yVpRTfuqJPWBAt8O2KFe5xS3GvaNHtJ9/dNKMXhIoLSk1DBhQ34sWW52KCQHIlUliR2GtGbvav9n4TJ55CHSWNHwvU5z3Gm1SvFEjgf9pl8mNK945AqJu6AELSVtKxeqtos5UTUZ/BM+XX90YUXyolz7O6zCDa9ReWjIT/vaYINbBnbQc5UOAOo+lL5t3kbI3IGgVwDvGoboSpoCkeiPr6zgrwbPnL2ttfxMobVS+ruFZS2RtA4n72ORfvFWn0EYSmLRoojnMZj+lJVVQo5r+XYLsbEX/GyNIxjr8lmg52KN5waV53Z7rLHVai5YpxZK0MRS/K4RPPQ31Kdol8SZquiQjvS0txiOl3ZFbDTbdTOGkVbHRwKhPx6Qhh25dt87KSp/WXVf4YZ5cXdFAVQjc/GS2RPykIQtz9IFEKvn4ol2GzxvYM9rXpoFAfyQo2co7y/OGjwUNIG1pfB29yAPZFjwpoQL456xhl4WCq8ajykTG7VcVlt9zQ88Ew4i3gk80kIYHOx5ljN45bLQYzcvLURYCi377VG7jF2lxxOQQ6yVeN4z8i75a4jtl4/Nc703Yci7oDOfAPEPv0wUU3oA/QFPgVmm7X8Y6ypzqzeCDT7Westr+2+xwJoRd89OrOHQlVXQgKHo8+grntg6/odfenXfrBrWLNxpWsgt69ZS8MB2FdrnYZuUl1qqovu2lZ/lw9EkZ33trLRNX6vIee0012pY1WfjzXdZV0aKc/bytq/MFI2yOCwrtFMG93lFra6K4Zwfw9Z154Yx2irdt+LQGegtfRb2d8K6AO8ATSW+poBekATqb+t8rk46kpzGyjnqtp6ybo30pV1btFP1rO7pe6y3iBvEPc37vJyc6ytkzRvB6ClNCfP3wt4E+gGtKhh7/UirAfwFW9I+t2ki0x/9ACZgf8SvZlBkLSpEmn9cc0O+BNYyMRI44cAlsAstTnbAL8Be4D1QHepvzewu5tM1h5HY+BrJl66xmM3A0ZAX00bk17St7jf8h/67wxw1F39lYXu0vEj9QdN7irTP4R1f4jr84CPpPHDgMOANbCGSZT6RwGfAO3qRR4GTwfspUV3kfpaSA+7gIXYqY0dAxQDwUAQIJP6maA8YJ8aQRMBf2kT89QW/C5wTSKTj6uBl6VrqcApYDtLSA3EtQOiAD+Qt4reyG8O4n6doj/2KPqov6xXGPr55X4vjWepNgHCgflKTcHxS8AKOAb0q4+0GUqL5ePrahJ4k6Wrm2Jz+lL/B8AdaSFTpL6ugC0QDwQCM9QW5gFMBqYqicBxOJAImErErVAjTi7NYVlV4qTrjaWXd1+SIPEPxXV6c5uM0x+xrpesW+FgWV8mNJkFQu2+KZJwDFTrG8GSD3jyeb2MIm58S5Ka3tLieLOXpT53YI40brQkaerizeLuJhHAi1gn9b8qLewCEMKSJvW/I0ksS/Vx4A814kIBb8Ac+FjDOptJEsrPWyLNM5yv6cl0p/GLgrqOxDFM+WKl+3g/ZsBgtT42Td8Dr9VHVf8HIjGNJEgJIG8AAAAASUVORK5CYII=`
### tasks
> fillColor=`#FF00FF`
#### preprocess
> fillColor=`#FF00FF`
##### sources
> fillColor=`#FFFF00`
###### paths
####### path
######## \<sources\><br/> \<path\>\./src\</path\><br/>\</sources\>
> align=`left`,fillColor=`#FFB600`
##### eol
> fillColor=`#FFFF00`
###### eol="\\r\\n"
> fillColor=`#FFB600`
##### keepAttributes
> fillColor=`#FFFF00`
###### keepAttributes="true"
> fillColor=`#FFB600`
##### target
> fillColor=`#FFFF00`
###### target="$\{jcp\.target\.folder\}"
> fillColor=`#FFB600`
##### sourceEncoding
> fillColor=`#FFFF00`
###### sourceEncoding="UTF\-8"
> fillColor=`#FFB600`
##### targetEncoding
> fillColor=`#FFFF00`
###### targetEncoding="UTF\-8"
> fillColor=`#FFB600`
##### ignoreMissingSources
> fillColor=`#FFFF00`
###### ignoreMissingSources="false"
> fillColor=`#FFB600`
##### excludeExtensions
> fillColor=`#FFFF00`
###### extension
> fillColor=`#FFDB00`
####### \<excludeExtensions\><br/> \<extension\>cpp\</extension\><br/> \<extension\>xml\</extension\><br/>\</excludeExtensions\>
> align=`left`,fillColor=`#FFB600`
##### extensions
> fillColor=`#FFFF00`
###### extension
> fillColor=`#FFDB00`
####### \<extensions\><br/> \<extension\>java\</extension\><br/>\</extensions\>
> align=`left`,fillColor=`#FFB600`
##### unknownVarAsFalse
> fillColor=`#FFFF00`
###### unknownVarAsFalse="true"
> fillColor=`#FFB600`
##### dryRun
> fillColor=`#FFFF00`
###### dryRun="false"
> fillColor=`#FFB600`
##### verbose
> fillColor=`#FFFF00`
###### verbose="true"
> fillColor=`#FFB600`
##### clearTarget
> fillColor=`#FFFF00`
###### clearTarget="true"
> fillColor=`#FFB600`
##### careForLastEol
> fillColor=`#FFFF00`
###### careForLastEol="true"
> fillColor=`#FFB600`
##### keepComments
> fillColor=`#FFFF00`
###### keepComments="REMOVE\_JCP\_ONLY"
> fillColor=`#FFB600`
##### vars
> fillColor=`#FFFF00`
###### var
####### \<vars\><br/> \<var name="globalvar"\>antdefined\</var\><br/>\</vars\>
> align=`left`,fillColor=`#FFB600`
##### excludeFolders
> fillColor=`#FFFF00`
###### folder
####### \<excludeFolders\><br/> \<folder\>\*\*/excluded1\</folder\><br/> \<folder\>\*\*/excluded2\</folder\><br/>\</excludeFolders\>
> align=`left`,fillColor=`#FFB600`
##### configFiles
> fillColor=`#FFFF00`
###### paths
####### path
######## \<configFiles\><br/> \<path\>\./config\.cfg\</path\><br/>\</configFiles\>
> align=`left`,fillColor=`#FFB600`
##### keepLines
> fillColor=`#FFFF00`
###### keepLines="true"
> fillColor=`#FFB600`
##### allowWhitespaces
> fillColor=`#FFFF00`
###### allowWhiteSpaces="true"
> fillColor=`#FFB600`
##### allowBlocks
> fillColor=`#FFFF00`
###### allowBlocks="true"
> fillColor=`#FFB600`
##### preserveIndents
> fillColor=`#FFFF00`
###### preserveIndents="true"
> fillColor=`#FFB600`
##### dontOverwriteSameContent
> fillColor=`#FFFF00`
###### dontOverwriteSameContent="true"
> fillColor=`#FFB600`
##### actionPreprocessorExtension
> fillColor=`#FFFF00`
###### actionPreprocessorExtension="com\.igormaznitsa\.jcp\.extension\.LogPreprocessorExtension"
> fillColor=`#FFB600`
##
> fillColor=`#FFFFFF`,mmd.image=`iVBORw0KGgoAAAANSUhEUgAAAKwAAAAwCAYAAACMlZHgAAAL2klEQVR42u2dCZAWxRXH9yAuYXddYCFAEOQQDUmQc48Zli1RCWUOAaMRE9AyGMTdnYHlDtFSUSHImooXIlki0SRUzFGxkiorIEVhtEyElMGgQU0CiBhEFANIybl5r6fnm+Pra47v4yPpqfrXbrE9Pd3Tv37z+vWboago7mGb7s8uoAGgBlAraB1oI2gbaCvoZdDToBWga0FDQT2K9KGPvB+2eR9oB+gIqCOC9oA2gKZmTQB96COHwE6KCCpLH4GuAZXpG3pWxrAE1BXU3afqItsoDZSzSLnqUDlU6bnSUffnhhSg7aCWeqq2tnkfx96gndRwuDoNwF4aAnYg/PuZULn3QcMKqj+zXry4GCXo8HjQyZSgRT2embUa3HwA2we0L3scjJEhYAczxuo4aEShgOr+XAaaJOn0b1IEtoMu1AZqaPNmYfee08D6YH0E1AF6BdTF/XeGW4A6kTK07xOfSUOrgVWE1oXV1VQ/zAxom1MGFnUINFhTpYGVWdaFIVhRx4ULMNvsDBoFqokgjA4cVViMlWsrq4HlwTqSAaurp3Jww36pYGmf0mRpYFnQop96RADsx6ChWW5Bsht2nqJ70Krp0sBmrCvVKgGsrh5L8Wa5P29SAHY/qFdqroGlUM+smGPRUs/va6z7ZKTXjnMBWMtQArYrtaAiWE+Crkp5hrv+7w4FaJckHvxmuBmtY53fbyPW/XpQG+hJUDtoMfHF3WNOY5K+TaI5FPez/z7OXxZzMe4A/Rj0E9D3nfPdv0Ob7fp4g26btaDvgtbSfmLdV9O/VeUNWP+42eZo0CLa31+AHgPdAu2uEoLr810fVrCuf4rUqCjWxTa/oegaFKdg0XFL8VEFi341cVlU+tDa4K97Waiuf7LbYeBEvVkhF+MuUIVSO9xBdlytr9HwoKjuVaD3cgqsd98/RSfxu5I2PQ396M8FF0CsVIAVNVAZVNv8NKhnJHBt8w8KwC6NCWsx/XkL3VZUDa09D+qvCMk09q6R+RajPcNB2yO0Awf5y8L76LbDMi6AMn9MFlJMCVgP1r6glyK04WPuWAOI8xVgXSqJw6K60Rl7PHTxP4OuDJRldw6t0yeSjrwD6hQT2rkxB3AfQNCb6U96lnU63Wvv4ALr9tsCGOT95OkGoQ9uGXgPjyWPgacArFXn3psBCdqyGnzxEj+sJaDnJbC+S31ckU/SpnBxBPdSjkV2rKBt/kBh5o2K7MfiQDvnn4l547ZzF0O2WSc591++dpTTSRd3AE+SGDarLc6E353Kpo1l1iUGdnYDTiB80r6RsD0zM4wAhJ8BvS0Bdr4Ehm0RG9AgqKvCyRYSnj8t4qKujPOodoXXe436raLrrsmuvxb9ssOS8zb52rNFIVd4p2RivcqZ9PdK6sbF1d8VgTUSAduSmcz3SJ6Wi0mWnm0+JBn3fq6FHQI6LYD1LYlvsizGjHmb5GDy6/ym5Py1arDWu/XN59Szi1wr2Ia+dMXKKv8B6IKAW8DfkkY/+dZMn2bjKt+sF0yY5cRCZga8DvNPZ7EXRETXBaMfZM3Au18Pk/BVsJ/owhzIGbDOORWc+o8z4+p2fRl9Y4V1znoX2AkS63oJ03d1On1+AjO/UhBVQNdgImgKQ9eQgY/mDpzgLGL6B2KWrQ3+cxZw2j3FV6aUu1C0fDkQ2Ees3wlxseqcEXiMBge9huOThiMPSzh1NwUWZf7JZhk9uJY8DWD5a4bbGRET/3lrOMalB4LYIoD1V6BS7s6WbT6YyDdJY9NBXm445/qLFSIKrzDO+5EzgLVu6OgQo8ycrIWRA/dmRtnNmTgrvz2PM87DHIzP+sqw/MR/kDay4pleZOPGHAL7LOfef52GDFnCsNdXGYtSfApdgsDeKwB2kMQdOJLQmU53E0K82AoPSLXCuQuYubreI4z1yDvGzDDDyAZ7QTTRsfBjRDtdfRnnfZJZfF03qJguRtlPMW69xE0ZxJx0iX1Y0t9tRelm712BwK7mwHon1xXwgsBJG7AgD8DOimXdyeOT+HnZjyavTD/OhkMfDrAHGeW/KN2KdM4Pn4duzuV04pRz3IabFertxd7pCi2MowLrxOG3pwqsBcZHAOwECbCdUmjE/DwAO41z7QqFc2czznvDtxJmxRf/LQCWBcZ4hZyA7hxYnH3jpjGlHGCXKkzK/uzFlzGcEd9lhdiu5DwV0KD9JWULe73IJTgaY9ZH1fQ8AFsrjO21hKxbMyyOVk13z31OaGGjAYtQvcAo/3Np0ott3i0E1imzhzu5RNvl6Jax7k8zAKc23isE19jIKH8KnggjoG81EQXjWF+FwFoCH/Y+iQ+7KSGwPZNkmEWA9jQTPMuo4GZD2eZt3FBYLGAN9DN/yKnz2uyNmAysgzhxXgfY5tFuueVsOKhRYC3qnE2M/cyk+bkN3mRuzoQHf8tph7MrNrcxXP8iTn+/lSS18HIBsAdA1YKw1qgEsG5izUxfMs400P0MrQTdqtS5pszW4Ep+kN7o41i/+mL6jn4ZxxVg+bB9lIF12jGBQsTyR6eQdYFllDhhvbHQJmOwIFaKoFzmcxsqBW2eAf0rceomE6cTWRjyN0ruZvrVuOjhX2MyjZqU+gxaV05ZXKx/AfpYnD2pjXLhtw7oxsEpAbTrJDkEz8aAFW/25wWZY0MkseE1Ed2CKk74ydVzNLXwpwo7Qbt8N7hXJGCdtmwV1P1Xmv63libdiNrhLbq8ENUqQfmdtH/t9Ml4WrD1eyHH38XPUr0uuMZrNIZa6eNjuaD8r0EWDWfdSFMNj1FLzn5rmm7N7pUAMk4wABfGeGP2TlEsFa63S9KeG2KkFM5NyfH3A9tbGVgrk/hSybGyUeUB6/UVs7Q+TJj08h3J/RwjqWN35m1nb3NJlktwhtO/LzkJRuOKwskvWySAvAwqE1jZoWR/W+0mL5K4KDMkbTlK3zuLswBbnQdg3wsE9NnB+okpQJsNrFP3uATx8TZnt80UT36LJL2fUgLWg/yDmG26vaiptjgMyUKF9MKJCsm5LYJHzYbAVijDd6WT4k1JO97BSRYJVA+UEsFCIC1gD5B8BLnFH8ZIw0wG7Oyxbt0Xc2K+Isvq7PzNGy9+NcjKtP8yJWDXT3fP60Hdkih9/BuM3fksq9ZFAdiDkk8W+X83Qd+myR+TSZ6sYEtV8no5My831uGB20i3SUV5o/gYezEGsIeEwAahRffgCUkm2UES+mInzFyRvdCs8b9x8Agn3OXf3t1ALCAvWiJsP9npaw9dY1/W51Sbab33jHVDdLJ1ws7Ak9i/AIz4ikx7rvb+cRtY5a2HxHHZjBUyOtHvSuHe9QMkG8iBZx61flV00mXvz3vAVtJMqJU+3UXOlU6ewARH62PQd7qepIAuo98t60nLvEAXuK5+R/Ik5MajG9mNcp4s62g/2+hCpy95MkbJzQiH3Zxzq0mesxMKXETCZeI24X27iJZvp33B1/2/R9taFUhKYlk4UDfQMQkwh0GfSzOuT6+NH5z7vQKwSyLHYFUsLn+SseKmWwKpi6lsbhjiFMk543PXx1QGMeKLs5bk3jXVKEGDelABmp+lCo1T1wjQGcl194N6pvpNBFHi8cxRJZyEkhVF+iiMg/qyhxWgHZ3ydXcoXLMlZx1vHhO2Sp1pTJTlXzVqUgoDVvfnSAV4doM6p2HtFBdaa3N+A6y6Urq6tkFv8t+UQL+1TgNTKNBSLZQ8ovFvM6lFLk+gAaB9ElhfpWVz23nbGKIQZrlJU1K48LZJQDoB+jChZO7HXm4SefrAXiSB9SFSbk6DhqOA3YMHFD+wkQshrJVpL/BiAvsMSRjJx4pbH4mhveMswPoSugt5g5UP7CHhu1/6KFh4axVitGkJQ2vn5RXWbB/2P2QP2zLK8xrP1EeqlrY7aD1+iTtHoGJoa3LeQfWA7UL25sPf0dKgntPQovrh5kGKoOKGwFcwTHbWYGW9sapB/d8Bl/7ej/7HHa+DPooAKH5jdg9oo2tRzxqo+vi/hBg3EAaDGkHzQE+ANoG2Upg3g56h/9/XFNAw3GLVd04f+tCHPvShj0I6/gtjopxeR4k2EgAAAABJRU5ErkJggg==`
### plug\-in
> fillColor=`#12ED12`
#### com\.igormaznitsa\.jcp
> fillColor=`#12ED12`
##### task
> fillColor=`#12ED12`
###### preprocess
####### sources
> fillColor=`#FFFF00`
######## sources = \['src/main/java'\]
> fillColor=`#FFC800`
####### eol
> fillColor=`#FFFF00`
######## eol = '\\r\\n'
> fillColor=`#FFC800`
####### keepAttributes
> fillColor=`#FFFF00`
######## keepAttributes=true
> fillColor=`#FFC800`
####### target
> fillColor=`#FFFF00`
######## target = file\('build/preprocessed/java'\)
> fillColor=`#FFC800`
####### sourceEncoding
> fillColor=`#FFFF00`
######## sourceEncoding='UTF\-8'
> fillColor=`#FFC800`
####### targetEncoding
> fillColor=`#FFFF00`
######## targetEncoding='UTF\-8'
> fillColor=`#FFC800`
####### ignoreMissingSources
> fillColor=`#FFFF00`
######## ignoreMissingSources=false
> fillColor=`#FFC800`
####### excludeExtensions
> fillColor=`#FFFF00`
######## excludeExtensions=\['txt','xml'\]
> fillColor=`#FFC800`
####### extensions
> fillColor=`#FFFF00`
######## extensions=\['java'\]
> fillColor=`#FFC800`
####### unknownVarAsFalse
> fillColor=`#FFFF00`
######## unknownVarAsFalse=false
> fillColor=`#FFC800`
####### dryRun
> fillColor=`#FFFF00`
######## dryRun=false
> fillColor=`#FFC800`
####### verbose
> fillColor=`#FFFF00`
######## verbose=true
> fillColor=`#FFC800`
####### clearTarget
> fillColor=`#FFFF00`
######## clearTarget=true
> fillColor=`#FFC800`
####### baseDir
> fillColor=`#FFFF00`
######## baseDir = file\('build/someBase'\)
> fillColor=`#FFC800`
####### careForLastEol
> fillColor=`#FFFF00`
######## careForLastEol=true
> fillColor=`#FFC800`
####### keepComments
> fillColor=`#FFFF00`
######## keepComments='keep\_all'
> fillColor=`#FFC800`
####### vars
> fillColor=`#FFFF00`
######## vars = \['someVar': 'Some Test Value'\]
> fillColor=`#FFC800`
####### excludeFolders
> fillColor=`#FFFF00`
######## excludeFolders=\['\*\*/some1','\*\*/some2'\]
> fillColor=`#FFC800`
####### configFiles
> fillColor=`#FFFF00`
######## configFiles=\['\./configFile\.txt'\]
> fillColor=`#FFC800`
####### keepLines
> fillColor=`#FFFF00`
######## keepLines=true
> fillColor=`#FFC800`
####### allowWhitespaces
> fillColor=`#FFFF00`
######## allowWhitespaces=true
> fillColor=`#FFC800`
####### allowBlocks
> fillColor=`#FFFF00`
######## allowBlocks=true
> fillColor=`#FFB600`
####### preserveIndents
> fillColor=`#FFFF00`
######## preserveIndents=true
> fillColor=`#FFC800`
####### skip
> fillColor=`#FFFF00`
######## skip=true
> fillColor=`#FFC800`
####### dontOverwriteSameContent
> fillColor=`#FFFF00`
######## dontOverwriteSameContent=false
> fillColor=`#FFC800`
####### actionPreprocessorExtension
> fillColor=`#FFFF00`
######## actionPreprocessorExtension="com\.igormaznitsa\.jcp\.extension\.LogPreprocessorExtension"
> fillColor=`#FFB600`
####### outcomingFiles
> fillColor=`#00A4FF`
######## read only
> fillColor=`#FF71CC`
######### set of files touched during preprocessing
> fillColor=`#FFFF00`
####### incomingFiles
> fillColor=`#00A4FF`
######## read only
> fillColor=`#FF71CC`
######### set of generated result files
> fillColor=`#FFFF00`
## External config files
> fillColor=`#00B6FF`
### multi\-line text files
> fillColor=`#00B6FF`
#### line starts with
> fillColor=`#00B6FF`
##### /
###### can contain CLi key
> fillColor=`#49EFB6`
####### /V
##### \#
> leftSide=`true`
###### recognized as comment
> fillColor=`#49EFB6`
####### \# some ignored comment
##### @
###### throws preprocessor error
> fillColor=`#49EFB6`
####### @ error string
##### any other non\-empty
###### interpret as global variable definition
> fillColor=`#49EFB6`
####### \<VAR NAME\>=\<EXPRESSION\>
######## globalVar="Hello world"
> fillColor=`#FFC800`
#### empty line
> fillColor=`#00B6FF`
##### ignored
> fillColor=`#49EFB6`
## Command Line
> fillColor=`#00DBFF`,leftSide=`true`
### /H,/h,/?,\-H\.\-?
> fillColor=`#00DBFF`
#### print help information
> fillColor=`#49EFB6`
### /T:
> fillColor=`#00DBFF`,leftSide=`true`
#### set input encoding
> fillColor=`#49EFB6`
##### /T:UTF\-8
> fillColor=`#FFC800`
### /TT:
> fillColor=`#00DBFF`
#### set output encoding
> fillColor=`#49EFB6`
##### /TT:UTF\-8
> fillColor=`#FFC800`
### /C
> fillColor=`#00DBFF`,leftSide=`true`
#### clear target folder before preprocessing
> fillColor=`#49EFB6`
### /I:
> fillColor=`#00DBFF`,leftSide=`true`
#### define source folder for preprocessing
> fillColor=`#49EFB6`
##### /I:\./src
> fillColor=`#FFC800`
### /O:
> fillColor=`#00DBFF`,leftSide=`true`
#### define result folder
> fillColor=`#49EFB6`
##### /O:\./preprocess
> fillColor=`#FFC800`
### /F:
> fillColor=`#00DBFF`,leftSide=`true`
#### comma separated list of preprocessed extensions
> fillColor=`#49EFB6`
##### /F:java,txt,html
> fillColor=`#FFC800`
### /EF:
> fillColor=`#00DBFF`,leftSide=`true`
#### comma separated list of excluded extensions
> fillColor=`#49EFB6`
##### /EF:xml,png
> fillColor=`#FFC800`
### /EA:
> fillColor=`#00DBFF`,leftSide=`true`
#### preprocessor extension class name
> fillColor=`#49EFB6`
##### /EA:com\.igormaznitsa\.jcp\.extension\.LogPreprocessorExtension
> fillColor=`#FFB600`
### /ES
> fillColor=`#00DBFF`,leftSide=`true`
#### turn on support of white spaces betwee // and \# in directives
> fillColor=`#49EFB6`
### /R
> fillColor=`#00DBFF`,leftSide=`true`
#### remove all Java like comments from result files
> fillColor=`#49EFB6`
### /K
> fillColor=`#00DBFF`,leftSide=`true`
#### prevent line numeration in result files
> fillColor=`#49EFB6`
### /Z
> fillColor=`#00DBFF`,leftSide=`true`
#### disable override result file if exists and has same content
> fillColor=`#49EFB6`
### /V
> fillColor=`#00DBFF`,leftSide=`true`
#### turn on verbose mode
> fillColor=`#49EFB6`
### @\<file\_name\>
> fillColor=`#00DBFF`,leftSide=`true`
#### read global variables from a file
> fillColor=`#49EFB6`
### @@\<expression\>
> fillColor=`#00DBFF`,leftSide=`true`
#### read global variables from file which path defined by expression
> fillColor=`#49EFB6`
### /P:
> fillColor=`#00DBFF`,leftSide=`true`
#### define global variable value
> fillColor=`#49EFB6`
##### /P:DEBUG=true
> fillColor=`#FFC800`
### /N
> fillColor=`#00DBFF`,leftSide=`true`
#### carefully reproduce last EOL in result file
> fillColor=`#49EFB6`
### /PI
> fillColor=`#00DBFF`,leftSide=`true`
#### turn on indent preserving for //$ and //$$ directives
> fillColor=`#49EFB6`
### /ED:
> fillColor=`#00DBFF`,leftSide=`true`
#### folders to be excluded from preprocessing<br/>ANT matcher is allowed, system path separator as delimiter
> fillColor=`#49EFB6`
##### /ED:/\*\*/test:/\*\*/test\*/some
> fillColor=`#FFC800`
### /A
> fillColor=`#00DBFF`,leftSide=`true`
#### keep original source attributes for result files
> fillColor=`#49EFB6`
### /U
> fillColor=`#00DBFF`,leftSide=`true`
#### turn on FALSE as unknown variable value
> fillColor=`#49EFB6`
### /B
> fillColor=`#00DBFF`,leftSide=`true`
#### Enable sulpport of multiline merging for //$ and //$$
> fillColor=`#49EFB6`
### /M:
> fillColor=`#00DBFF`,leftSide=`true`
#### allows select keep comment processor<br/>to remove selected kind of commented lines
> fillColor=`#49EFB6`
##### /M:remove\_jcp\_only
> fillColor=`#FFC800`
##### allowed values
> fillColor=`#FFCC71`
###### true
> fillColor=`#FFCC71`
####### same as keep\_all
> fillColor=`#49EFB6`,topicLinkUID=`18C52A4D054A`
- TOPIC
<pre>18C52A4EDD2A</pre>
###### false
> fillColor=`#FFCC71`
####### same as remove\_c\_style
> fillColor=`#49EFB6`
- TOPIC
<pre>18C52A5933DA</pre>
###### keep\_all
> fillColor=`#FFCC71`,topicLinkUID=`18C52A4EDD2A`
####### to not remove comments
> fillColor=`#49EFB6`
###### remove\_c\_style
> fillColor=`#FFCC71`,topicLinkUID=`18C52A5933DA`
####### remove all comments in C style
> fillColor=`#49EFB6`
###### remove\_jcp\_only
> fillColor=`#FFCC71`
####### remove only comment lines related to JCP
> fillColor=`#49EFB6`
## DSL
> leftSide=`true`
### Directives
> fillColor=`#00FFFF`
#### //\#local \<var name\>=\<expression\>
> fillColor=`#00FFFF`
##### define local variable
> fillColor=`#49EFB6`
###### //\#local somevar="Hello world"
> fillColor=`#FFC800`
#### //\#if \<bool expression\>\.\.//\#else\.\.//\#endif
> fillColor=`#00FFFF`
##### conditional execution<br/>needs boolean expression
> fillColor=`#49EFB6`
###### //\#if boovar<br/>\.\.\.<br/>//\#else<br/>\.\.\.<br/>//\#endif
> align=`left`,fillColor=`#FFC800`
#### //\#ifdefined \<variable name\>\.\.\.//\#else\.\.//\#endif
> fillColor=`#00FFFF`,leftSide=`true`
##### conditional execution<br/>checks that a variable is defined
> fillColor=`#49EFB6`
###### //\#ifdefined <br/>\.\.\.<br/>//\#else<br/>\.\.\.<br/>//\#endif
> align=`left`,fillColor=`#FFC800`
##### //\#ifdef\.\.\.//\#else\.\.\.//\#endif
> fillColor=`#FFDB00`
#### //\#ifndef \<variable name\>\.\.//\#else\.\.//\#endif
> fillColor=`#00FFFF`,leftSide=`true`
##### conditional execution<br/>checks that a variable is not defined
> fillColor=`#49EFB6`
###### //\#ifndef svar<br/>\.\.\.<br/>//\#else<br/>\.\.\.<br/>//\#endif
> align=`left`,fillColor=`#FFC800`
#### //\#while \<bool expression\>\.\.//\#break\.\.//\#continue\.\.//\#end
> fillColor=`#00FFFF`,leftSide=`true`
##### conditional execution<br/>while expression result is TRUE
> fillColor=`#49EFB6`
###### //\#while a\>0<br/>\.\.\.<br/>//\#break<br/>\.\.\.<br/>//\#continue<br/>\.\.\.<br/>//\#end
> align=`left`,fillColor=`#FFC800`
#### //\#exitif \<bool expression\>
> fillColor=`#00FFFF`,leftSide=`true`
##### conditional end of current file preprocessing<br/>return to calling file if presented
> fillColor=`#49EFB6`
###### //\#exitif avar="hello"
> fillColor=`#FFC800`
#### //\#exit
> fillColor=`#00FFFF`,leftSide=`true`
##### end of current file preprocessing<br/>return to calling file if presented
> fillColor=`#49EFB6`
#### //\#outdir \<str expression\>
> fillColor=`#00FFFF`,leftSide=`true`
##### set output directory for preprocessing file
> fillColor=`#49EFB6`
###### //\#outdir "some/folder"
> fillColor=`#FFC800`
#### //\#\[\+|\-\]
> fillColor=`#00FFFF`,leftSide=`true`
##### turn on \(\+\) and turn off \(\-\) preprocessing
> fillColor=`#49EFB6`
###### preprocessed<br/>//\#\-<br/>non preprocessed<br/>//\#\+<br/>preprocessed
> align=`left`,fillColor=`#FFC800`
#### //\#outname \<str expression\>
> fillColor=`#00FFFF`,leftSide=`true`
##### set result name for preprocessing file
> fillColor=`#49EFB6`
###### //\#outname "some\.java"
> fillColor=`#FFC800`
#### //\#//
> fillColor=`#00FFFF`,leftSide=`true`
##### comment next line
> fillColor=`#49EFB6`
###### //\#//<br/>line to be commented
> align=`left`,fillColor=`#FFC800`
#### //\#definel \<var name\>
> fillColor=`#00FFFF`,leftSide=`true`
##### define a local boolean variable as TRUE
> fillColor=`#49EFB6`
###### //\#definel newvar
> fillColor=`#FFC800`
#### //\#define \<var name\>
> fillColor=`#00FFFF`,leftSide=`true`
##### define a global boolean variable as TRUE
> fillColor=`#49EFB6`
###### //\#define newglobal
> fillColor=`#FFC800`
#### //\#undef \<var name\>
> fillColor=`#00FFFF`,leftSide=`true`
##### remove variable if exists
> fillColor=`#49EFB6`
###### //\#undef newvar
> fillColor=`#FFC800`
#### //\#flush
> fillColor=`#00FFFF`,leftSide=`true`
##### force flushing of current buffer states to disk<br/>and clear internal buffers
> fillColor=`#49EFB6`
#### //\#include \<str expression\>
> fillColor=`#00FFFF`,leftSide=`true`
##### include preprocess result of defined file into position
> fillColor=`#49EFB6`
###### //\#include "some\.java"
> fillColor=`#FFC800`
#### //\#action
> fillColor=`#00FFFF`,leftSide=`true`
##### make call to user extension<br/>with comma separated arguments\.<br/>Its logic can be tuned through a preprocessor extennsion class
> fillColor=`#49EFB6`
###### //\#action 1000,"hello",123
> fillColor=`#FFC800`
####### It requires a preprocessor extension
> fillColor=`#FF3700`,mmd.emoticon=`error`,textColor=`#FFFFFF`
#### //\#postfix\[\+|\-\]
> fillColor=`#00FFFF`,leftSide=`true`
##### turn on \(\+\) or turn off \(\-\) output into postfix section
> fillColor=`#49EFB6`
###### some text<br/>//\#postfix\+<br/>it will be in the end<br/>//\#postfix\-<br/>other text
> align=`left`,fillColor=`#FFC800`
#### //\#prefix\[\+|\-\]
> fillColor=`#00FFFF`,leftSide=`true`
##### turn on \(\+\) or turn off \(\-\) output into prefix section
> fillColor=`#49EFB6`
###### some text<br/>//\#prefix\+<br/>it will be in the beginning<br/>//\#prefix\-<br/>other text
> align=`left`,fillColor=`#FFC800`
#### //\#global \<var name\>=\<expression\>
> fillColor=`#00FFFF`,leftSide=`true`
##### define a global variable value
> fillColor=`#49EFB6`
###### //\#global debug=true
> fillColor=`#FFC800`
#### //\#\_if\.\.//\#\_else\.\.//\#\_endif
> fillColor=`#00FFFF`,leftSide=`true`
##### special condition to be checked during 1st preprocessing pass<br/>works with global variables
> fillColor=`#49EFB6`
###### //\#\_if debug<br/>\.\.\.<br/>//\#\_else<br/>\.\.\.<br/>//\#\_endif
> align=`left`,fillColor=`#FFC800`
#### //\#excludeif \<bool expression\>
> fillColor=`#00FFFF`,leftSide=`true`
##### exclude file from preprocessing<br/>if boolean expression returns true
> fillColor=`#49EFB6`
###### //\#excludeif debug
> fillColor=`#FFC800`
#### //\#error \<text\>
> fillColor=`#00FFFF`,leftSide=`true`
##### stop work and generate exception with notification<br/>macroses allowed
> fillColor=`#49EFB6`
###### //\#error unexpected value /\*$var1$\*/
> fillColor=`#FFC800`
#### //\#warning \<text\>
> fillColor=`#00FFFF`,leftSide=`true`
##### log text as warning<br/>macroses allowed
> fillColor=`#49EFB6`
###### //\#warning be careful with /\*$var4$\*/
> fillColor=`#FFC800`
#### //\#echo \<text\>
> fillColor=`#00FFFF`,leftSide=`true`
##### log text as info<br/>macroses allowed
> fillColor=`#49EFB6`
###### //\#echo the line /\*$\_\_line\_\_$\*/
> fillColor=`#FFC800`
#### //\#msg \<text\>
> fillColor=`#00FFFF`,leftSide=`true`
##### log text as info<br/>macroses allowed, if verbose mode then stack will be printed
> fillColor=`#49EFB6`
###### //\#msg some info
> fillColor=`#FFC800`
#### //\#noautoflush
> fillColor=`#00FFFF`,leftSide=`true`
##### turn off autoflush for EOF
> fillColor=`#49EFB6`
#### //\#abort \<text\>
> fillColor=`#00FFFF`,leftSide=`true`
##### abort preprocessing and show message<br/>macroses allowed
> fillColor=`#49EFB6`
###### //\#abort thats all\!
> fillColor=`#FFC800`
#### //$
> fillColor=`#00FFFF`,leftSide=`true`
##### remove comment and print result with macross processing
> fillColor=`#49EFB6`
###### //$ some line with /\*$var$\*/
> fillColor=`#FFC800`
####### Special case //$""" means merging of text lines<br/>before providing them to an external processor
> fillColor=`#FFC800`
#### //$$
> fillColor=`#00FFFF`,leftSide=`true`
##### remove comment and print result, macroses ignored
> fillColor=`#49EFB6`
###### //$$ some line with /\*$nonprocessed macroses$\*/
> fillColor=`#FFC800`
####### Special case //$$""" means merging of text lines<br/>before providing them to an external processor
> fillColor=`#FFC800`
#### /\*\-\*/
> fillColor=`#00FFFF`,leftSide=`true`
##### drop tail of line
> fillColor=`#49EFB6`
###### some line/\*\-\*/dropped part
> fillColor=`#FFC800`
### Data types
> fillColor=`#FFC800`,leftSide=`true`
#### boolean
> fillColor=`#FFC800`
##### true
> fillColor=`#FFC800`
##### false
> fillColor=`#FFC800`,leftSide=`true`
#### integer
> fillColor=`#FFC800`,leftSide=`true`
##### signed 64 bit
###### 234567, 0x56FE
> fillColor=`#FFC800`
#### float
> fillColor=`#FFC800`,leftSide=`true`
##### signed 32 bit
###### 0\.745
> fillColor=`#FFC800`
#### string
> fillColor=`#FFC800`,leftSide=`true`
##### "hello world"
> fillColor=`#FFC800`
### Operators
> fillColor=`#FFFF00`,leftSide=`true`
#### ==, \>, \>=, \<, \<=, \!=
> fillColor=`#FFFF00`
#### \+,\-,\*,/,%
> fillColor=`#FFFF00`,leftSide=`true`
#### \!, &&, ||, ^
> fillColor=`#FFFF00`,leftSide=`true`
### Functions
> fillColor=`#FFC67D`,leftSide=`true`
#### INT|FLOAT abs\(INT|FLOAT\)
> fillColor=`#00B6FF`,textColor=`#FFFFFF`
#### INT round\(INT|FLOAT\)
> fillColor=`#00B6FF`,leftSide=`true`,textColor=`#FFFFFF`
#### BOOL is\(STR,ANY\)
> fillColor=`#00B6FF`,leftSide=`true`,textColor=`#FFFFFF`
#### STR evalfile\(STR\)
> fillColor=`#00B6FF`,leftSide=`true`,textColor=`#FFFFFF`
#### STR binfile\(STR, STR\)
> fillColor=`#00B6FF`,leftSide=`true`,textColor=`#FFFFFF`
#### string processing
> fillColor=`#FFCC71`
##### BOOL issubstr\(STR,STR\)
> fillColor=`#00B6FF`,textColor=`#FFFFFF`
##### INT strlen\(STR\)
> fillColor=`#00B6FF`,textColor=`#FFFFFF`
##### STR trimlines\(STR\)
> fillColor=`#00B6FF`,textColor=`#FFFFFF`
##### STR esc\(STR\)
> fillColor=`#00B6FF`,textColor=`#FFFFFF`
##### INT str2int\(STR\)
> fillColor=`#00B6FF`,textColor=`#FFFFFF`
##### STR str2web\(STR\)
> fillColor=`#00B6FF`,textColor=`#FFFFFF`
##### STR str2csv\(STR\)
> fillColor=`#00B6FF`,textColor=`#FFFFFF`
##### STR str2js\(STR\)
> fillColor=`#00B6FF`,textColor=`#FFFFFF`
##### STR str2json\(STR\)
> fillColor=`#00B6FF`,textColor=`#FFFFFF`
##### STR str2xml\(STR\)
> fillColor=`#00B6FF`,textColor=`#FFFFFF`
##### STR str2java\(STR\)
> fillColor=`#00B6FF`,textColor=`#FFFFFF`
##### STR str2go\(STR\)
> fillColor=`#00B6FF`,textColor=`#FFFFFF`
#### xml functions
> fillColor=`#FFCC71`,leftSide=`true`
##### STR xml\_get\(STR, INT\)
> fillColor=`#00B6FF`,textColor=`#FFFFFF`
##### INT xml\_size\(STR\)
> fillColor=`#00B6FF`,leftSide=`true`,textColor=`#FFFFFF`
##### STR xml\_attr\(STR, STR\)
> fillColor=`#00B6FF`,leftSide=`true`,textColor=`#FFFFFF`
##### STR xml\_root\(STR\)
> fillColor=`#00B6FF`,leftSide=`true`,textColor=`#FFFFFF`
##### STR xml\_name\(STR\)
> fillColor=`#00B6FF`,leftSide=`true`,textColor=`#FFFFFF`
##### STR xml\_list\(STR, STR\)
> fillColor=`#00B6FF`,leftSide=`true`,textColor=`#FFFFFF`
##### STR xml\_text\(STR\)
> fillColor=`#00B6FF`,leftSide=`true`,textColor=`#FFFFFF`
##### STR xml\_open\(STR\)
> fillColor=`#00B6FF`,leftSide=`true`,textColor=`#FFFFFF`
##### STR xml\_xlist\(STR, STR\)
> fillColor=`#00B6FF`,leftSide=`true`,textColor=`#FFFFFF`
##### STR xml\_xelement\(STR, STR\)
> fillColor=`#00B6FF`,leftSide=`true`,textColor=`#FFFFFF`
#### User defined functions
> fillColor=`#FFC67D`,leftSide=`true`
##### $\<function\_name\>\(\.\.\.\)
> fillColor=`#00B6FF`,textColor=`#FFFFFF`
###### It requires a preprocessor extension
> fillColor=`#FF3700`,mmd.emoticon=`error`,textColor=`#FFFFFF`
### special variables
> fillColor=`#5BEBA4`,leftSide=`true`
#### jcp\.version
> fillColor=`#5BEBA4`
##### preprocessor version
##### read only
> fillColor=`#FF0000`,textColor=`#FFFFFF`
#### jcp\.src\.path
> fillColor=`#5BEBA4`,leftSide=`true`
##### full path to preprocessing source file
##### \_\_file\_\_
##### read only
> fillColor=`#FF0000`,leftSide=`true`,textColor=`#FFFFFF`
#### jcp\.src\.dir
> fillColor=`#5BEBA4`,leftSide=`true`
##### Preprocessing file folder
##### \_\_filefolder\_\_
##### read only
> fillColor=`#FF0000`,textColor=`#FFFFFF`
#### jcp\.src\.name
> fillColor=`#5BEBA4`,leftSide=`true`
##### Preprocessing file name
##### \_\_filename\_\_
##### read only
> fillColor=`#FF0000`,leftSide=`true`,textColor=`#FFFFFF`
#### \_\_line\_\_
> fillColor=`#5BEBA4`,leftSide=`true`
##### number of preprocessing line
##### read only
> fillColor=`#FF0000`,leftSide=`true`,textColor=`#FFFFFF`
#### jcp\.dst\.path
> fillColor=`#5BEBA4`,leftSide=`true`
##### destination file path
##### read only
> fillColor=`#FF0000`,leftSide=`true`,textColor=`#FFFFFF`
#### jcp\.dst\.dir
> fillColor=`#5BEBA4`,leftSide=`true`
##### destination folder
#### jcp\.dst\.name
> fillColor=`#5BEBA4`,leftSide=`true`
##### destination file name
#### \_\_time\_\_
> fillColor=`#5BEBA4`,leftSide=`true`
##### current time<br/>HH:mm:ss
#### \_\_date\_\_
> fillColor=`#5BEBA4`,leftSide=`true`
##### current date<br/>MMM dd yyyy
#### \_\_timestamp\_\_
> fillColor=`#5BEBA4`,leftSide=`true`
##### source file timestamp<br/>EEE MMM dd HH:mm:ss yyyy
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: README.md
================================================

[](http://www.apache.org/licenses/LICENSE-2.0)
[](https://search.maven.org/#artifactdetails|com.igormaznitsa|jcp|7.3.0|jar)
[](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
[](https://maven.apache.org/)
[](https://gradle.org/)
[](http://ant.apache.org/)
[](https://www.arthursacresanimalsanctuary.org/donate)
# Changelog
__7.3.0 (11-okt-2025)__
- added way to manipulate current JCP text buffers as string variables: `jcp.text.buffer.all`,`jcp.text.buffer.middle`,
`jcp.text.buffer.prefix` and `jcp.text.buffer.postfix`
- added way to find `PreprocessorExtension` and `SpecialVariableProcessor` among Java services
- refactoring of API for `SpecialVariableProcessor` and `CommentTextProcessor`
- replaced single string property `actionPreprocessorExtension` by string list `actionPreprocessorExtensions` to provide
way for many preprocessor extensions.
- internal refactoring mainly to provide way for multiple external services implementing extensions
__7.2.1 (21-jul-2025)__
- refactoring of CommentTextProcessor call
- refactoring
[Full changelog](https://github.com/raydac/java-comment-preprocessor/blob/master/changelog.txt)
# Introduction
Originally developed in 2002, the preprocessor tool emerged from the need to manage diverse sources for J2ME devices efficiently. It aimed to streamline altering specific calls' positions across different devices, optimizing the development process. With Java as the primary technology, the tool was fine-tuned for C/Java family languages, capitalizing on their import sections and C-comment style.
Initially a closed project, it transitioned to an open-source initiative in 2011. Today, it stands out as a potent two-pass Java preprocessor, adept at understanding document structure (prefix, body, and postfix), incorporating loops, and utilizing XML files as data sources. Its capabilities extend to generating static websites.
The preprocessor now exists as a comprehensive uber-jar bundled with interface code for Maven, ANT, and Gradle, seamlessly integrating with these tools. It requires a minimum JDK of version 1.8.
Moreover, various Linux repositories offer the preprocessor as a package, commonly named `libcomment-preprocessor-java`, simplifying its accessibility for users.
# Mind map with all options

# How to use
The Preprocessor can work as:
- CLI tool
- Java JAR-library
- [Maven goal](jcp-tests/jcp-test-maven) [_(generated Maven mojo site)_](https://raydac.github.io/jcp-maven-plugin-site/index.html)
- [ANT task](jcp-tests/jcp-test-ant)
- [Gradle task](jcp-tests/jcp-test-gradle)
The preprocessor has been published in [the Maven Central](https://search.maven.org/artifact/com.igormaznitsa/jcp).
```
<build>
<plugins>
...
<plugin>
<groupId>com.igormaznitsa</groupId>
<artifactId>jcp</artifactId>
<version>7.3.0</version>
<executions>
<execution>
<id>preprocessSources</id>
<phase>generate-sources</phase>
<goals>
<goal>preprocess</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
```
# How to use from command line
The uber-jar can be started directly under Java through CLI interface. Let's take a look at short example below how to start it in command line under Linux:
```
java -jar jcp-7.3.0.jar --i:./test --o:./result
```
The example above just preprocessing files from ./test folder (which extensions allowed to be preprocessed by default), and placing result files into ./result folder. Keep in your mind that the preprocessor processing not all files, for instance XML files will not be preprocessed by default. Files which extension not marked for preprocessing will be just copied (of course if the extensions is not in the excluded extension list)
More complex example:
```
java -jar jcp-7.3.0.jar --c --r --v --f:java,xml --ef:none --i:./test --o:./result '--p:HelloWorld=$Hello world$'
```
- --c clear the destination folder before work
- --r remove all Java-style comments from preprocessed result files
- --v show verbose log about preprocessing process
- --f include .java and .xml files into preprocessing (by default the preprocessor doesn't preprocess XNL files and the extension should to be defined explicitly)
- --ef don't exclude any extension from preprocessing
- --i use ./test as source folder
- --o use ./result as destination folder
- --p define named global variable HelloWorld? with the 'Hello world' content
- --z turn on checking of file content before replacement, if the same content then preprocessor will not replace the file
- --es allow whitespace between comment and directive (by default it is turned off)
# Some examples
- [Prepare sources for Javassist](jcp-tests/jcp-test-javassist)
- [Make multi-versioned JAR for JEP-238](jcp-tests/jcp-test-jep238)
- [Generate static file from XML sources](jcp-tests/jcp-test-static-site)
- [Simple Android Gradle-based project](jcp-tests/jcp-test-android)
# Example of Java sources with directives
In Java the only allowed way to inject directives and to not break work of tools and compilers - is to use commented space, so that the preprocessor uses it.
```Java
//#local TESTVAR="TEST LOCAL VARIABLE"
//#echo TESTVAR=/*$TESTVAR$*/
//#include "./test/_MainProcedure.java"
public static final void testproc()
{
System.out.println(/*$VARHELLO$*/);
System.out.println("// Hello commentaries");
//#local counter=10
//#while counter!=0
System.out.println("Number /*$counter$*/");
//#local counter=counter-1
//#end
System.out.println("Current file name is /*$SRV_CUR_FILE$*/");
System.out.println("Output dir is /*$SRV_OUT_DIR$*/");
//#if issubstr("Hello","Hello world")
System.out.println("Substring found");
//#endif
}
```
# Multi-sectioned documents
In opposite a regular document, a Java document has as minimum two sections - prefix (where situated import and special information) and body. For access to such sections there are special preprocessing directives `//#prefix[-|+]`, `//#postfix[-|+]`. They allow turning on or off output into prefix and postfix sections.
```Java
//#prefix+
import java.lang.*;
//#prefix-
public class Main {
//#prefix+
import java.util.*;
//#prefix-
public static void main(String ... args){}
}
```
# How to remove all comments from sources
Sometimes it is very useful to remove totally all comments from sources, such possibility included into JCP and can be activated with either a special flag or command line switcher. The example below shows how to remove all comments with CLI use:
```
java -jar ./jcp-7.3.0.jar --i:/sourceFolder --o:/resultFolder -ef:none --r
```
================================================
FILE: changelog.txt
================================================
__7.3.0 (11-okt-2025)__
- added way to manipulate current JCP text buffers as string variables: `jcp.text.buffer.all`,`jcp.text.buffer.middle`,`jcp.text.buffer.prefix` and `jcp.text.buffer.postfix`
- added way to find `PreprocessorExtension` and `SpecialVariableProcessor` among Java services
- refactoring of API for `SpecialVariableProcessor` and `CommentTextProcessor`
- replaced single string property `actionPreprocessorExtension` by string list `actionPreprocessorExtensions` to provide way for many preprocessor extensions.
- internal refactoring mainly to provide way for multiple external services implementing extensions
__7.2.1 (21-jul-2025)__
- refactoring of CommentTextProcessor call
- refactoring
__7.2.0 (13-jul-2025)__
- minimum JDK version 11
- added support for external processors calls during uncommenting actions `//$` and `//$$`, processors can be provided as services
- removed support of Gradle 5
- updated dependencies
__7.1.2 (08-jun-2024)__
- added way to define a preprocessor extension class through CLI (as `/EA:<class.name>`) and in plugins (as `actionPreprocessorExtension`). The class should be provided in the clas path.[#48](https://github.com/raydac/java-comment-preprocessor/issues/48)
- updated some dependencies
__7.1.1 (13-jan-2024)__
- fixed NPE for empty or null global variable value in Maven and Gradle [#47](https://github.com/raydac/java-comment-preprocessor/issues/47)
- updated dependencies
__7.1.0 (10-dec-2023)__
- refactoring of internal API
- updated dependencies
- improved keep comments processing, added `/M:<type>` CLI option [#46](https://github.com/raydac/java-comment-preprocessor/issues/46)
__7.0.5 (11-dec-2021)__
- fixed compatibility with Gradle 7.x
- added support of build under JDK 16
- updated dependencies
7.0.4 (26-sep-2020)
- fixed default flag state `keep comments` for start in CLI mode [#24](https://github.com/raydac/java-comment-preprocessor/issues/24)
- fixed working directory detection in CLI mode
7.0.3 (13-sep-2020)
- added way to get info about all input and produced files from preprocessor context
- reworked Gradle plug-in, removed extension and now properties should be directly provided for task [#21](https://github.com/raydac/java-comment-preprocessor/issues/21)
- refactoring, removed some auxiliary plugins from build process and extra code
7.0.2 (15-jul-2019)
- fixed leaks of system scoped dependencies in generated pom.xml
7.0.1 (19-apr-2019)
- minor refactoring
7.0.0 (31-mar-2019)
- reworked some parameters for Maven and ANT plug-ins
- added embedded Gradle plugin `com.igormaznitsa.jcp`
- removed maven `clear` goal
- removed maven `preprocessTest` goal (use flag `useTestSources` instead)
- added function `STR esc(STR)`
- fixed build under JDK 9+
- XML functions work through embedded [Apache Xalan](https://xalan.apache.org/) and [Apache Xerces](http://xerces.apache.org/)
- minimal needed Java version changed to 1.8
- refactoring
6.1.4 (16-jun-2018)
- removed dependencies to meta packages (their sources moved into project) #19
6.1.3 (29-apr-2018)
- added automatic module name `igormaznitsa.jcp`
- CORE: added `/U` key to turn on mode to interpret unknown variables as FALSE (in Maven and ANT `unknownVarAsFalse`), [#17](https://github.com/raydac/java-comment-preprocessor/issues/17)
6.1.2 (02-apr-2017)
- CORE: added STR TRIMLINES(STR) function to trim lines represented as string and removing empty lines
- CORE: added `/A` command line option (`copyFileAttributes` in Maven and ANT) to copy file attributes
- CORE: added `/ED:` command line option to exclude sub-folders from preprocessing (`excludedFolders` in Maven and ANT) with ANT pattern support.
- CORE: added `/PI` command line flag (`preserveIndent` in Maven and ANT), turn on mode to preserve indent when removing `//$` and `//$$`, thanks to @jamuir
- CORE: comma in split lines in BINFILE function moved from the start of line to the end of the previous line (to increase compatibility with Go)
6.1.1 (11-feb-2017)
- MAVEN: information about imported maven properties will be shown only in either verbose mode or debug mode
- MAVEN: added auxiliary goal `preprocessTests` which provides flag `useTestSources` as true and activated by default in GENERATE_TEST_SOURCES phase #14
- MAVEN: added 'ignoreMissingSources' boolean parameter, allows to skip preprocessing if source folders not found or not provided #12
- MAVEN: added 'skip'boolean parameter, it allows to skip execution, also it is possible to use `-Djcp.preprocess.skip=true` #13
- CORE: added function `BOOL is(STR,ANY)` to check existence of variable for its name and compare its value with etalon (through string conversion, it will ensure true for `true` and `"true"` case), #10
- CORE: added `STR str2go(STR)` function to escape strings to be represented in Golang sources
- CORE: improved the BINFILE function, it allows `base64|byte[]|uint8[]|int8` and modifiers `s|d|ds|sd` where s - means splitting to lines and d - means deflate compression
6.1.0 (03-jul-2016)
- implemented request #9, added support of whitespace between directive and comment, in command line it is `--es` option and in MAVEN and ANT it is boolean parameter `allowWhitespace`, by default it is turned off
- added function STR binfile(STR,STR) to load a bin file as encoded base64 or java byte array string
- changes in Preprocessor API, removed usage of null instead of PreprocessorContext or PreprocessingState as argument for many methods, improved tests
- fixed #8 issue, fixed work with absolute paths in //#include and evalfile(), added tests
- refactoring
6.0.1
- improved the MAVEN plugin to hide content of potentially sensitive properties from printing into Maven log (issue #2)
- added --z option ('compareDestination' in MAVEN and ANT) to check content of existing result file and to not replace it if content equals (issue #1), by default turned off because makes some overhead
- fixed --c argument usage in CLI, now by default the preprocessor started in CLI doesn't clear its output folder, use --c to turn it on
- improved tests
- minor bug-fixing
6.0.0
- bugfixing and log improvement
- RENAMED DIRECTIVE! //#assert renamed to appropriate name //#echo
- RENAMED FUNCTIONS! renamed XML functions to more appropriate and short names
- xml_getRoot to xml_root
- xml_elementAt to xml_get
- xml_elementsNumber to xml_size
- xml_getAttribute to xml_attr
- xml_getElementName to xml_name
- xml_getElementsForName to xml_list
- xml_getElementText to xml_text
- fixed //#exit and //#exitif behavior to prevent total exit and return level up in include stack
- added //#abort directive to provide possibility to stop preprocessing immediately without errors
- added function 'STR evalfile(STR)' for local preprocessing of a file body and return it as a string
- added predefined variables 'line','filename','filefolder' and 'file' which allow to get name and path parameters for the current preprocessing file path
- added predefined variables 'time','date' and 'timestamp' which work similar C++ predefined macroses
- added function 'STR str2java(STR,BOOL)' to escape and split string to be presented as java sources
- added functions 'STR str2js(STR)', 'STR str2json(STR)','STR str2xml(STR)' and 'STR str2csv(STR)'
- added functions 'STR xml_xlist(STR,STR)' and 'STR xml_xelement(STR,STR)' which allow to use xpath to get element lists an elements
- apache common-io and common-lang libraries have been packed into the jar and hidden
- added the short variant '//#ifdef BOOL' for '//#ifdefined BOOL'
- added '//#ifndef BOOL' to check that a variable is undefined
- added '//#definel NAME' and '//#define NAME' to define local and global variables, they can use not only the default TRUE value for defined variables, but also result of expression (example: //#define ten 2*5)
- added '//#undef NAME' to remove a variable definition from context
- added '//#error EXPR' and '//#warning EXPR' directives to throw exception and log warnings
- added support of custom line separator through the 'jcp.line.separator' system property
- added '//#noautoflush' to prevent auto saving text buffers after file preprocessing
5.3.4
- added support of test source folder preprocessing for maven projects
- added the "clear" maven goal to clear created preprocessing folders or any defined folders and files
- by default the maven plugin trying to keep numeration of lines in preprocessed files (the 'keepLines' is true by default)
5.3.3
- fixed the bug in the comment removing (multiple stars before closing slash)
- fixed the exception if there is not any organization tag in a project pom.xml
- added support for '-' and '--' prefixes in CLI arguments
- improved CLI argument error messaging
- the license has been changed to Apache 2.0
5.3.2
- very minor refactoring.
- fixed issue (ID 5) "Removing strings contain only spaces"
- the first version published in the maven central
5.3.1
- very minor bug-fixing, added the main-class attribute in the preprocessor JAR Manifest
5.3
- Added feature to keep non-executing lines as commented ones (/k command line key), all non-executing lines will be saved in the output as commented ones
5.2
- Fixed issue (ID 3). The default charset was used to read text files.
5.1
- Fixed issue (ID 1). Inaccessible functionality both "load a file with global variables" and "define global variable" through a command line call.
5.0
- The initial published version of totally reworked preprocessor
================================================
FILE: jcp/pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.igormaznitsa</groupId>
<artifactId>jcp-pom</artifactId>
<version>7.3.0</version>
</parent>
<artifactId>jcp</artifactId>
<packaging>maven-plugin</packaging>
<name>Java Comment Preprocessor</name>
<description>Powerful multi-pass preprocessor to process directives situated in C-styled commentaries</description>
<repositories>
<repository>
<id>gradle-releases-repository</id>
<url>https://repo.gradle.org/gradle/libs-releases-local/</url>
</repository>
</repositories>
<properties>
<gradle.api.version>6.0</gradle.api.version>
</properties>
<profiles>
<profile>
<id>site</id>
<properties>
<mojo.site.dir>${project.basedir}/../mojo-doc-site</mojo.site.dir>
</properties>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-report-plugin</artifactId>
</plugin>
</plugins>
</reporting>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<executions>
<execution>
<id>delete-project-site</id>
<goals>
<goal>clean</goal>
</goals>
<phase>clean</phase>
<configuration>
<excludeDefaultDirectories>true</excludeDefaultDirectories>
<failOnError>true</failOnError>
<filesets>
<fileset>
<directory>${mojo.site.dir}</directory>
</fileset>
</filesets>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<executions>
<execution>
<id>generate-project-site</id>
<goals>
<goal>site</goal>
</goals>
<phase>verify</phase>
<configuration>
<outputDirectory>${mojo.site.dir}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>publish</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>make-bundle</id>
<phase>install</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/assemble/bundle.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>generate-javadoc</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<!--<failOnError>false</failOnError>-->
<source>${maven.compiler.release}</source>
<legacyMode>true</legacyMode>
<failOnError>false</failOnError>
<sourceFileExcludes>
<exclude>**/HelpMojo.java</exclude>
</sourceFileExcludes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>generate-sources</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.nicoulaj.maven.plugins</groupId>
<artifactId>checksum-maven-plugin</artifactId>
<version>1.11</version>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>files</goal>
</goals>
<configuration>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
<includes>
<include>*.jar</include>
<include>*.pom</include>
</includes>
</fileSet>
</fileSets>
<algorithms>
<algorithm>SHA-1</algorithm>
<algorithm>MD5</algorithm>
</algorithms>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.10.15</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>${min.maven.api}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>${min.maven.api}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>${min.maven.api}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>file-management</artifactId>
<version>3.2.0</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.19.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.19.0</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.12.2</version>
</dependency>
<dependency>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.38</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-compat</artifactId>
<version>${min.maven.api}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>${min.maven.api}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact-manager</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-testing</groupId>
<artifactId>maven-plugin-testing-harness</artifactId>
<version>2.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.gradle</groupId>
<artifactId>gradle-core</artifactId>
<version>${gradle.api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.gradle</groupId>
<artifactId>gradle-core-api</artifactId>
<version>${gradle.api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.gradle</groupId>
<artifactId>gradle-model-core</artifactId>
<version>${gradle.api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.gradle</groupId>
<artifactId>gradle-logging</artifactId>
<version>${gradle.api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.gradle</groupId>
<artifactId>gradle-base-services</artifactId>
<version>${gradle.api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.gradle</groupId>
<artifactId>gradle-base-services-groovy</artifactId>
<version>${gradle.api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.gradle</groupId>
<artifactId>gradle-plugins</artifactId>
<version>${gradle.api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.gradle</groupId>
<artifactId>gradle-tooling-api</artifactId>
<version>${gradle.api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>2.5.14</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>/jcpversion.properties</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/jcpversion.properties</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>jcp-check-enforce-rules</id>
<configuration>
<rules>
<banDuplicatePomDependencyVersions/>
<enforceBytecodeVersion>
<maxJdkVersion>${maven.compiler.release}</maxJdkVersion>
<ignoredScopes>
<scope>test</scope>
<scope>provided</scope>
</ignoredScopes>
</enforceBytecodeVersion>
<banCircularDependencies>
<ignoredScopes>
<scope>test</scope>
<scope>provided</scope>
</ignoredScopes>
</banCircularDependencies>
<reactorModuleConvergence>
<ignoreModuleDependencies>true</ignoreModuleDependencies>
</reactorModuleConvergence>
<requireJavaVersion>
<version>[${maven.compiler.release},)</version>
</requireJavaVersion>
<requireMavenVersion>
<version>[${min.maven.api},)</version>
</requireMavenVersion>
<banDuplicateClasses>
<scopes>
<scope>compile</scope>
</scopes>
<findAllDuplicates>true</findAllDuplicates>
<ignoreWhenIdentical>true</ignoreWhenIdentical>
</banDuplicateClasses>
</rules>
</configuration>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>extra-enforcer-rules</artifactId>
<version>1.10.0</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>com.igormaznitsa</groupId>
<artifactId>uber-pom</artifactId>
<version>1.0.3</version>
<configuration>
<removeDependencies>
<dependency>
<systemPath>*</systemPath>
</dependency>
</removeDependencies>
<remove>
<section>parent</section>
<section>modules</section>
<section>profiles/profile/modules</section>
</remove>
<removeSiblingDuplications>true</removeSiblingDuplications>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>upom</goal>
</goals>
<configuration>
<enforceInjecting>true</enforceInjecting>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.20.0</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>delombok</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<configuration>
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
</configuration>
<executions>
<execution>
<id>mojo-descriptor</id>
<goals>
<goal>descriptor</goal>
</goals>
</execution>
<execution>
<id>help-goal</id>
<goals>
<goal>helpmojo</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<relocations>
<relocation>
<pattern>javax.xml</pattern>
<shadedPattern>hidden.jcp.javax.xml</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.commons</pattern>
<shadedPattern>hidden.jcp.org.apache.commons</shadedPattern>
</relocation>
<relocation>
<pattern>license</pattern>
<shadedPattern>hidden.jcp.license</shadedPattern>
</relocation>
<relocation>
<pattern>org.xml</pattern>
<shadedPattern>hidden.jcp.org.xml</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.xpath</pattern>
<shadedPattern>hidden.jcp.org.apache.xpath</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.xml</pattern>
<shadedPattern>hidden.jcp.org.apache.xml</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.wml</pattern>
<shadedPattern>hidden.jcp.org.apache.wml</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.regexp</pattern>
<shadedPattern>hidden.jcp.org.apache.regexp</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.html</pattern>
<shadedPattern>hidden.jcp.org.apache.html</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.bcel</pattern>
<shadedPattern>hidden.jcp.org.apache.bcel</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.xerces</pattern>
<shadedPattern>hidden.jcp.org.apache.xerces</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.xalan</pattern>
<shadedPattern>hidden.jcp.org.apache.xalan</shadedPattern>
</relocation>
<relocation>
<pattern>org.w3c</pattern>
<shadedPattern>hidden.jcp.org.w3c</shadedPattern>
</relocation>
<relocation>
<pattern>java_cup</pattern>
<shadedPattern>hidden.jcp.java_cup</shadedPattern>
</relocation>
<relocation>
<pattern>trax</pattern>
<shadedPattern>hidden.jcp.trax</shadedPattern>
</relocation>
<relocation>
<pattern>org.springframework</pattern>
<shadedPattern>hidden.jcp.org.springframework</shadedPattern>
</relocation>
</relocations>
<artifactSet>
<includes>
<include>org.springframework:*</include>
<include>commons-io:*</include>
<include>commons-codec:*</include>
<include>commons-text:*</include>
<include>org.apache.commons:*</include>
<include>xerces:*</include>
<include>xalan:*</include>
<include>com.igormaznitsa:*</include>
<include>xml-apis:*</include>
</includes>
</artifactSet>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/LICENSE.txt</exclude>
<exclude>META-INF/NOTICE.txt</exclude>
<exclude>META-INF/MANIFEST.MF</exclude>
<exclude>META-INF/MANIFEST.txt</exclude>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
<exclude>META-INF/services/javax.xml.*</exclude>
<exclude>META-INF/services/org.apache.*</exclude>
<exclude>META-INF/services/org.w3c.*</exclude>
<exclude>META-INF/services/org.xml.*</exclude>
<exclude>META-INF/versions/9/module-info.class</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.igormaznitsa.jcp.JcpPreprocessor</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.igormaznitsa.jcp.JcpPreprocessor</mainClass>
</manifest>
<manifestEntries>
<Automatic-Module-Name>igormaznitsa.jcp</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgument>-Xlint:all</compilerArgument>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<release>${maven.compiler.release}</release>
<excludes>
<exclude>
**${file.separator}JCPreprocessor${file.separator}src${file.separator}test${file.separator}resources${file.separator}com${file.separator}igormaznitsa${file.separator}jcp${file.separator}it${file.separator}maven${file.separator}dummy_maven_project${file.separator}**${file.separator}*.java
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<test.folder>${project.build.testOutputDirectory}</test.folder>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: jcp/src/assemble/bundle.xml
================================================
<assembly xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>bundle</id>
<includeBaseDirectory>false</includeBaseDirectory>
<includeSiteDirectory>false</includeSiteDirectory>
<formats>
<format>tar.gz</format>
</formats>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>/com/igormaznitsa/${project.artifactId}/${project.version}</outputDirectory>
<includes>
<include>*.jar</include>
<include>*.jar.asc</include>
<include>*.jar.sha1</include>
<include>*.jar.md5</include>
<include>*.pom</include>
<include>*.pom.asc</include>
<include>*.pom.sha1</include>
<include>*.pom.md5</include>
</includes>
<excludes>
<exclude>original*.*</exclude>
<exclude>*.zip</exclude>
</excludes>
</fileSet>
</fileSets>
</assembly>
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/InfoHelper.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp;
import static com.igormaznitsa.jcp.context.JCPSpecialVariableProcessor.getReference;
import static java.util.Objects.requireNonNull;
import static java.util.stream.Collectors.toList;
import com.igormaznitsa.jcp.cmdline.CommandLineHandler;
import com.igormaznitsa.jcp.context.JCPSpecialVariableProcessor;
import com.igormaznitsa.jcp.directives.AbstractDirectiveHandler;
import com.igormaznitsa.jcp.expression.ValueType;
import com.igormaznitsa.jcp.expression.functions.AbstractFunction;
import com.igormaznitsa.jcp.expression.operators.AbstractOperator;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Properties;
public final class InfoHelper {
public static final String DELIMITER = "-------------------------------------------------";
public static final String SHORT_DELIMITER = "----------------------";
public static final String VERSION;
public static final String URL;
public static final int YEAR;
static {
final String path = "/jcpversion.properties";
try (final InputStream stream = InfoHelper.class.getResourceAsStream(path)) {
final Properties props = new Properties();
props.load(stream);
VERSION = requireNonNull(props.getProperty("version"));
URL = requireNonNull(props.getProperty("url"));
YEAR = Integer.parseInt(requireNonNull(props.getProperty("year")).trim());
} catch (IOException ex) {
throw new IllegalStateException("Can't read resource: " + path, ex);
}
}
private InfoHelper() {
}
public static String getVersion() {
return "v" + VERSION;
}
public static String getCopyright() {
return "Copyright (C) 2002-" + YEAR + " Igor A. Maznitsa (https://www.igormaznitsa.com)";
}
public static String getSite() {
return "Project page: " + URL;
}
public static String getProductName() {
return "Java Comment Preprocessor";
}
public static List<String> makeTextForHelpInfo() {
final List<String> result = new ArrayList<>();
result.add(JcpPreprocessor.class.getCanonicalName() + " [@cfgFile] [cliCommands]");
result.add("");
result.add("Command line");
result.add(SHORT_DELIMITER);
result.add("allowed '/','-' and '--' prefixes, '--' doesn't support multiple commands at once");
result.add(makeColumns("@cfgFile", "file contains global definition list", 14));
result.addAll(JcpPreprocessor.getCommandLineHandlers().stream()
.map(InfoHelper::makeCommandLineKeyReference).collect(toList()));
result.add(DELIMITER);
result.add("Directives");
result.add(SHORT_DELIMITER);
for (final AbstractDirectiveHandler handler : AbstractDirectiveHandler.findAllDirectives()) {
result.add(makeDirectiveReference(handler));
}
result.add(DELIMITER);
result.add("Special directives");
result.add(SHORT_DELIMITER);
result
.add(makeSpecialDirectiveReference("//$", "uncomment and process all following macroses"));
result.add(makeSpecialDirectiveReference("//$$", "like //$ but macroses ignored"));
result.add(makeSpecialDirectiveReference("/*-*/", "truncate line"));
result.add("Operators");
result.add(SHORT_DELIMITER);
for (final AbstractOperator handler : AbstractOperator.getAllOperators()) {
result.add(makeOperatorReference(handler));
}
result.add(DELIMITER);
result.add("Functions");
result.add(SHORT_DELIMITER);
for (final AbstractFunction handler : AbstractFunction.findAllFunctions()) {
result.add(makeFunctionReference(handler));
}
result.add(DELIMITER);
result.add("Allowed types");
result.add(SHORT_DELIMITER);
result.add(" BOOL: true,false");
result.add(" INT: 2374,0x56FE (signed 64 bit)");
result.add(" STR: \"Hello World!\" (or $Hello World!$ if in CLI)");
result.add("FLOAT: 0.745 (signed 32 bit)");
result.add(DELIMITER);
result.add("Special variables");
result.add(SHORT_DELIMITER);
result.addAll(
getReference().stream().map(InfoHelper::makeSpecialVariableReference).collect(toList()));
return result;
}
private static String makeSpecialVariableReference(
final JCPSpecialVariableProcessor.NameReferencePair p) {
final String name = p.getName();
final String ref = p.getReference();
return makeColumns(name, ref, 24);
}
private static String makeCommandLineKeyReference(final CommandLineHandler handler) {
return makeColumns(handler.getKeyName(), handler.getDescription(), 14);
}
private static String makeDirectiveReference(final AbstractDirectiveHandler directive) {
final StringBuilder activityPasses = new StringBuilder();
int i = 0;
if (directive.isGlobalPhaseAllowed()) {
i++;
activityPasses.append("1st");
}
if (directive.isPreprocessingPhaseAllowed()) {
if (i > 0) {
activityPasses.append(',');
}
activityPasses.append("2th");
i++;
}
activityPasses.append(i > 1 ? "passes" : " pass");
final String directiveName = directive.getFullName();
final String descr =
(directive.isDeprecated() ? "{DEPRECATED} " : "") + directive.getReference() + " (" +
activityPasses + ')';
return makeColumns(directiveName, descr, 16);
}
private static String makeSpecialDirectiveReference(final String name, final String reference) {
return makeColumns(name, reference, 14);
}
private static String makeOperatorReference(final AbstractOperator operator) {
return makeColumns(operator.getKeyword(), operator.getReference(), 14);
}
private static String makeFunctionReference(final AbstractFunction func) {
final String funcName = func.getName();
final String description = func.getReference();
final StringBuilder variants = new StringBuilder(" [");
final String result = func.getResultType().getSignature().toUpperCase(Locale.ROOT);
int variantIndex = 0;
for (final List<ValueType> signature : func.getAllowedArgumentTypes()) {
if (variantIndex > 0) {
variants.append(" | ");
}
variants.append(result).append(' ').append(funcName).append(" (");
for (int i = 0; i < signature.size(); i++) {
if (i > 0) {
variants.append(',');
}
variants.append(signature.get(i).getSignature().toUpperCase(Locale.ROOT));
}
variants.append(')');
variantIndex++;
}
variants.append(']');
return makeColumns(funcName, description, 24) + variants;
}
private static String makeColumns(final String name, final String reference,
final int firstColumnWidth) {
final int spaces = firstColumnWidth - name.length();
final StringBuilder result = new StringBuilder(name);
result.append(" ".repeat(Math.max(0, spaces)));
result.append(reference);
return result.toString();
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/JcpPreprocessor.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp;
import static com.igormaznitsa.jcp.InfoHelper.makeTextForHelpInfo;
import static com.igormaznitsa.jcp.utils.PreprocessorUtils.fillContextByFoundServices;
import static com.igormaznitsa.jcp.utils.PreprocessorUtils.readWholeTextFileIntoArray;
import static com.igormaznitsa.jcp.utils.PreprocessorUtils.throwPreprocessorException;
import com.igormaznitsa.jcp.cmdline.ActionPreprocessorExtensionHandler;
import com.igormaznitsa.jcp.cmdline.AllowMergeBlockLineHandler;
import com.igormaznitsa.jcp.cmdline.AllowWhitespaceDirectiveHandler;
import com.igormaznitsa.jcp.cmdline.CareForLastEolHandler;
import com.igormaznitsa.jcp.cmdline.ClearTargetHandler;
import com.igormaznitsa.jcp.cmdline.CommandLineHandler;
import com.igormaznitsa.jcp.cmdline.DestinationDirectoryHandler;
import com.igormaznitsa.jcp.cmdline.DontOverwriteSameContentHandler;
import com.igormaznitsa.jcp.cmdline.ExcludeFoldersHandler;
import com.igormaznitsa.jcp.cmdline.ExcludedFileExtensionsHandler;
import com.igormaznitsa.jcp.cmdline.FileExtensionsHandler;
import com.igormaznitsa.jcp.cmdline.GlobalVariableDefiningFileHandler;
import com.igormaznitsa.jcp.cmdline.GlobalVariableHandler;
import com.igormaznitsa.jcp.cmdline.HelpHandler;
import com.igormaznitsa.jcp.cmdline.InCharsetHandler;
import com.igormaznitsa.jcp.cmdline.KeepAttributesHandler;
import com.igormaznitsa.jcp.cmdline.KeepCommentsHandler;
import com.igormaznitsa.jcp.cmdline.KeepLineHandler;
import com.igormaznitsa.jcp.cmdline.OutCharsetHandler;
import com.igormaznitsa.jcp.cmdline.PreserveIndentDirectiveHandler;
import com.igormaznitsa.jcp.cmdline.RemoveCommentsHandler;
import com.igormaznitsa.jcp.cmdline.SourceDirectoryHandler;
import com.igormaznitsa.jcp.cmdline.UnknownAsFalseHandler;
import com.igormaznitsa.jcp.cmdline.VerboseHandler;
import com.igormaznitsa.jcp.containers.FileInfoContainer;
import com.igormaznitsa.jcp.context.PreprocessingState;
import com.igormaznitsa.jcp.context.PreprocessorContext;
import com.igormaznitsa.jcp.context.PreprocessorContextAware;
import com.igormaznitsa.jcp.directives.ExcludeIfDirectiveHandler;
import com.igormaznitsa.jcp.exceptions.FilePositionInfo;
import com.igormaznitsa.jcp.exceptions.PreprocessorException;
import com.igormaznitsa.jcp.expression.Expression;
import com.igormaznitsa.jcp.expression.Value;
import com.igormaznitsa.jcp.expression.ValueType;
import com.igormaznitsa.jcp.utils.AntPathMatcher;
import com.igormaznitsa.jcp.utils.PreprocessorUtils;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
import java.util.Set;
import lombok.Data;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
/**
* The main class implements the Java Comment Preprocessor, it has the main
* method and can be started from a command string
* Base directory for preprocessing can be provided through System property 'jcp.base.dir'
* if it is not provided then current work directory will be recognized as base one.
*/
public final class JcpPreprocessor {
static final CommandLineHandler[] COMMAND_LINE_HANDLERS = new CommandLineHandler[] {
new HelpHandler(),
new InCharsetHandler(),
new OutCharsetHandler(),
new ClearTargetHandler(),
new SourceDirectoryHandler(),
new DestinationDirectoryHandler(),
new FileExtensionsHandler(),
new ExcludedFileExtensionsHandler(),
new AllowWhitespaceDirectiveHandler(),
new RemoveCommentsHandler(),
new KeepCommentsHandler(),
new KeepLineHandler(),
new DontOverwriteSameContentHandler(),
new VerboseHandler(),
new GlobalVariableDefiningFileHandler(),
new GlobalVariableHandler(),
new CareForLastEolHandler(),
new PreserveIndentDirectiveHandler(),
new ExcludeFoldersHandler(),
new KeepAttributesHandler(),
new ActionPreprocessorExtensionHandler(),
new AllowMergeBlockLineHandler(),
new UnknownAsFalseHandler()
};
private static final String PROPERTY_JCP_BASE_DIR = "jcp.base.dir";
private final PreprocessorContext context;
public JcpPreprocessor(final PreprocessorContext context) {
Objects.requireNonNull(context, "Configurator is null");
this.context = context;
}
public static List<CommandLineHandler> getCommandLineHandlers() {
return Arrays.asList(COMMAND_LINE_HANDLERS);
}
public static void main(final String... args) {
printHeader();
final String[] normalizedStrings = PreprocessorUtils
.replaceStringPrefix(new String[] {"--", "-"}, "/",
PreprocessorUtils.replaceChar(args, '$', '\"'));
PreprocessorContext preprocessorContext = null;
final File baseDir = getBaseDir();
System.out.println("Base directory: " + baseDir);
try {
preprocessorContext = processCommandLine(baseDir, args, normalizedStrings);
} catch (Exception ex) {
System.err.println("Error during CLI processing: " + ex.getMessage());
System.exit(1);
}
final JcpPreprocessor preprocessor = new JcpPreprocessor(preprocessorContext);
try {
preprocessor.execute();
} catch (Exception unexpected) {
System.err.println(PreprocessorException.referenceAsString(' ', unexpected));
System.exit(1);
}
System.exit(0);
}
private static File getBaseDir() {
final String baseDirInProperties = System
.getProperty(PROPERTY_JCP_BASE_DIR,
System.getProperty("user.dir", new File("").getAbsolutePath())
);
return new File(baseDirInProperties);
}
private static PreprocessorContext processCommandLine(final File baseDir,
final String[] originalStrings,
final String[] normalizedStrings) {
final PreprocessorContext result = new PreprocessorContext(baseDir);
for (int i = 0; i < normalizedStrings.length; i++) {
final String arg = normalizedStrings[i];
boolean processed = false;
for (final CommandLineHandler processor : getCommandLineHandlers()) {
if (processor.processCommandLineKey(arg, result)) {
processed = true;
if (processor instanceof HelpHandler) {
help();
System.exit(2);
}
break;
}
}
if (!processed) {
System.err.println("Can't process CLI argument, see manual: " + originalStrings[i]);
System.out.println();
help();
System.exit(1);
}
}
fillContextByFoundServices(result);
return result;
}
private static void printHeader() {
System.out.println(InfoHelper.getProductName() + ' ' + InfoHelper.getVersion());
System.out.println(InfoHelper.getSite());
System.out.println(InfoHelper.getCopyright());
}
private static void help() {
System.out.println();
makeTextForHelpInfo().forEach(System.out::println);
}
public PreprocessorContext getContext() {
return this.context;
}
public Statistics execute() throws IOException {
final long timeStart = System.currentTimeMillis();
this.context.getActivatedConfigFiles().addAll(processConfigFiles());
this.context.logInfo(String
.format("File extensions: %s excluded %s", this.context.getExtensions(),
this.context.getExcludeExtensions()));
final List<PreprocessorContext.SourceFolder> srcFolders = this.context.getSources();
this.context.logDebug("Source folders: " + srcFolders);
if (srcFolders.isEmpty()) {
this.context.logWarning("Source folder list is empty!");
}
final Collection<FileInfoContainer> filesToBePreprocessed =
collectFilesToPreprocess(srcFolders, this.context.getExcludeFolders());
this.context.addAllPreprocessedResources(filesToBePreprocessed);
final List<PreprocessingState.ExcludeIfInfo> excludedIf =
processGlobalDirectives(filesToBePreprocessed);
processFileExclusion(excludedIf);
if (!this.context.isDryRun()) {
createTargetFolder();
} else {
this.context.logInfo("Dry run mode is ON");
}
final Statistics stat = this.preprocessFiles(filesToBePreprocessed, true);
final long elapsedTime = System.currentTimeMillis() - timeStart;
this.context.logInfo("-----------------------------------------------------------------");
this.context.logInfo(String
.format("Preprocessed %d files, copied %d files, ignored %d files, elapsed time %d ms",
stat.getPreprocessed(), stat.getCopied(), stat.getExcluded(), elapsedTime));
return stat;
}
private void processFileExclusion(final List<PreprocessingState.ExcludeIfInfo> foundExcludeIf) {
final String DIRECTIVE_NAME = new ExcludeIfDirectiveHandler().getFullName();
for (final PreprocessingState.ExcludeIfInfo item : foundExcludeIf) {
final String condition = item.getCondition();
final File file = item.getFileInfoContainer().getSourceFile();
Value val;
if (context.isVerbose()) {
context.logForVerbose(String
.format("Processing condition '%s' for file '%s'", condition, file.getAbsolutePath()));
}
try {
val = Expression.evalExpression(condition, this.context);
} catch (PreprocessorException ex) {
throw new PreprocessorException(
ex.getMessage(),
condition,
new FilePositionInfo[] {new FilePositionInfo(file, item.getStringIndex())},
ex.getCause()
);
} catch (IllegalArgumentException ex) {
throw new PreprocessorException("Wrong expression at " + DIRECTIVE_NAME,
condition,
new FilePositionInfo[] {new FilePositionInfo(file, item.getStringIndex())},
ex);
}
if (val.getType() != ValueType.BOOLEAN) {
throw new PreprocessorException("Expression at " + DIRECTIVE_NAME + " is not a boolean one",
condition, new FilePositionInfo[] {new FilePositionInfo(file, item.getStringIndex())},
null);
}
if (val.asBoolean()) {
item.getFileInfoContainer().setExcluded(true);
if (context.isVerbose()) {
context.logForVerbose(String
.format("File '%s' excluded for active '%s' condition", file.getAbsolutePath(),
condition));
}
}
}
}
private List<PreprocessingState.ExcludeIfInfo> processGlobalDirectives(
final Collection<FileInfoContainer> files) throws IOException {
final List<PreprocessingState.ExcludeIfInfo> result = new ArrayList<>();
for (final FileInfoContainer fileRef : files) {
if (!(fileRef.isExcludedFromPreprocessing() || fileRef.isCopyOnly())) {
final long startTime = System.currentTimeMillis();
result.addAll(fileRef.processGlobalDirectives(context, null));
final long elapsedTime = System.currentTimeMillis() - startTime;
if (context.isVerbose()) {
context.logForVerbose(String
.format("Global phase completed for file '%s', elapsed time %d ms ",
PreprocessorUtils.getFilePath(fileRef.getSourceFile()), elapsedTime));
}
}
}
return result;
}
private Statistics preprocessFiles(final Collection<FileInfoContainer> files,
final boolean notifyProcessors) throws IOException {
if (notifyProcessors) {
final List<PreprocessorContextAware> successfullyNotified = new ArrayList<>();
try {
context.fireNotificationStart(successfullyNotified);
} catch (final Exception ex) {
context.logError("Error during init of context aware processors: " + ex.getMessage());
successfullyNotified.forEach(x -> {
try {
x.onContextStopped(context, ex);
} catch (Exception err) {
context.logError("Error: " + err.getMessage());
}
});
throw new IllegalStateException("Exception during notification of context aware listeners",
ex);
}
}
int preprocessedCounter = 0;
int copiedCounter = 0;
int excludedCounter = 0;
Throwable error = null;
try {
for (final FileInfoContainer fileRef : files) {
if (fileRef.isExcludedFromPreprocessing()) {
excludedCounter++;
} else if (fileRef.isCopyOnly()) {
if (!context.isDryRun()) {
final File destinationFile =
this.context.createDestinationFileForPath(fileRef.makeTargetFilePathAsString());
boolean doCopy = true;
if (this.context.isDontOverwriteSameContent() &&
PreprocessorUtils.isFileContentEquals(fileRef.getSourceFile(), destinationFile)) {
doCopy = false;
if (this.context.isVerbose()) {
this.context.logForVerbose(String
.format("Copy skipped because same content: %s -> {dst} %s",
PreprocessorUtils.getFilePath(fileRef.getSourceFile()),
fileRef.makeTargetFilePathAsString()));
}
}
if (doCopy) {
if (this.context.isVerbose()) {
this.context.logForVerbose(String.format("Copy file %s -> {dst} %s",
PreprocessorUtils.getFilePath(fileRef.getSourceFile()),
fileRef.makeTargetFilePathAsString()));
}
PreprocessorUtils.copyFile(fileRef.getSourceFile(), destinationFile,
this.context.isKeepAttributes());
fileRef.getGeneratedResources().add(destinationFile);
copiedCounter++;
}
}
} else {
final long startTime = System.currentTimeMillis();
fileRef.preprocessFileWithNotification(this.context, null, false);
final long elapsedTime = System.currentTimeMillis() - startTime;
if (this.context.isVerbose()) {
this.context.logForVerbose(String
.format("File preprocessing completed '%s', elapsed time %d ms",
PreprocessorUtils.getFilePath(fileRef.getSourceFile()), elapsedTime));
}
preprocessedCounter++;
}
}
} catch (Throwable err) {
error = err;
if (error instanceof IOException) {
throw (IOException) error;
}
if (error instanceof RuntimeException) {
throw (RuntimeException) error;
}
if (error instanceof Error) {
throw (Error) error;
}
} finally {
context.fireNotificationStop(error);
}
return new Statistics(
preprocessedCounter,
copiedCounter,
excludedCounter
);
}
private void createTargetFolder() throws IOException {
final File target = context.getTarget();
final boolean targetExists = target.isDirectory();
if (context.isClearTarget() && targetExists) {
this.context.logForVerbose("Cleaning target folder: " + target);
try {
FileUtils.cleanDirectory(target);
} catch (IOException ex) {
throw new IOException("Can't clean folder: " + PreprocessorUtils.getFilePath(target), ex);
}
}
if (!targetExists && !target.mkdirs()) {
throw new IOException("Can't make folder: " + PreprocessorUtils.getFilePath(target));
}
this.context.logForVerbose("Target folder has been prepared: " + target);
}
private Collection<FileInfoContainer> collectFilesToPreprocess(
final List<PreprocessorContext.SourceFolder> sources, final List<String> excluded)
throws IOException {
final Collection<FileInfoContainer> result = new ArrayList<>();
final AntPathMatcher antPathMatcher = new AntPathMatcher();
for (final PreprocessorContext.SourceFolder sourceFolder : sources) {
String canonicalSourcePath = sourceFolder.getAsFile().getCanonicalPath();
this.context.logDebug("Processing folder: " + sourceFolder);
if (!canonicalSourcePath.endsWith(File.separator)) {
canonicalSourcePath += File.separator;
}
for (final File file : findAllFiles(canonicalSourcePath, sourceFolder.getAsFile(),
antPathMatcher, excluded)) {
if (this.context.isFileExcludedByExtension(file)) {
this.context
.logForVerbose(String.format("File '%s' excluded by its extension", file.getPath()));
} else {
final String canonicalFilePath = file.getCanonicalPath();
final String canonicalRelativePath =
canonicalFilePath.substring(canonicalSourcePath.length());
final FileInfoContainer reference = new FileInfoContainer(file, canonicalRelativePath,
!this.context.isFileAllowedForPreprocessing(file));
result.add(reference);
this.context.logDebug("File added to preprocess list: " + reference);
}
}
}
return result;
}
private Set<File> findAllFiles(
final String sourceCanonicalPath,
final File dir,
final AntPathMatcher antPathMatcher,
final List<String> excludedFolderPatterns
) throws IOException {
final Set<File> result = new HashSet<>();
this.context.logDebug("Looking for files in folder: " + dir);
final File[] allowedFiles = dir.listFiles();
if (allowedFiles == null) {
this.context.logWarning("Can't find files in folder: " + dir);
} else {
final String normalizedBasePath = FilenameUtils.normalize(sourceCanonicalPath, true);
for (final File file : allowedFiles) {
if (file.isDirectory()) {
final String folderPath = file.getCanonicalPath();
String excludedFolderPattern = null;
if (!excludedFolderPatterns.isEmpty()) {
final String subPathInBase = folderPath.substring(normalizedBasePath.length());
for (final String pattern : excludedFolderPatterns) {
if (antPathMatcher.match(pattern, subPathInBase)) {
excludedFolderPattern = pattern;
break;
}
}
}
if (excludedFolderPattern == null) {
result.addAll(
findAllFiles(sourceCanonicalPath, file, antPathMatcher, excludedFolderPatterns));
} else {
this.context.logForVerbose(
String.format("Folder '%s' excluded by '%s'", folderPath, excludedFolderPattern));
}
} else {
result.add(file);
}
}
}
return result;
}
List<File> processConfigFiles() throws IOException {
final List<File> processedConfigFileList = new ArrayList<>();
for (final File file : context.getConfigFiles()) {
processedConfigFileList.add(file);
final String[] lines = readWholeTextFileIntoArray(file, StandardCharsets.UTF_8, null);
int readStringIndex = -1;
for (final String curString : lines) {
final String trimmed = curString.trim();
readStringIndex++;
if (trimmed.isEmpty() || trimmed.charAt(0) == '#') {
// do nothing
} else if (trimmed.charAt(0) == '@') {
throwPreprocessorException("Config file doesn't allow have lines started with '@'",
trimmed, file, readStringIndex, null);
} else if (trimmed.charAt(0) == '/') {
// a command line argument
boolean processed = false;
try {
for (CommandLineHandler handler : getCommandLineHandlers()) {
if (context.isVerbose()) {
context.logForVerbose(String
.format("Processing сonfig file key '%s' at %s:%d", trimmed, file.getName(),
readStringIndex + 1));
}
if (handler.processCommandLineKey(trimmed, context)) {
processed = true;
break;
}
}
} catch (Exception unexpected) {
throwPreprocessorException("Exception during directive processing", trimmed, file,
readStringIndex, unexpected);
}
if (!processed) {
throwPreprocessorException("Unsupported or disallowed directive", trimmed, file,
readStringIndex, null);
}
} else {
// a global variable
final String[] split = PreprocessorUtils.splitForEqualChar(trimmed);
if (split.length != 2) {
throwPreprocessorException("Wrong variable definition", trimmed, file, readStringIndex,
null);
}
final String name = split[0].trim().toLowerCase(Locale.ROOT);
final String expression = split[1].trim();
if (name.isEmpty()) {
throwPreprocessorException("Empty variable name detected", trimmed, file,
readStringIndex, null);
}
try {
final Value result = Expression.evalExpression(expression, this.context);
this.context.setGlobalVariable(name, result);
if (this.context.isVerbose()) {
this.context.logForVerbose(String
.format("Registering global variable '%s' = '%s' (%s:%d)", name,
result, file.getName(), readStringIndex + 1));
}
} catch (Exception unexpected) {
throwPreprocessorException("Can't process the global variable definition", trimmed,
file, readStringIndex, unexpected);
}
}
}
}
return processedConfigFileList;
}
@Data
public static final class Statistics {
private final int preprocessed;
private final int copied;
private final int excluded;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/ant/PreprocessTask.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.ant;
import static com.igormaznitsa.jcp.utils.PreprocessorUtils.fillContextByFoundServices;
import com.igormaznitsa.jcp.JcpPreprocessor;
import com.igormaznitsa.jcp.context.CommentRemoverType;
import com.igormaznitsa.jcp.context.PreprocessorContext;
import com.igormaznitsa.jcp.context.SpecialVariableProcessor;
import com.igormaznitsa.jcp.exceptions.PreprocessorException;
import com.igormaznitsa.jcp.expression.Value;
import com.igormaznitsa.jcp.logger.PreprocessorLogger;
import com.igormaznitsa.jcp.utils.GetUtils;
import com.igormaznitsa.jcp.utils.PreprocessorUtils;
import java.io.File;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.text.StringEscapeUtils;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
/**
* 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)
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class PreprocessTask extends Task implements PreprocessorLogger, SpecialVariableProcessor {
private Sources sources = null;
private String eol = null;
private boolean keepAttributes = false;
private String target = null;
private String sourceEncoding = null;
private String targetEncoding = null;
private boolean ignoreMissingSources = false;
private ExcludeExtensions excludeExtensions = null;
private Extensions extensions = null;
private boolean unknownVarAsFalse = false;
private boolean dryRun = false;
private boolean allowBlocks = false;
private boolean verbose = false;
private boolean clearTarget = false;
private boolean careForLastEol = false;
private String keepComments = CommentRemoverType.REMOVE_C_STYLE.name();
private Vars vars = null;
private ExcludeFolders excludeFolders = null;
private ConfigFiles configFiles = null;
private boolean keepLines = true;
private boolean allowWhitespaces = false;
private boolean preserveIndents = false;
private boolean dontOverwriteSameContent = false;
private String actionPreprocessorExtensions = "";
private Map<String, Value> antVariables = new HashMap<>();
private void registerConfigFiles(final PreprocessorContext context) {
if (this.getConfigFiles() != null) {
for (final Sources.Path f : this.getConfigFiles().getPaths()) {
log("Registering config file: " + f.getValue());
context.registerConfigFile(
new File(Objects.requireNonNull(f, "File must not be null").getValue().trim()));
}
}
}
private void fillGlobalVars(final PreprocessorContext context) {
if (this.getVars() != null) {
for (final Vars.Var g : this.getVars().getListVars()) {
context.setGlobalVariable(Objects.requireNonNull(g.getName(), "Name must not be null"),
Value.recognizeRawString(
Objects.requireNonNull(g.getValue(), "Value must not be null")));
}
}
}
PreprocessorContext makePreprocessorContext() {
fillAntVariables();
final PreprocessorContext context = new PreprocessorContext(getProject().getBaseDir());
context.setPreprocessorLogger(this);
context.registerSpecialVariableProcessor(this);
if (this.getTarget() != null) {
context.setTarget(new File(this.getTarget()));
}
if (this.getSources() != null) {
context.setSources(this.getSources().getPaths()
.stream()
.map(Sources.Path::getValue)
.collect(Collectors.toList())
);
}
if (this.getExcludeExtensions() != null) {
context.setExcludeExtensions(this.getExcludeExtensions().listExtensions
.stream()
.map(x -> x.name.trim())
.filter(x -> !x.isEmpty())
.collect(Collectors.toList())
);
}
if (this.getExtensions() != null) {
context.setExtensions(this.getExtensions().listExtensions
.stream()
.map(x -> x.name.trim())
.filter(x -> !x.isEmpty())
.collect(Collectors.toList())
);
}
if (this.getSourceEncoding() != null) {
context.setSourceEncoding(Charset.forName(this.getSourceEncoding()));
}
if (this.getTargetEncoding() != null) {
context.setTargetEncoding(Charset.forName(this.getTargetEncoding()));
}
context.setDontOverwriteSameContent(this.isDontOverwriteSameContent());
context.setClearTarget(this.isClearTarget());
context.setDryRun(this.isDryRun());
context.setAllowsBlocks(this.isAllowBlocks());
context.setKeepComments(PreprocessorUtils.findCommentRemoverForId(this.getKeepComments()));
context.setVerbose(this.isVerbose());
context.setKeepLines(this.isKeepLines());
context.setCareForLastEol(this.isCareForLastEol());
context.setAllowWhitespaces(this.isAllowWhitespaces());
context.setPreserveIndents(this.isPreserveIndents());
context.setKeepAttributes(this.isKeepAttributes());
context.setUnknownVariableAsFalse(this.isUnknownVarAsFalse());
if (this.getEol() != null) {
context.setEol(StringEscapeUtils.unescapeJava(this.getEol()));
}
if (this.getExcludeFolders() != null) {
context.setExcludeFolders(
this.getExcludeFolders().getFolders()
.stream()
.map(ExcludeFolders.Folder::getPath)
.collect(Collectors.toList())
);
}
if (!this.getActionPreprocessorExtensions().isEmpty()) {
info("Instantiating action preprocessor extensions: " +
this.getActionPreprocessorExtensions());
Arrays.stream(this.getActionPreprocessorExtensions().split(","))
.filter(x -> !x.trim().isEmpty())
.forEach(x -> context.addPreprocessorExtension(
PreprocessorUtils.findAndInstantiatePreprocessorExtensionForClassName(
x.trim())));
}
this.registerConfigFiles(context);
this.fillGlobalVars(context);
fillContextByFoundServices(context);
return context;
}
@Override
public void execute() throws BuildException {
PreprocessorContext context;
JcpPreprocessor preprocessor;
this.antVariables.clear();
this.antVariables.putAll(fillAntVariables());
try {
context = makePreprocessorContext();
} catch (Exception unexpected) {
final PreprocessorException pp =
PreprocessorException.extractPreprocessorException(unexpected);
throw new BuildException(pp == null ? unexpected.getMessage() : pp.toString(),
pp == null ? unexpected : pp);
}
preprocessor = new JcpPreprocessor(context);
try {
preprocessor.execute();
} catch (Exception unexpected) {
final PreprocessorException pp =
PreprocessorException.extractPreprocessorException(unexpected);
throw new BuildException(pp == null ? unexpected.getMessage() : pp.toString(),
pp == null ? unexpected : pp);
}
}
@Override
public void error(final String message) {
log(message, Project.MSG_ERR);
}
@Override
public void info(final String message) {
log(message, Project.MSG_INFO);
}
@Override
public void debug(final String message) {
log(message, Project.MSG_DEBUG);
}
@Override
public void debug(final Supplier<String> supplier) {
if (supplier != null) {
final String text = supplier.get();
if (text != null) {
log(text, Project.MSG_DEBUG);
}
}
}
@Override
public void warning(final String message) {
log(message, Project.MSG_WARN);
}
private Map<String, Value> fillAntVariables() {
final Project theProject = getProject();
final Map<String, Value> result;
if (theProject == null) {
result = Collections.emptyMap();
} else {
result = new HashMap<>();
for (final Object key : getProject().getProperties().keySet()) {
final String keyStr = key.toString();
final String value = theProject.getProperty(keyStr);
if (value != null) {
result.put("ant." + keyStr.toLowerCase(Locale.ROOT), Value.valueOf(value));
}
}
}
return result;
}
@Override
public Set<String> getVariableNames() {
final Set<String> result;
if (this.antVariables == null) {
result = Set.of();
} else {
result = this.antVariables.keySet();
}
return result;
}
@Override
public Value getVariable(final String varName, final PreprocessorContext context) {
if (antVariables == null) {
throw context.makeException("Non-initialized ANT property map detected", null);
}
final Value result = this.antVariables.get(varName);
if (result == null) {
throw context.makeException("Request for unsupported Ant property '" + varName + '\'', null);
}
return result;
}
@Override
public void setVariable(final String varName, final Value value,
final PreprocessorContext context) {
throw context.makeException(
"Request to change ANT property '" + varName + "'. NB! ANT properties are read only!",
null);
}
public Extensions createExtensions() {
this.extensions = new Extensions();
return this.extensions;
}
public ExcludeExtensions createExcludeExtensions() {
this.excludeExtensions = new ExcludeExtensions();
return this.excludeExtensions;
}
public ExcludeFolders createExcludeFolders() {
this.excludeFolders = new ExcludeFolders();
return this.excludeFolders;
}
public Sources createSources() {
this.sources = new Sources();
return this.sources;
}
public ConfigFiles createConfigFiles() {
this.configFiles = new ConfigFiles();
return this.configFiles;
}
public Vars createVars() {
this.vars = new Vars();
return this.vars;
}
@Data
@EqualsAndHashCode(callSuper = false)
public static class Sources {
protected List<Path> paths = new ArrayList<>();
public Path createPath() {
final Path result = new Path();
paths.add(result);
return result;
}
@Data
public static class Path {
private String value = "";
public void addText(final String text) {
this.value += GetUtils.ensureNonNull(text, "");
}
}
}
@Data
@EqualsAndHashCode(callSuper = false)
public static class ConfigFiles extends Sources {
}
@Data
@EqualsAndHashCode(callSuper = false)
public static class ExcludeFolders {
private List<Folder> folders = new ArrayList<>();
public Folder createFolder() {
final Folder result = new Folder();
this.folders.add(result);
return result;
}
@Data
public static class Folder {
private String path = "";
public void addText(final String text) {
this.path = GetUtils.ensureNonNull(text, "");
}
}
}
@Data
@EqualsAndHashCode(callSuper = false)
public static class ExcludeExtensions extends Extensions {
}
@Data
@EqualsAndHashCode(callSuper = false)
public static class Extensions {
protected final List<Extension> listExtensions = new ArrayList<>();
public Extension createExtension() {
final Extension result = new Extension();
this.listExtensions.add(result);
return result;
}
@Data
public static class Extension {
private String name = "";
public void addText(final String text) {
this.name += GetUtils.ensureNonNull(text, "");
}
}
}
@Data
@EqualsAndHashCode(callSuper = false)
public static class Vars {
private List<Var> listVars = new ArrayList<>();
public Var createVar() {
final Var result = new Var();
this.listVars.add(result);
return result;
}
@Data
@EqualsAndHashCode(callSuper = false)
public static class Var {
private String name = "";
private String value = "";
public void addText(final String text) {
this.value += text;
}
}
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/ActionPreprocessorExtensionHandler.java
================================================
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
import com.igormaznitsa.jcp.extension.PreprocessorExtension;
import com.igormaznitsa.jcp.utils.PreprocessorUtils;
import java.util.Locale;
public class ActionPreprocessorExtensionHandler implements CommandLineHandler {
private static final String ARG_NAME = "/EA:";
@Override
public String getDescription() {
return "class for action directives (must be in classpath with default constructor)";
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (!key.isEmpty() && key.toUpperCase(Locale.ROOT).startsWith(ARG_NAME)) {
final String tail = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key);
if (!tail.isEmpty()) {
final PreprocessorExtension preprocessorExtension =
PreprocessorUtils.findAndInstantiatePreprocessorExtensionForClassName(tail);
context.addPreprocessorExtension(preprocessorExtension);
}
result = true;
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/AllowMergeBlockLineHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
/**
* Enable merging of text lines found in //$""" and //$$""" into single text block
* for processing by external processors.
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
* @since 7.2.0
*/
public class AllowMergeBlockLineHandler implements CommandLineHandler {
private static final String ARG_NAME = "/B";
@Override
public String getDescription() {
return "treat //$\"\"\" and //$$\"\"\" prefixed lines as single text block";
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (ARG_NAME.equalsIgnoreCase(key)) {
context.setAllowsBlocks(true);
result = true;
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/AllowWhitespaceDirectiveHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
/**
* Allow spaces between comment and directive.
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public class AllowWhitespaceDirectiveHandler implements CommandLineHandler {
private static final String ARG_NAME = "/ES";
@Override
public String getDescription() {
return "enable whitespace-tolerant mode between // and #";
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (ARG_NAME.equalsIgnoreCase(key)) {
context.setAllowWhitespaces(true);
result = true;
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/CareForLastEolHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
public class CareForLastEolHandler implements CommandLineHandler {
private static final String ARG_NAME = "/N";
@Override
public String getDescription() {
return "preserve last line EOL in output";
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (ARG_NAME.equalsIgnoreCase(key)) {
context.setCareForLastEol(true);
result = true;
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/ClearTargetHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
/**
* The handler to process the key signals that the preprocessor must clear the
* destination directory before preprocessing
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public class ClearTargetHandler implements CommandLineHandler {
private static final String ARG_NAME = "/C";
@Override
public String getDescription() {
return "clear target folder before preprocessing";
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (ARG_NAME.equalsIgnoreCase(key)) {
context.setClearTarget(true);
result = true;
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/CommandLineHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
/**
* The interface describes a command line key handler. It is not just a handler,
* but it will be called for all met keys to recognize one to be processed.
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public interface CommandLineHandler {
/**
* Get the key name for the handler
*
* @return the key name as a String, must not be null
*/
String getKeyName();
/**
* Get the description of the key (it will be printed into the help text)
*
* @return the description as a String
*/
String getDescription();
/**
* Process a command line key
*
* @param key the command line key to be processed, must not be null
* @param context the preprocessor context, must not be null
* @return true if the key has been recognized and processed else false
*/
boolean processCommandLineKey(String key, PreprocessorContext context);
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/DestinationDirectoryHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
import com.igormaznitsa.jcp.utils.PreprocessorUtils;
import java.io.File;
import java.util.Locale;
/**
* The handler for the output directory command line key
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public class DestinationDirectoryHandler implements CommandLineHandler {
private static final String ARG_NAME = "/O:";
@Override
public String getDescription() {
return "set destination folder (default " +
PreprocessorContext.DEFAULT_DEST_DIRECTORY + ')';
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (!key.isEmpty() && key.toUpperCase(Locale.ROOT).startsWith(ARG_NAME)) {
final String name = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key);
if (!name.isEmpty()) {
final String path = PreprocessorUtils.extractTail(ARG_NAME, key);
context.setTarget(new File(path));
result = true;
}
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/DontOverwriteSameContentHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
/**
* the Handler processes command to disable overriding of existing file if content the same.
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
* @since 6.0.1
*/
public class DontOverwriteSameContentHandler implements CommandLineHandler {
private static final String ARG_NAME = "/Z";
@Override
public String getKeyName() {
return ARG_NAME;
}
@Override
public String getDescription() {
return "skip writing target file if content unchanged";
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (ARG_NAME.equalsIgnoreCase(key)) {
context.setDontOverwriteSameContent(true);
result = true;
}
return result;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/ExcludeFoldersHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
import com.igormaznitsa.jcp.utils.PreprocessorUtils;
import java.io.File;
import java.util.Locale;
/**
* The Handler of subfolder names to be excluded from preprocessing, allows ANT pattern matching.
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public class ExcludeFoldersHandler implements CommandLineHandler {
private static final String ARG_NAME = "/ED:";
@Override
public String getDescription() {
return "folders to exclude (ANT pattern, delimited by system path separator)";
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (!key.isEmpty() && key.toUpperCase(Locale.ROOT).startsWith(ARG_NAME)) {
final String tail = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key);
if (!tail.isEmpty()) {
context.setExcludeFolders(PreprocessorUtils.splitForChar(tail, File.pathSeparatorChar));
result = true;
}
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/ExcludedFileExtensionsHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
import com.igormaznitsa.jcp.utils.PreprocessorUtils;
import java.util.Arrays;
import java.util.Locale;
import java.util.stream.Collectors;
/**
* The handler for the excluded extension list (with comma)
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public class ExcludedFileExtensionsHandler implements CommandLineHandler {
private static final String ARG_NAME = "/EF:";
@Override
public String getDescription() {
return
"comma-separated file extensions to exclude (default: " +
String.join(",", PreprocessorContext.DEFAULT_EXCLUDED_EXTENSIONS) + ')';
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (!key.isEmpty() && key.toUpperCase(Locale.ROOT).startsWith(ARG_NAME)) {
final String extensions = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key);
if (!extensions.isEmpty()) {
context.setExcludeExtensions(
Arrays.stream(extensions.split(",")).map(String::trim).collect(Collectors.toList()));
result = true;
}
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/FileExtensionsHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
import com.igormaznitsa.jcp.utils.PreprocessorUtils;
import java.util.Arrays;
import java.util.Locale;
import java.util.stream.Collectors;
/**
* The handler for the preprocessing file extension list (with comma)
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public class FileExtensionsHandler implements CommandLineHandler {
private static final String ARG_NAME = "/F:";
@Override
public String getDescription() {
return "comma-separated allowed extensions (default: " +
String.join(",", PreprocessorContext.DEFAULT_PROCESSING_EXTENSIONS) + ')';
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (!key.isEmpty() && key.toUpperCase(Locale.ROOT).startsWith(ARG_NAME)) {
final String extensions = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key);
if (!extensions.isEmpty()) {
context.setExtensions(
Arrays.stream(extensions.split("\\,")).map(String::trim).collect(Collectors.toList()));
result = true;
}
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/GlobalVariableDefiningFileHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
import com.igormaznitsa.jcp.expression.Expression;
import com.igormaznitsa.jcp.expression.Value;
import com.igormaznitsa.jcp.utils.PreprocessorUtils;
import java.io.File;
/**
* The handler for '@' prefixed files in the command string
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public class GlobalVariableDefiningFileHandler implements CommandLineHandler {
private static final String ARG_NAME = "@";
@Override
public String getDescription() {
return "load global variables from file (path or @@expression)";
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (!key.isEmpty() && key.charAt(0) == '@') {
String stringRest = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key);
if (stringRest.isEmpty()) {
throw context.makeException("Empty string", null);
}
File file;
if (stringRest.charAt(0) == '@') {
stringRest = PreprocessorUtils.extractTrimmedTail("@", stringRest);
if (context.isVerbose()) {
context.logForVerbose(
"Global parameter file defined through expression '" + stringRest + '\'');
}
final Value resultValue = Expression.evalExpression(stringRest, context);
final String fileName = resultValue.toString();
file = new File(fileName);
} else {
file = new File(stringRest);
}
if (context.isVerbose()) {
context.logForVerbose(
"Reading global definition file [" + PreprocessorUtils.getFilePath(file) + "] '" +
stringRest + '\'');
}
if (file.isFile()) {
context.registerConfigFile(file);
} else {
throw context.makeException(
"Can't find the global definition file '" + PreprocessorUtils.getFilePath(file) + '\'',
null);
}
result = true;
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/GlobalVariableHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
import com.igormaznitsa.jcp.expression.Expression;
import com.igormaznitsa.jcp.expression.Value;
import com.igormaznitsa.jcp.utils.PreprocessorUtils;
import java.util.Locale;
/**
* The handler for global variables, it adds met global variables into the
* internal storage
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public class GlobalVariableHandler implements CommandLineHandler {
private static final String ARG_NAME = "/P:";
@Override
public String getDescription() {
return "define global variable (e.g., /P:DEBUG=true; use $ for \" in CLI)";
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (!key.isEmpty() && key.toUpperCase(Locale.ROOT).startsWith(ARG_NAME)) {
final String nameAndExpression = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key);
if (!nameAndExpression.isEmpty()) {
final String[] split = PreprocessorUtils.splitForEqualChar(nameAndExpression);
if (split.length != 2) {
throw context.makeException(
"Illegal expression for directive '" + ARG_NAME + "' [" + nameAndExpression + ']',
null);
}
final String value = split[0];
final String expression = split[1];
if (context.containsGlobalVariable(value)) {
throw context.makeException("Duplicated global definition [" + value + ']', null);
}
final Value resultVal = Expression.evalExpression(expression, context);
context.setGlobalVariable(value, resultVal);
result = true;
}
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/HelpHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
import java.util.Locale;
/**
* The handler processes a help command from the command string
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public class HelpHandler implements CommandLineHandler {
private static final String[] ARG_NAMES = new String[] {"/H", "/?", "-H", "-?"};
@Override
public String getDescription() {
return "display preprocessor usage and directives info";
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (!key.isEmpty()) {
final String argUpperCase = key.trim().toUpperCase(Locale.ROOT);
for (final String str : ARG_NAMES) {
if (str.equals(argUpperCase)) {
result = true;
break;
}
}
}
return result;
}
@Override
public String getKeyName() {
final StringBuilder result = new StringBuilder();
for (int li = 0; li < ARG_NAMES.length; li++) {
if (li > 0) {
result.append(',');
}
result.append(ARG_NAMES[li]);
}
return result.toString();
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/InCharsetHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
import com.igormaznitsa.jcp.utils.PreprocessorUtils;
import java.nio.charset.Charset;
import java.util.Locale;
/**
* To set the input text character encoding
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public class InCharsetHandler implements CommandLineHandler {
private static final String ARG_NAME = "/T:";
@Override
public String getKeyName() {
return ARG_NAME;
}
@Override
public String getDescription() {
return "set input text file encoding (default: " +
PreprocessorContext.DEFAULT_CHARSET + ')';
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (key.toUpperCase(Locale.ROOT).startsWith(ARG_NAME)) {
final String value = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key);
if (!value.isEmpty() && Charset.isSupported(value)) {
context.setSourceEncoding(Charset.forName(value));
result = true;
}
}
return result;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/KeepAttributesHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
/**
* The handler keep file attributes of copied or generated files.
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public class KeepAttributesHandler implements CommandLineHandler {
private static final String ARG_NAME = "/A";
@Override
public String getDescription() {
return "preserve original file attributes";
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (ARG_NAME.equalsIgnoreCase(key)) {
context.setKeepAttributes(true);
result = true;
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/KeepCommentsHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import static com.igormaznitsa.jcp.context.CommentRemoverType.makeListOfAllRemoverIds;
import com.igormaznitsa.jcp.context.CommentRemoverType;
import com.igormaznitsa.jcp.context.PreprocessorContext;
import com.igormaznitsa.jcp.utils.PreprocessorUtils;
import java.util.Locale;
/**
* The handler allows to choose keep comments mode.
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
* @since 7.1.0
*/
public class KeepCommentsHandler implements CommandLineHandler {
private static final String ARG_NAME = "/M:";
@Override
public String getDescription() {
return "set comment handling mode (e.g., /M:remove_c_style; allowed: true,false," +
makeListOfAllRemoverIds() + ')';
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (!key.isEmpty() && key.toUpperCase(Locale.ROOT).startsWith(ARG_NAME)) {
final String tail = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key);
final CommentRemoverType mode;
try {
mode = PreprocessorUtils.findCommentRemoverForId(tail);
} catch (IllegalArgumentException ex) {
throw context.makeException(
"Illegal keep comments mode '" + tail + "' in " + ARG_NAME +
", expected one of: true,false," +
makeListOfAllRemoverIds(), null);
}
context.setKeepComments(mode);
result = true;
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/KeepLineHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
/**
* The handler processing the flag tells the preprocessor to be try to keep
* non-executing lines of code as commented ones
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public class KeepLineHandler implements CommandLineHandler {
private static final String ARG_NAME = "/K";
@Override
public String getDescription() {
return "preserve line numbers, print unprocessed lines as comments";
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (ARG_NAME.equalsIgnoreCase(key)) {
context.setKeepLines(true);
result = true;
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/OutCharsetHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
import com.igormaznitsa.jcp.utils.PreprocessorUtils;
import java.nio.charset.Charset;
import java.util.Locale;
/**
* To set the output text character encoding
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public class OutCharsetHandler implements CommandLineHandler {
private static final String ARG_NAME = "/TT:";
@Override
public String getKeyName() {
return ARG_NAME;
}
@Override
public String getDescription() {
return "set output text file encoding (default: " +
PreprocessorContext.DEFAULT_CHARSET + ')';
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (key.toUpperCase(Locale.ROOT).startsWith(ARG_NAME)) {
final String value = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key);
if (!value.isEmpty()) {
if (Charset.isSupported(value)) {
context.setTargetEncoding(Charset.forName(value));
result = true;
}
}
}
return result;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/PreserveIndentDirectiveHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.PreprocessorContext;
/**
* Preserve indent when removing line-prefixes "//$" and "//$$"
*/
public class PreserveIndentDirectiveHandler implements CommandLineHandler {
private static final String ARG_NAME = "/PI";
@Override
public String getDescription() {
return "preserve indentation when removing //$ and //$$";
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (ARG_NAME.equalsIgnoreCase(key)) {
context.setPreserveIndents(true);
result = true;
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/RemoveCommentsHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import com.igormaznitsa.jcp.context.CommentRemoverType;
import com.igormaznitsa.jcp.context.PreprocessorContext;
/**
* Processes the flag that clears all source files from the destination directory, stripping them even from within comments.
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public class RemoveCommentsHandler implements CommandLineHandler {
private static final String ARG_NAME = "/R";
@Override
public String getDescription() {
return "strip all comments in result files";
}
@Override
public boolean processCommandLineKey(final String argument,
final PreprocessorContext configurator) {
boolean result = false;
if (ARG_NAME.equalsIgnoreCase(argument)) {
configurator.setKeepComments(CommentRemoverType.REMOVE_C_STYLE);
result = true;
}
return result;
}
@Override
public String getKeyName() {
return ARG_NAME;
}
}
================================================
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/SourceDirectoryHandler.java
================================================
/*
* Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.igormaznitsa.jcp.cmdline;
import static com.igormaznitsa.jcp.utils.PreprocessorUtils.extractTail;
import com.igormaznitsa.jcp.context.PreprocessorContext;
import com.igormaznitsa.jcp.utils.PreprocessorUtils;
import java.io.File;
import java.util.Arrays;
import java.util.Locale;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
* The handler processing the key to set the source directory
*
* @author Igor Maznitsa (igor.maznitsa@igormaznitsa.com)
*/
public class SourceDirectoryHandler implements CommandLineHandler {
private static final String ARG_NAME = "/I:";
@Override
public String getDescription() {
return "set source folder for preprocessing (default: " +
PreprocessorContext.DEFAULT_SOURCE_DIRECTORY + ')';
}
@Override
public boolean processCommandLineKey(final String key, final PreprocessorContext context) {
boolean result = false;
if (!key.isEmpty() && key.toUpperCase(Locale.ROOT).startsWith(ARG_NAME)) {
final String tail = PreprocessorUtils.extractTrimmedTail(ARG_NAME, key);
if (!tail.isEmpty()) {
context.setSources(
Arrays.stream(extractTail(ARG_NAME, key).split(Pattern.quote(File.pathSep
gitextract_jyzsnnek/ ├── .gitattributes ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ └── run-maven-tests.yml ├── .gitignore ├── .projectKnowledge/ │ ├── JCPreprocessor.mmd │ └── documap.mmd ├── LICENSE ├── README.md ├── changelog.txt ├── jcp/ │ ├── pom.xml │ └── src/ │ ├── assemble/ │ │ └── bundle.xml │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── igormaznitsa/ │ │ │ └── jcp/ │ │ │ ├── InfoHelper.java │ │ │ ├── JcpPreprocessor.java │ │ │ ├── ant/ │ │ │ │ └── PreprocessTask.java │ │ │ ├── cmdline/ │ │ │ │ ├── ActionPreprocessorExtensionHandler.java │ │ │ │ ├── AllowMergeBlockLineHandler.java │ │ │ │ ├── AllowWhitespaceDirectiveHandler.java │ │ │ │ ├── CareForLastEolHandler.java │ │ │ │ ├── ClearTargetHandler.java │ │ │ │ ├── CommandLineHandler.java │ │ │ │ ├── DestinationDirectoryHandler.java │ │ │ │ ├── DontOverwriteSameContentHandler.java │ │ │ │ ├── ExcludeFoldersHandler.java │ │ │ │ ├── ExcludedFileExtensionsHandler.java │ │ │ │ ├── FileExtensionsHandler.java │ │ │ │ ├── GlobalVariableDefiningFileHandler.java │ │ │ │ ├── GlobalVariableHandler.java │ │ │ │ ├── HelpHandler.java │ │ │ │ ├── InCharsetHandler.java │ │ │ │ ├── KeepAttributesHandler.java │ │ │ │ ├── KeepCommentsHandler.java │ │ │ │ ├── KeepLineHandler.java │ │ │ │ ├── OutCharsetHandler.java │ │ │ │ ├── PreserveIndentDirectiveHandler.java │ │ │ │ ├── RemoveCommentsHandler.java │ │ │ │ ├── SourceDirectoryHandler.java │ │ │ │ ├── UnknownAsFalseHandler.java │ │ │ │ └── VerboseHandler.java │ │ │ ├── containers/ │ │ │ │ ├── FileInfoContainer.java │ │ │ │ ├── PreprocessingFlag.java │ │ │ │ └── TextFileDataContainer.java │ │ │ ├── context/ │ │ │ │ ├── CommentRemoverType.java │ │ │ │ ├── CommentTextProcessor.java │ │ │ │ ├── EnvironmentVariableProcessor.java │ │ │ │ ├── ExecutionAllowable.java │ │ │ │ ├── JCPSpecialVariableProcessor.java │ │ │ │ ├── PreprocessingState.java │ │ │ │ ├── PreprocessorContext.java │ │ │ │ ├── PreprocessorContextAware.java │ │ │ │ └── SpecialVariableProcessor.java │ │ │ ├── directives/ │ │ │ │ ├── AbortDirectiveHandler.java │ │ │ │ ├── AbstractDirectiveHandler.java │ │ │ │ ├── ActionDirectiveHandler.java │ │ │ │ ├── AfterDirectiveProcessingBehaviour.java │ │ │ │ ├── BreakDirectiveHandler.java │ │ │ │ ├── CommentNextLineDirectiveHandler.java │ │ │ │ ├── ContinueDirectiveHandler.java │ │ │ │ ├── DefineDirectiveHandler.java │ │ │ │ ├── DefinelDirectiveHandler.java │ │ │ │ ├── DirectiveArgumentType.java │ │ │ │ ├── EchoDirectiveHandler.java │ │ │ │ ├── ElseDirectiveHandler.java │ │ │ │ ├── EndDirectiveHandler.java │ │ │ │ ├── EndIfDirectiveHandler.java │ │ │ │ ├── ErrorDirectiveHandler.java │ │ │ │ ├── ExcludeIfDirectiveHandler.java │ │ │ │ ├── ExitDirectiveHandler.java │ │ │ │ ├── ExitIfDirectiveHandler.java │ │ │ │ ├── FlushDirectiveHandler.java │ │ │ │ ├── GlobalDirectiveHandler.java │ │ │ │ ├── GlobalElseDirectiveHandler.java │ │ │ │ ├── GlobalEndIfDirectiveHandler.java │ │ │ │ ├── GlobalIfDirectiveHandler.java │ │ │ │ ├── IfDefDirectiveHandler.java │ │ │ │ ├── IfDefinedDirectiveHandler.java │ │ │ │ ├── IfDirectiveHandler.java │ │ │ │ ├── IfNDefDirectiveHandler.java │ │ │ │ ├── IncludeDirectiveHandler.java │ │ │ │ ├── LocalDirectiveHandler.java │ │ │ │ ├── MsgDirectiveHandler.java │ │ │ │ ├── NoAutoFlushHandler.java │ │ │ │ ├── OutDisabledDirectiveHandler.java │ │ │ │ ├── OutEnabledDirectiveHandler.java │ │ │ │ ├── OutNameDirectiveHandler.java │ │ │ │ ├── OutdirDirectiveHandler.java │ │ │ │ ├── PostfixDirectiveHandler.java │ │ │ │ ├── PrefixDirectiveHandler.java │ │ │ │ ├── UndefDirectiveHandler.java │ │ │ │ ├── WarningDirectiveHandler.java │ │ │ │ └── WhileDirectiveHandler.java │ │ │ ├── exceptions/ │ │ │ │ ├── FilePositionInfo.java │ │ │ │ └── PreprocessorException.java │ │ │ ├── expression/ │ │ │ │ ├── Expression.java │ │ │ │ ├── ExpressionItem.java │ │ │ │ ├── ExpressionItemPriority.java │ │ │ │ ├── ExpressionItemType.java │ │ │ │ ├── ExpressionParser.java │ │ │ │ ├── ExpressionTree.java │ │ │ │ ├── ExpressionTreeElement.java │ │ │ │ ├── Value.java │ │ │ │ ├── ValueType.java │ │ │ │ ├── Variable.java │ │ │ │ ├── functions/ │ │ │ │ │ ├── AbstractFunction.java │ │ │ │ │ ├── AbstractStrConverter.java │ │ │ │ │ ├── FunctionABS.java │ │ │ │ │ ├── FunctionBINFILE.java │ │ │ │ │ ├── FunctionDefinedByUser.java │ │ │ │ │ ├── FunctionESC.java │ │ │ │ │ ├── FunctionEVALFILE.java │ │ │ │ │ ├── FunctionIS.java │ │ │ │ │ ├── FunctionISSUBSTR.java │ │ │ │ │ ├── FunctionROUND.java │ │ │ │ │ ├── FunctionSTR2CSV.java │ │ │ │ │ ├── FunctionSTR2GO.java │ │ │ │ │ ├── FunctionSTR2INT.java │ │ │ │ │ ├── FunctionSTR2JAVA.java │ │ │ │ │ ├── FunctionSTR2JS.java │ │ │ │ │ ├── FunctionSTR2JSON.java │ │ │ │ │ ├── FunctionSTR2WEB.java │ │ │ │ │ ├── FunctionSTR2XML.java │ │ │ │ │ ├── FunctionSTRLEN.java │ │ │ │ │ ├── FunctionTRIMLINES.java │ │ │ │ │ └── xml/ │ │ │ │ │ ├── AbstractXMLFunction.java │ │ │ │ │ ├── FunctionXML_ATTR.java │ │ │ │ │ ├── FunctionXML_GET.java │ │ │ │ │ ├── FunctionXML_LIST.java │ │ │ │ │ ├── FunctionXML_NAME.java │ │ │ │ │ ├── FunctionXML_OPEN.java │ │ │ │ │ ├── FunctionXML_ROOT.java │ │ │ │ │ ├── FunctionXML_SIZE.java │ │ │ │ │ ├── FunctionXML_TEXT.java │ │ │ │ │ ├── FunctionXML_XELEMENT.java │ │ │ │ │ ├── FunctionXML_XLIST.java │ │ │ │ │ └── NodeContainer.java │ │ │ │ └── operators/ │ │ │ │ ├── AbstractOperator.java │ │ │ │ ├── OperatorADD.java │ │ │ │ ├── OperatorAND.java │ │ │ │ ├── OperatorDIV.java │ │ │ │ ├── OperatorEQU.java │ │ │ │ ├── OperatorGREAT.java │ │ │ │ ├── OperatorGREATEQU.java │ │ │ │ ├── OperatorLESS.java │ │ │ │ ├── OperatorLESSEQU.java │ │ │ │ ├── OperatorMOD.java │ │ │ │ ├── OperatorMUL.java │ │ │ │ ├── OperatorNOT.java │ │ │ │ ├── OperatorNOTEQU.java │ │ │ │ ├── OperatorOR.java │ │ │ │ ├── OperatorSUB.java │ │ │ │ └── OperatorXOR.java │ │ │ ├── extension/ │ │ │ │ ├── LogPreprocessorExtension.java │ │ │ │ └── PreprocessorExtension.java │ │ │ ├── gradle/ │ │ │ │ ├── JcpGradlePlugin.java │ │ │ │ └── JcpTask.java │ │ │ ├── logger/ │ │ │ │ ├── PreprocessorLogger.java │ │ │ │ └── SystemOutLogger.java │ │ │ ├── maven/ │ │ │ │ ├── MavenPropertiesImporter.java │ │ │ │ └── PreprocessMojo.java │ │ │ ├── removers/ │ │ │ │ ├── AbstractCommentRemover.java │ │ │ │ ├── CStyleCommentRemover.java │ │ │ │ ├── JcpCommentLineRemover.java │ │ │ │ └── JustCopyRemover.java │ │ │ └── utils/ │ │ │ ├── AntPathMatcher.java │ │ │ ├── ArrayUtils.java │ │ │ ├── GetUtils.java │ │ │ ├── IOUtils.java │ │ │ ├── PreprocessorUtils.java │ │ │ └── ResettablePrinter.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── gradle-plugins/ │ │ │ └── com.igormaznitsa.jcp.properties │ │ ├── com/ │ │ │ └── igormaznitsa/ │ │ │ └── jcp/ │ │ │ └── ant/ │ │ │ ├── antlib.xml │ │ │ └── tasks.properties │ │ └── jcpversion.properties │ ├── site/ │ │ ├── markdown/ │ │ │ ├── examples/ │ │ │ │ └── hello-world.md │ │ │ ├── index.md │ │ │ └── usage.md │ │ └── site.xml │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── igormaznitsa/ │ │ └── jcp/ │ │ ├── AbstractMockPreprocessorContextTest.java │ │ ├── AbstractSpyPreprocessorContextTest.java │ │ ├── JCPreprocessorTest.java │ │ ├── TestUtils.java │ │ ├── ant/ │ │ │ └── PreprocessTaskTest.java │ │ ├── cmdline/ │ │ │ ├── AbstractCommandLineHandlerTest.java │ │ │ ├── ActionPreprocessorExtensionHandlerTest.java │ │ │ ├── AllowMergeBlockLineHandlerTest.java │ │ │ ├── AllowWhitespaceDirectiveHandlerTest.java │ │ │ ├── CareForLastEolHandlerTest.java │ │ │ ├── ClearTargetFolderHandlerTest.java │ │ │ ├── CommentRemoverTypeHandlerTest.java │ │ │ ├── DestinationDirectoryHandlerTest.java │ │ │ ├── DontOverwriteSameContentHandlerTest.java │ │ │ ├── ExcludeFoldersHandlerTest.java │ │ │ ├── ExcludedFileExtensionsHandlerTest.java │ │ │ ├── FileExtensionsHandlerTest.java │ │ │ ├── GlobalVariableDefiningFileHandlerTest.java │ │ │ ├── GlobalVariableHandlerTest.java │ │ │ ├── HelpHandlerTest.java │ │ │ ├── InCharsetHandlerTest.java │ │ │ ├── KeepLineHandlerTest.java │ │ │ ├── OutCharsetHandlerTest.java │ │ │ ├── PreserveIndentDirectiveHandlerTest.java │ │ │ ├── RemoveCommentsHandlerTest.java │ │ │ ├── SourceDirectoryHandlerTest.java │ │ │ ├── UnknownAsFalseHandlerTest.java │ │ │ └── VerboseHandlerTest.java │ │ ├── context/ │ │ │ ├── EnvironmentVariableProcessorTest.java │ │ │ ├── JCPSpecialVariableProcessorTest.java │ │ │ ├── PreprocessorContextTest.java │ │ │ └── ProcessContentWithSpacesAndWithoutTest.java │ │ ├── directives/ │ │ │ ├── AbortDirectiveHandlerTest.java │ │ │ ├── AbstractDirectiveHandlerAcceptanceTest.java │ │ │ ├── AbstractDirectiveHandlerTest.java │ │ │ ├── ActionDirectiveHandlerTest.java │ │ │ ├── CommentNextLineDirectiveHandlerTest.java │ │ │ ├── DefineDirectiveHandlerTest.java │ │ │ ├── DefinelDirectiveHandlerTest.java │ │ │ ├── EchoDirectiveHandlerTest.java │ │ │ ├── ErrorDirectiveHandlerTest.java │ │ │ ├── ExcludeIfDirectiveHandlerTest.java │ │ │ ├── ExitDirectiveHandlerTest.java │ │ │ ├── ExitIfDirectiveHandlerTest.java │ │ │ ├── FlushDirectiveHandlerTest.java │ │ │ ├── GlobalDirectiveHandlerTest.java │ │ │ ├── GlobalIfElseEndifTest.java │ │ │ ├── IfDefDirectiveHandlerTest.java │ │ │ ├── IfDefinedDirectiveHandlerTest.java │ │ │ ├── IfElseEndifDirectiveHandlerTest.java │ │ │ ├── IfElseEndifDirectiveWithKeepLinesHandlerTest.java │ │ │ ├── IfNDefDirectiveHandlerTest.java │ │ │ ├── IncludeDirectiveHandlerTest.java │ │ │ ├── LinesNotMatchException.java │ │ │ ├── LocalDirectiveHandlerTest.java │ │ │ ├── MsgDirectiveHandlerTest.java │ │ │ ├── NoAutoFlushDirectiveHandlerTest.java │ │ │ ├── OnlySpacesTest.java │ │ │ ├── OutDisabledDirectiveHandlerTest.java │ │ │ ├── OutEnabledDirectiveHandlerTest.java │ │ │ ├── OutNameDirectiveHandlerTest.java │ │ │ ├── OutdirDirectiveHandlerTest.java │ │ │ ├── PrefixPostfixDirectiveHandlerTest.java │ │ │ ├── SpecVarsROTest.java │ │ │ ├── SpecialDirectivesBlockTest.java │ │ │ ├── SpecialDirectivesTest.java │ │ │ ├── UndefDirectiveHandlerTest.java │ │ │ ├── VariablePair.java │ │ │ ├── WarningDirectiveHandlerTest.java │ │ │ └── WhileContinueBreakEndDirectiveHandlerTest.java │ │ ├── exceptions/ │ │ │ └── PreprocessorExceptionTest.java │ │ ├── expression/ │ │ │ ├── ExpressionParserTest.java │ │ │ ├── ExpressionTest.java │ │ │ ├── ExpressionTreeTest.java │ │ │ ├── functions/ │ │ │ │ ├── AbstractFunctionTest.java │ │ │ │ ├── FunctionABSTest.java │ │ │ │ ├── FunctionBINFILETest.java │ │ │ │ ├── FunctionDefinedByUserTest.java │ │ │ │ ├── FunctionESCTest.java │ │ │ │ ├── FunctionEVALFILETest.java │ │ │ │ ├── FunctionISSUBSTRTest.java │ │ │ │ ├── FunctionISTest.java │ │ │ │ ├── FunctionROUNDTest.java │ │ │ │ ├── FunctionSTR2CSVTest.java │ │ │ │ ├── FunctionSTR2GOTest.java │ │ │ │ ├── FunctionSTR2INTTest.java │ │ │ │ ├── FunctionSTR2JAVATest.java │ │ │ │ ├── FunctionSTR2JSONTest.java │ │ │ │ ├── FunctionSTR2JSTest.java │ │ │ │ ├── FunctionSTR2WEBTest.java │ │ │ │ ├── FunctionSTR2XMLTest.java │ │ │ │ ├── FunctionSTRLENTest.java │ │ │ │ ├── FunctionTRIMLINESTest.java │ │ │ │ └── xml/ │ │ │ │ ├── AbstractFunctionXMLTest.java │ │ │ │ ├── FunctionXML_ATTRTest.java │ │ │ │ ├── FunctionXML_GETTest.java │ │ │ │ ├── FunctionXML_LISTTest.java │ │ │ │ ├── FunctionXML_NAMETest.java │ │ │ │ ├── FunctionXML_OPENTest.java │ │ │ │ ├── FunctionXML_ROOTTest.java │ │ │ │ ├── FunctionXML_SIZETest.java │ │ │ │ ├── FunctionXML_TEXTTest.java │ │ │ │ ├── FunctionXML_XELEMENTTest.java │ │ │ │ └── FunctionXML_XLISTTest.java │ │ │ └── operators/ │ │ │ ├── AbstractOperatorTest.java │ │ │ ├── OperatorADDTest.java │ │ │ ├── OperatorANDTest.java │ │ │ ├── OperatorDIVTest.java │ │ │ ├── OperatorEQUTest.java │ │ │ ├── OperatorGREATEQUTest.java │ │ │ ├── OperatorGREATTest.java │ │ │ ├── OperatorLESSEQUTest.java │ │ │ ├── OperatorLESSTest.java │ │ │ ├── OperatorMODTest.java │ │ │ ├── OperatorMULTest.java │ │ │ ├── OperatorNOTEQUTest.java │ │ │ ├── OperatorNOTTest.java │ │ │ ├── OperatorORTest.java │ │ │ ├── OperatorSUBTest.java │ │ │ └── OperatorXORTest.java │ │ ├── maven/ │ │ │ ├── MavenPropertiesImporterTest.java │ │ │ └── PreprocessMojoTest.java │ │ ├── removers/ │ │ │ ├── AbstractCommentRemoverTest.java │ │ │ ├── CStyleCommentsRemoverTest.java │ │ │ ├── JcpCommentLineRemoverTest.java │ │ │ └── JustCopyCommentsRemoverTest.java │ │ ├── usecases/ │ │ │ ├── AbortTest.java │ │ │ ├── AbstractUseCaseTest.java │ │ │ ├── BinFileTest.java │ │ │ ├── DefUndefTest.java │ │ │ ├── EvalFileTest.java │ │ │ ├── ExternalGlobalDefFileTest.java │ │ │ ├── GenerationTest.java │ │ │ ├── IncludeAndExitTest.java │ │ │ ├── InsidePreprocessingTest.java │ │ │ ├── PrefixPostfixTest.java │ │ │ ├── PreserveIndentOffTest.java │ │ │ ├── PreserveIndentOnTest.java │ │ │ ├── SimpleTest.java │ │ │ ├── SpacesBeforeDirectivesNotAllowedTest.java │ │ │ ├── SpacesBeforeDirectivesTest.java │ │ │ ├── StaticSiteTest.java │ │ │ ├── Str2JavaTest.java │ │ │ ├── StringDirectiveTest.java │ │ │ ├── TextBufferVariablesTest.java │ │ │ ├── UnknownVarAsFalseTest.java │ │ │ ├── UsePrefixAsMultilineTest.java │ │ │ └── UserFunctionTest.java │ │ └── utils/ │ │ ├── PreprocessorUtilsTest.java │ │ └── antpathmatcher/ │ │ └── AntPathMatcherTest.java │ └── resources/ │ └── com/ │ └── igormaznitsa/ │ └── jcp/ │ ├── cmdline/ │ │ └── global_variable_def.txt │ ├── context/ │ │ ├── spacedFile.txt │ │ └── standardFile.txt │ ├── directives/ │ │ ├── directive_abort.txt │ │ ├── directive_action.txt │ │ ├── directive_comment_next_line.txt │ │ ├── directive_define.txt │ │ ├── directive_definel.txt │ │ ├── directive_echo.txt │ │ ├── directive_error.txt │ │ ├── directive_excludeif.txt │ │ ├── directive_exit.txt │ │ ├── directive_exitif.txt │ │ ├── directive_global.txt │ │ ├── directive_globalifelseendif.txt │ │ ├── directive_globalifelseendif2.txt │ │ ├── directive_if_else_endif.txt │ │ ├── directive_if_else_endif_with_keptlines.txt │ │ ├── directive_ifdef.txt │ │ ├── directive_ifdefined.txt │ │ ├── directive_ifndef.txt │ │ ├── directive_include.txt │ │ ├── directive_include2.txt │ │ ├── directive_include3.txt │ │ ├── directive_local.txt │ │ ├── directive_msg.txt │ │ ├── directive_outdir.txt │ │ ├── directive_outdisabled.txt │ │ ├── directive_outenabled.txt │ │ ├── directive_outname.txt │ │ ├── directive_prefixpostfix.txt │ │ ├── directive_special.txt │ │ ├── directive_special_block.txt │ │ ├── directive_undef.txt │ │ ├── directive_warning.txt │ │ ├── directive_while_continue_break_end.txt │ │ ├── only_spaces.txt │ │ └── specvars_ro.txt │ ├── exceptions/ │ │ ├── wrong_bracket.txt │ │ ├── wrong_bracket_closing.txt │ │ └── wrong_bracket_include.txt │ ├── expression/ │ │ └── functions/ │ │ ├── eval/ │ │ │ ├── TestBin.txt │ │ │ ├── TestBinLong.txt │ │ │ ├── TestEval.java │ │ │ └── TestEvalWithIncluded.java │ │ └── xml/ │ │ ├── noxml.txt │ │ └── test.xml │ ├── global_error_at.txt │ ├── global_ok.txt │ ├── maven/ │ │ └── test.pom.xml │ ├── removers/ │ │ └── java/ │ │ ├── etalon.etl │ │ └── test_java.ppp │ ├── usecases/ │ │ ├── AbortTest/ │ │ │ ├── etl/ │ │ │ │ └── text.txt │ │ │ └── src/ │ │ │ ├── text.txt │ │ │ ├── text1.txt │ │ │ ├── text2.txt │ │ │ └── text3.txt │ │ ├── BinFileTest/ │ │ │ ├── etl/ │ │ │ │ └── body.txt │ │ │ └── src/ │ │ │ └── body.txt │ │ ├── DefUndefTest/ │ │ │ ├── etl/ │ │ │ │ └── text.txt │ │ │ └── src/ │ │ │ └── text.txt │ │ ├── EvalFileTest/ │ │ │ ├── etl/ │ │ │ │ └── newfolder/ │ │ │ │ ├── file1.txt │ │ │ │ └── file2.txt │ │ │ └── src/ │ │ │ ├── _file1.txt │ │ │ ├── _file2.txt │ │ │ └── text.txt │ │ ├── ExternalGlobalDefFileTest/ │ │ │ ├── etl/ │ │ │ │ └── test.txt │ │ │ ├── list.cfg │ │ │ └── src/ │ │ │ └── test.txt │ │ ├── GenerationTest/ │ │ │ ├── etl/ │ │ │ │ ├── file1.ttt │ │ │ │ ├── file2.ttt │ │ │ │ └── file3.ttt │ │ │ └── src/ │ │ │ └── text.txt │ │ ├── IncludeAndExitTest/ │ │ │ ├── etl/ │ │ │ │ └── text.txt │ │ │ └── src/ │ │ │ ├── text.txt │ │ │ ├── text1.txt │ │ │ └── text2.txt │ │ ├── InsidePreprocessingTest/ │ │ │ ├── etl/ │ │ │ │ └── text.txt │ │ │ └── src/ │ │ │ ├── some.txt │ │ │ └── text.txt │ │ ├── PrefixPostfixTest/ │ │ │ ├── etl/ │ │ │ │ └── text.txt │ │ │ └── src/ │ │ │ └── text.txt │ │ ├── PreserveIndentOffTest/ │ │ │ ├── etl/ │ │ │ │ └── text.txt │ │ │ └── src/ │ │ │ └── text.txt │ │ ├── PreserveIndentOnTest/ │ │ │ ├── etl/ │ │ │ │ └── text.txt │ │ │ └── src/ │ │ │ └── text.txt │ │ ├── SimpleTest/ │ │ │ ├── etl/ │ │ │ │ └── text.txt │ │ │ └── src/ │ │ │ └── text.txt │ │ ├── SpacesBeforeDirectivesNotAllowedTest/ │ │ │ ├── etl/ │ │ │ │ └── body.txt │ │ │ └── src/ │ │ │ └── body.txt │ │ ├── SpacesBeforeDirectivesTest/ │ │ │ ├── etl/ │ │ │ │ └── body.txt │ │ │ └── src/ │ │ │ └── body.txt │ │ ├── StaticSiteTest/ │ │ │ ├── etl/ │ │ │ │ ├── cmn/ │ │ │ │ │ ├── sendfeedback.phtml │ │ │ │ │ ├── styles.css │ │ │ │ │ └── styles2.css │ │ │ │ ├── eng/ │ │ │ │ │ ├── end.txt │ │ │ │ │ ├── gpage_airaggression.htm │ │ │ │ │ ├── gpage_airboil.htm │ │ │ │ │ ├── gpage_aneks_ny2006.htm │ │ │ │ │ ├── gpage_blazinggears.htm │ │ │ │ │ ├── gpage_caspianmonster.htm │ │ │ │ │ ├── gpage_castleassault.htm │ │ │ │ │ ├── gpage_cockroach.htm │ │ │ │ │ ├── gpage_coconutsfall.htm │ │ │ │ │ ├── gpage_conecone.htm │ │ │ │ │ ├── gpage_copterbomber.htm │ │ │ │ │ ├── gpage_drunkman.htm │ │ │ │ │ ├── gpage_firingline.htm │ │ │ │ │ ├── gpage_fisher.htm │ │ │ │ │ ├── gpage_fruitmania.htm │ │ │ │ │ ├── gpage_hardday.htm │ │ │ │ │ ├── gpage_hunt.htm │ │ │ │ │ ├── gpage_icegifts.htm │ │ │ │ │ ├── gpage_ironstream.htm │ │ │ │ │ ├── gpage_kalah.htm │ │ │ │ │ ├── gpage_kickkick.htm │ │ │ │ │ ├── gpage_lifesaver.htm │ │ │ │ │ ├── gpage_livebridge.htm │ │ │ │ │ ├── gpage_mobilechase.htm │ │ │ │ │ ├── gpage_mobilesheriff.htm │ │ │ │ │ ├── gpage_mtvpaparazzo.htm │ │ │ │ │ ├── gpage_mtvpillow.htm │ │ │ │ │ ├── gpage_mtvpuzzle.htm │ │ │ │ │ ├── gpage_mtvstage.htm │ │ │ │ │ ├── gpage_nimble.htm │ │ │ │ │ ├── gpage_opthunderclap.htm │ │ │ │ │ ├── gpage_oysterbank.htm │ │ │ │ │ ├── gpage_papaninsquest.htm │ │ │ │ │ ├── gpage_ravenscheese.htm │ │ │ │ │ ├── gpage_searoad.htm │ │ │ │ │ ├── gpage_searovers.htm │ │ │ │ │ ├── gpage_slider_alpop.htm │ │ │ │ │ ├── gpage_smashingkick.htm │ │ │ │ │ ├── gpage_smscat.htm │ │ │ │ │ ├── gpage_spiders.htm │ │ │ │ │ ├── gpage_starharbor.htm │ │ │ │ │ ├── gpage_strangehunt.htm │ │ │ │ │ ├── gpage_tastydish.htm │ │ │ │ │ ├── gpage_vineyard.htm │ │ │ │ │ ├── gpage_waterway.htm │ │ │ │ │ ├── gpage_wildballs.htm │ │ │ │ │ ├── gpage_wildroad.htm │ │ │ │ │ ├── menu1_about.htm │ │ │ │ │ ├── menu1_contacts.htm │ │ │ │ │ ├── menu1_job.htm │ │ │ │ │ ├── menu1_news.htm │ │ │ │ │ ├── menu1_partnership.htm │ │ │ │ │ ├── menu2_all.htm │ │ │ │ │ ├── menu2_arcade.htm │ │ │ │ │ ├── menu2_clientserver.htm │ │ │ │ │ ├── menu2_erotic.htm │ │ │ │ │ ├── menu2_fighting.htm │ │ │ │ │ ├── menu2_gambling.htm │ │ │ │ │ ├── menu2_logic.htm │ │ │ │ │ ├── menu2_multiplayer.htm │ │ │ │ │ ├── menu2_quest.htm │ │ │ │ │ ├── menu2_racing.htm │ │ │ │ │ ├── menu2_shooter.htm │ │ │ │ │ ├── menu2_sport.htm │ │ │ │ │ ├── menu3_appsall.htm │ │ │ │ │ ├── send_error.html │ │ │ │ │ └── send_ok.html │ │ │ │ ├── games/ │ │ │ │ │ └── games2003_2006.html │ │ │ │ ├── index.htm │ │ │ │ ├── loadpages/ │ │ │ │ │ ├── muzon_AirBoil.htm │ │ │ │ │ └── muzon_StarHarbor.htm │ │ │ │ ├── rus/ │ │ │ │ │ ├── gpage_airaggression.htm │ │ │ │ │ ├── gpage_airboil.htm │ │ │ │ │ ├── gpage_aneks_ny2006.htm │ │ │ │ │ ├── gpage_blazinggears.htm │ │ │ │ │ ├── gpage_caspianmonster.htm │ │ │ │ │ ├── gpage_castleassault.htm │ │ │ │ │ ├── gpage_cockroach.htm │ │ │ │ │ ├── gpage_coconutsfall.htm │ │ │ │ │ ├── gpage_conecone.htm │ │ │ │ │ ├── gpage_copterbomber.htm │ │ │ │ │ ├── gpage_drunkman.htm │ │ │ │ │ ├── gpage_firingline.htm │ │ │ │ │ ├── gpage_fisher.htm │ │ │ │ │ ├── gpage_fruitmania.htm │ │ │ │ │ ├── gpage_hardday.htm │ │ │ │ │ ├── gpage_hunt.htm │ │ │ │ │ ├── gpage_icegifts.htm │ │ │ │ │ ├── gpage_ironstream.htm │ │ │ │ │ ├── gpage_kalah.htm │ │ │ │ │ ├── gpage_kickkick.htm │ │ │ │ │ ├── gpage_lifesaver.htm │ │ │ │ │ ├── gpage_livebridge.htm │ │ │ │ │ ├── gpage_mobilechase.htm │ │ │ │ │ ├── gpage_mobilesheriff.htm │ │ │ │ │ ├── gpage_mtvpaparazzo.htm │ │ │ │ │ ├── gpage_mtvpillow.htm │ │ │ │ │ ├── gpage_mtvpuzzle.htm │ │ │ │ │ ├── gpage_mtvstage.htm │ │ │ │ │ ├── gpage_nimble.htm │ │ │ │ │ ├── gpage_opthunderclap.htm │ │ │ │ │ ├── gpage_oysterbank.htm │ │ │ │ │ ├── gpage_papaninsquest.htm │ │ │ │ │ ├── gpage_ravenscheese.htm │ │ │ │ │ ├── gpage_searoad.htm │ │ │ │ │ ├── gpage_searovers.htm │ │ │ │ │ ├── gpage_slider_alpop.htm │ │ │ │ │ ├── gpage_smashingkick.htm │ │ │ │ │ ├── gpage_smscat.htm │ │ │ │ │ ├── gpage_spiders.htm │ │ │ │ │ ├── gpage_starharbor.htm │ │ │ │ │ ├── gpage_strangehunt.htm │ │ │ │ │ ├── gpage_tastydish.htm │ │ │ │ │ ├── gpage_vineyard.htm │ │ │ │ │ ├── gpage_waterway.htm │ │ │ │ │ ├── gpage_wildballs.htm │ │ │ │ │ ├── gpage_wildroad.htm │ │ │ │ │ ├── menu1_about.htm │ │ │ │ │ ├── menu1_contacts.htm │ │ │ │ │ ├── menu1_job.htm │ │ │ │ │ ├── menu1_news.htm │ │ │ │ │ ├── menu1_partnership.htm │ │ │ │ │ ├── menu2_all.htm │ │ │ │ │ ├── menu2_arcade.htm │ │ │ │ │ ├── menu2_clientserver.htm │ │ │ │ │ ├── menu2_erotic.htm │ │ │ │ │ ├── menu2_fighting.htm │ │ │ │ │ ├── menu2_gambling.htm │ │ │ │ │ ├── menu2_logic.htm │ │ │ │ │ ├── menu2_multiplayer.htm │ │ │ │ │ ├── menu2_quest.htm │ │ │ │ │ ├── menu2_racing.htm │ │ │ │ │ ├── menu2_shooter.htm │ │ │ │ │ ├── menu2_sport.htm │ │ │ │ │ ├── menu3_appsall.htm │ │ │ │ │ ├── send_error.html │ │ │ │ │ └── send_ok.html │ │ │ │ └── wap/ │ │ │ │ ├── index.wml │ │ │ │ └── logo.wbmp │ │ │ └── src/ │ │ │ ├── about.htm │ │ │ ├── channels.xml │ │ │ ├── cmn/ │ │ │ │ ├── sendfeedback.phtml │ │ │ │ ├── styles.css │ │ │ │ └── styles2.css │ │ │ ├── contacts.htm │ │ │ ├── devices.xml │ │ │ ├── eng/ │ │ │ │ ├── send_error.html │ │ │ │ └── send_ok.html │ │ │ ├── gamelist.htm │ │ │ ├── gameref.htm │ │ │ ├── games/ │ │ │ │ └── games2003_2006.html │ │ │ ├── games.htm │ │ │ ├── games.xml │ │ │ ├── hotnews.htm │ │ │ ├── hotnews.xml │ │ │ ├── index.htm │ │ │ ├── job.htm │ │ │ ├── loadpages/ │ │ │ │ ├── muzon_AirBoil.htm │ │ │ │ └── muzon_StarHarbor.htm │ │ │ ├── main.htm │ │ │ ├── news.htm │ │ │ ├── news.xml │ │ │ ├── partnership.htm │ │ │ ├── rus/ │ │ │ │ ├── send_error.html │ │ │ │ └── send_ok.html │ │ │ ├── site.xml │ │ │ └── wap/ │ │ │ ├── index.wml │ │ │ └── logo.wbmp │ │ ├── Str2JavaTest/ │ │ │ ├── etl/ │ │ │ │ └── text.txt │ │ │ └── src/ │ │ │ ├── body.txt │ │ │ ├── str.txt │ │ │ └── text.txt │ │ ├── StringDirectiveTest/ │ │ │ ├── etl/ │ │ │ │ └── text.txt │ │ │ └── src/ │ │ │ └── text.txt │ │ ├── TextBufferVariablesTest/ │ │ │ ├── etl/ │ │ │ │ └── text.txt │ │ │ └── src/ │ │ │ └── text.txt │ │ ├── UnknownVarAsFalseTest/ │ │ │ ├── etl/ │ │ │ │ └── body.txt │ │ │ └── src/ │ │ │ └── body.txt │ │ ├── UsePrefixAsMultilineTest/ │ │ │ ├── etl/ │ │ │ │ └── text.txt │ │ │ └── src/ │ │ │ └── text.txt │ │ └── UserFunctionTest/ │ │ ├── etl/ │ │ │ └── text.txt │ │ └── src/ │ │ └── text.txt │ └── utils/ │ └── somefile.txt ├── jcp-tests/ │ ├── extlibs/ │ │ └── gradle-tooling-api-5.1.jar │ ├── jcp-test-android/ │ │ ├── app/ │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ ├── androidTest/ │ │ │ │ └── java/ │ │ │ │ └── android/ │ │ │ │ └── it/ │ │ │ │ └── igormaznitsa/ │ │ │ │ └── com/ │ │ │ │ └── jcpandroid/ │ │ │ │ └── ExampleInstrumentedTest.java │ │ │ ├── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── java/ │ │ │ │ │ └── android/ │ │ │ │ │ └── it/ │ │ │ │ │ └── igormaznitsa/ │ │ │ │ │ └── com/ │ │ │ │ │ └── jcpandroid/ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ └── utils/ │ │ │ │ │ └── Utils.java │ │ │ │ └── res/ │ │ │ │ ├── drawable/ │ │ │ │ │ └── ic_launcher_background.xml │ │ │ │ ├── drawable-v24/ │ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ ├── layout/ │ │ │ │ │ ├── activity_main.xml │ │ │ │ │ └── content_main.xml │ │ │ │ ├── menu/ │ │ │ │ │ └── menu_main.xml │ │ │ │ ├── mipmap-anydpi-v26/ │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ └── values/ │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── android/ │ │ │ └── it/ │ │ │ └── igormaznitsa/ │ │ │ └── com/ │ │ │ └── jcpandroid/ │ │ │ ├── ExampleUnitTest.java │ │ │ └── utils/ │ │ │ └── UtilsTest.java │ │ ├── build.gradle │ │ ├── gradle.properties │ │ ├── local.properties │ │ ├── pom.xml │ │ └── settings.gradle │ ├── jcp-test-ant/ │ │ ├── pom.xml │ │ └── src/ │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── igormaznitsa/ │ │ │ └── jcp/ │ │ │ └── it/ │ │ │ └── ant/ │ │ │ └── TestAntTaskResult.java │ │ └── resources/ │ │ ├── build.xml │ │ ├── config.cfg │ │ └── src/ │ │ └── com/ │ │ └── igormaznitsa/ │ │ └── dummyproject/ │ │ └── main.java │ ├── jcp-test-gradle-6/ │ │ ├── build.gradle │ │ ├── configFile.txt │ │ ├── pom.xml │ │ ├── settings.gradle │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── igormaznitsa/ │ │ │ └── jcp/ │ │ │ └── it/ │ │ │ └── gradle/ │ │ │ ├── Main.java │ │ │ └── Some.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── igormaznitsa/ │ │ └── jcp/ │ │ └── it/ │ │ └── gradle/ │ │ └── TestMain.java │ ├── jcp-test-gradle-7/ │ │ ├── build.gradle │ │ ├── configFile.txt │ │ ├── pom.xml │ │ ├── settings.gradle │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── igormaznitsa/ │ │ │ └── jcp/ │ │ │ └── it/ │ │ │ └── gradle/ │ │ │ ├── Main.java │ │ │ └── Some.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── igormaznitsa/ │ │ └── jcp/ │ │ └── it/ │ │ └── gradle/ │ │ └── TestMain.java │ ├── jcp-test-gradle-8/ │ │ ├── build.gradle │ │ ├── configFile.txt │ │ ├── pom.xml │ │ ├── settings.gradle │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── igormaznitsa/ │ │ │ └── jcp/ │ │ │ └── it/ │ │ │ └── gradle/ │ │ │ ├── Main.java │ │ │ └── Some.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── igormaznitsa/ │ │ └── jcp/ │ │ └── it/ │ │ └── gradle/ │ │ └── TestMain.java │ ├── jcp-test-gradle-9/ │ │ ├── build.gradle │ │ ├── configFile.txt │ │ ├── pom.xml │ │ ├── settings.gradle │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── igormaznitsa/ │ │ │ └── jcp/ │ │ │ └── it/ │ │ │ └── gradle/ │ │ │ ├── Main.java │ │ │ └── Some.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── igormaznitsa/ │ │ └── jcp/ │ │ └── it/ │ │ └── gradle/ │ │ └── TestMain.java │ ├── jcp-test-javassist/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── igormaznitsa/ │ │ │ └── jcp/ │ │ │ └── it/ │ │ │ └── test/ │ │ │ ├── JavassistMain.java │ │ │ ├── Javassistable.java │ │ │ └── Main.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── igormaznitsa/ │ │ └── jcp/ │ │ └── it/ │ │ └── test/ │ │ └── JavassistableTest.java │ ├── jcp-test-jep238/ │ │ ├── pom.jdk9.xml │ │ ├── pom.xml │ │ └── src/ │ │ ├── assembly/ │ │ │ └── assembly.xml │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── igormaznitsa/ │ │ │ └── tests/ │ │ │ ├── JDK9APIClass.java │ │ │ ├── Main.java │ │ │ └── OldJavaClass.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── igormaznitsa/ │ │ └── tests/ │ │ ├── JDK9APIClassTest.java │ │ └── OldJavaClassTest.java │ ├── jcp-test-maven/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── igormaznitsa/ │ │ │ └── jcp/ │ │ │ └── it/ │ │ │ └── maven/ │ │ │ └── Main.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── igormaznitsa/ │ │ └── jcp/ │ │ └── it/ │ │ └── maven/ │ │ └── TestMain.java │ ├── jcp-test-maven-action/ │ │ ├── jcp-test-maven-action-action/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── igormaznitsa/ │ │ │ └── jcp/ │ │ │ └── it/ │ │ │ └── CustomPreprocessorExtension.java │ │ ├── jcp-test-maven-action-plugin-call/ │ │ │ ├── pom.xml │ │ │ └── src/ │ │ │ ├── main/ │ │ │ │ └── java/ │ │ │ │ └── com/ │ │ │ │ └── igormaznitsa/ │ │ │ │ └── jcp/ │ │ │ │ └── it/ │ │ │ │ └── Main.java │ │ │ └── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── igormaznitsa/ │ │ │ └── jcp/ │ │ │ └── it/ │ │ │ └── MainTest.java │ │ └── pom.xml │ ├── jcp-test-static-site/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── resources/ │ │ │ ├── about.htm │ │ │ ├── channels.xml │ │ │ ├── cmn/ │ │ │ │ ├── sendfeedback.phtml │ │ │ │ ├── styles.css │ │ │ │ └── styles2.css │ │ │ ├── contacts.htm │ │ │ ├── devices.xml │ │ │ ├── eng/ │ │ │ │ ├── send_error.html │ │ │ │ └── send_ok.html │ │ │ ├── gamelist.htm │ │ │ ├── gameref.htm │ │ │ ├── games/ │ │ │ │ └── games2003_2006.html │ │ │ ├── games.htm │ │ │ ├── games.xml │ │ │ ├── hotnews.htm │ │ │ ├── hotnews.xml │ │ │ ├── index.htm │ │ │ ├── job.htm │ │ │ ├── loadpages/ │ │ │ │ ├── muzon_AirBoil.htm │ │ │ │ └── muzon_StarHarbor.htm │ │ │ ├── main.htm │ │ │ ├── news.htm │ │ │ ├── news.xml │ │ │ ├── partnership.htm │ │ │ ├── rus/ │ │ │ │ ├── send_error.html │ │ │ │ └── send_ok.html │ │ │ ├── site.xml │ │ │ └── wap/ │ │ │ ├── index.wml │ │ │ └── logo.wbmp │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── igormaznitsa/ │ │ └── jcp/ │ │ └── it/ │ │ └── test/ │ │ └── TestSite.java │ └── pom.xml └── pom.xml
SYMBOL INDEX (2360 symbols across 343 files)
FILE: jcp-tests/jcp-test-android/app/src/androidTest/java/android/it/igormaznitsa/com/jcpandroid/ExampleInstrumentedTest.java
class ExampleInstrumentedTest (line 13) | @RunWith(AndroidJUnit4.class)
method useAppContext (line 15) | @Test
FILE: jcp-tests/jcp-test-android/app/src/main/java/android/it/igormaznitsa/com/jcpandroid/MainActivity.java
class MainActivity (line 12) | public class MainActivity extends AppCompatActivity {
method onCreate (line 14) | @Override
method onCreateOptionsMenu (line 34) | @Override
method onOptionsItemSelected (line 41) | @Override
FILE: jcp-tests/jcp-test-android/app/src/main/java/android/it/igormaznitsa/com/jcpandroid/utils/Utils.java
class Utils (line 3) | public final class Utils {
method Utils (line 5) | private Utils(){
method makeSecretPassword (line 14) | public static String makeSecretPassword() {
FILE: jcp-tests/jcp-test-android/app/src/test/java/android/it/igormaznitsa/com/jcpandroid/ExampleUnitTest.java
class ExampleUnitTest (line 7) | public class ExampleUnitTest {
method addition_isCorrect (line 8) | @Test
FILE: jcp-tests/jcp-test-android/app/src/test/java/android/it/igormaznitsa/com/jcpandroid/utils/UtilsTest.java
class UtilsTest (line 7) | public class UtilsTest {
method testMakeSecretPassword (line 8) | @Test
FILE: jcp-tests/jcp-test-ant/src/test/java/com/igormaznitsa/jcp/it/ant/TestAntTaskResult.java
class TestAntTaskResult (line 29) | public class TestAntTaskResult {
method testPreprocessResult (line 33) | @Test
FILE: jcp-tests/jcp-test-ant/src/test/resources/src/com/igormaznitsa/dummyproject/main.java
class testmain (line 5) | public class testmain {
method test (line 8) | public String test(){
FILE: jcp-tests/jcp-test-gradle-6/src/main/java/com/igormaznitsa/jcp/it/gradle/Main.java
class Main (line 6) | public class Main {
method Main (line 10) | public Main(){
method getValue (line 24) | public String getValue(){
method main (line 28) | public static void main(String [] args) {
FILE: jcp-tests/jcp-test-gradle-6/src/main/java/com/igormaznitsa/jcp/it/gradle/Some.java
class Some (line 3) | public class Some {
method getText (line 5) | public String getText() {
FILE: jcp-tests/jcp-test-gradle-6/src/test/java/com/igormaznitsa/jcp/it/gradle/TestMain.java
class TestMain (line 6) | public class TestMain {
method testMain (line 8) | @Test
FILE: jcp-tests/jcp-test-gradle-7/src/main/java/com/igormaznitsa/jcp/it/gradle/Main.java
class Main (line 6) | public class Main {
method Main (line 10) | public Main(){
method getValue (line 24) | public String getValue(){
method main (line 28) | public static void main(String [] args) {
FILE: jcp-tests/jcp-test-gradle-7/src/main/java/com/igormaznitsa/jcp/it/gradle/Some.java
class Some (line 3) | public class Some {
method getText (line 5) | public String getText() {
FILE: jcp-tests/jcp-test-gradle-7/src/test/java/com/igormaznitsa/jcp/it/gradle/TestMain.java
class TestMain (line 6) | public class TestMain {
method testMain (line 8) | @Test
FILE: jcp-tests/jcp-test-gradle-8/src/main/java/com/igormaznitsa/jcp/it/gradle/Main.java
class Main (line 6) | public class Main {
method Main (line 10) | public Main(){
method getValue (line 24) | public String getValue(){
method main (line 28) | public static void main(String [] args) {
FILE: jcp-tests/jcp-test-gradle-8/src/main/java/com/igormaznitsa/jcp/it/gradle/Some.java
class Some (line 3) | public class Some {
method getText (line 5) | public String getText() {
FILE: jcp-tests/jcp-test-gradle-8/src/test/java/com/igormaznitsa/jcp/it/gradle/TestMain.java
class TestMain (line 6) | public class TestMain {
method testMain (line 8) | @Test
FILE: jcp-tests/jcp-test-gradle-9/src/main/java/com/igormaznitsa/jcp/it/gradle/Main.java
class Main (line 6) | public class Main {
method Main (line 10) | public Main(){
method getValue (line 24) | public String getValue(){
method main (line 28) | public static void main(String [] args) {
FILE: jcp-tests/jcp-test-gradle-9/src/main/java/com/igormaznitsa/jcp/it/gradle/Some.java
class Some (line 3) | public class Some {
method getText (line 5) | public String getText() {
FILE: jcp-tests/jcp-test-gradle-9/src/test/java/com/igormaznitsa/jcp/it/gradle/TestMain.java
class TestMain (line 6) | public class TestMain {
method testMain (line 8) | @Test
FILE: jcp-tests/jcp-test-javassist/src/main/java/com/igormaznitsa/jcp/it/test/JavassistMain.java
class JavassistMain (line 8) | public class JavassistMain {
method printLines (line 28) | public boolean printLines(int lineNumber, String pattern, String text) {
FILE: jcp-tests/jcp-test-javassist/src/main/java/com/igormaznitsa/jcp/it/test/Javassistable.java
class Javassistable (line 7) | public class Javassistable {
method printLines (line 8) | public boolean printLines(int ___arg1, String ___arg2, String ___arg3) {
FILE: jcp-tests/jcp-test-javassist/src/main/java/com/igormaznitsa/jcp/it/test/Main.java
class Main (line 3) | public class Main {
method printLines (line 4) | public boolean printLines(int lineNumber, String pattern, String text) {
FILE: jcp-tests/jcp-test-javassist/src/test/java/com/igormaznitsa/jcp/it/test/JavassistableTest.java
class JavassistableTest (line 6) | public class JavassistableTest {
method testProcessJavassistSrc (line 8) | @Test
FILE: jcp-tests/jcp-test-jep238/src/main/java/com/igormaznitsa/tests/JDK9APIClass.java
class JDK9APIClass (line 10) | public class JDK9APIClass {
method getList (line 11) | public List<String> getList() {
FILE: jcp-tests/jcp-test-jep238/src/main/java/com/igormaznitsa/tests/Main.java
class Main (line 6) | public class Main {
method main (line 8) | public static void main(final String... args) {
FILE: jcp-tests/jcp-test-jep238/src/main/java/com/igormaznitsa/tests/OldJavaClass.java
class OldJavaClass (line 8) | public class OldJavaClass {
method getString (line 9) | public String getString(){
FILE: jcp-tests/jcp-test-jep238/src/test/java/com/igormaznitsa/tests/JDK9APIClassTest.java
class JDK9APIClassTest (line 7) | public class JDK9APIClassTest {
method testGetList (line 8) | @Test
FILE: jcp-tests/jcp-test-jep238/src/test/java/com/igormaznitsa/tests/OldJavaClassTest.java
class OldJavaClassTest (line 8) | public class OldJavaClassTest {
method testGetString (line 10) | @Test
FILE: jcp-tests/jcp-test-maven-action/jcp-test-maven-action-action/src/main/java/com/igormaznitsa/jcp/it/CustomPreprocessorExtension.java
class CustomPreprocessorExtension (line 10) | public class CustomPreprocessorExtension implements PreprocessorExtension {
method hasAction (line 14) | @Override
method hasUserFunction (line 19) | @Override
method processAction (line 27) | @Override
method getUserFunctionArity (line 33) | @Override
method processUserFunction (line 42) | @Override
FILE: jcp-tests/jcp-test-maven-action/jcp-test-maven-action-plugin-call/src/main/java/com/igormaznitsa/jcp/it/Main.java
class Main (line 3) | public class Main {
method main (line 5) | public static void main(String ... args) {
method makeHello (line 10) | public static String makeHello() {
FILE: jcp-tests/jcp-test-maven-action/jcp-test-maven-action-plugin-call/src/test/java/com/igormaznitsa/jcp/it/MainTest.java
class MainTest (line 6) | class MainTest {
method testMain (line 7) | @Test
FILE: jcp-tests/jcp-test-maven/src/main/java/com/igormaznitsa/jcp/it/maven/Main.java
class Main (line 7) | public class Main {
method Main (line 11) | public Main(){
method getProperty (line 30) | public String getProperty() {
FILE: jcp-tests/jcp-test-maven/src/test/java/com/igormaznitsa/jcp/it/maven/TestMain.java
class TestMain (line 7) | class TestMain {
method testMain (line 9) | @Test
FILE: jcp-tests/jcp-test-static-site/src/test/java/com/igormaznitsa/jcp/it/test/TestSite.java
class TestSite (line 32) | public class TestSite {
method countFilesInDir (line 36) | private int countFilesInDir(File dir) {
method testGeneratedSite (line 50) | @Test
FILE: jcp/src/main/java/com/igormaznitsa/jcp/InfoHelper.java
class InfoHelper (line 41) | public final class InfoHelper {
method InfoHelper (line 63) | private InfoHelper() {
method getVersion (line 66) | public static String getVersion() {
method getCopyright (line 71) | public static String getCopyright() {
method getSite (line 76) | public static String getSite() {
method getProductName (line 81) | public static String getProductName() {
method makeTextForHelpInfo (line 86) | public static List<String> makeTextForHelpInfo() {
method makeSpecialVariableReference (line 140) | private static String makeSpecialVariableReference(
method makeCommandLineKeyReference (line 148) | private static String makeCommandLineKeyReference(final CommandLineHan...
method makeDirectiveReference (line 153) | private static String makeDirectiveReference(final AbstractDirectiveHa...
method makeSpecialDirectiveReference (line 177) | private static String makeSpecialDirectiveReference(final String name,...
method makeOperatorReference (line 182) | private static String makeOperatorReference(final AbstractOperator ope...
method makeFunctionReference (line 187) | private static String makeFunctionReference(final AbstractFunction fun...
method makeColumns (line 214) | private static String makeColumns(final String name, final String refe...
FILE: jcp/src/main/java/com/igormaznitsa/jcp/JcpPreprocessor.java
class JcpPreprocessor (line 86) | public final class JcpPreprocessor {
method JcpPreprocessor (line 116) | public JcpPreprocessor(final PreprocessorContext context) {
method getCommandLineHandlers (line 122) | public static List<CommandLineHandler> getCommandLineHandlers() {
method main (line 126) | public static void main(final String... args) {
method getBaseDir (line 158) | private static File getBaseDir() {
method processCommandLine (line 167) | private static PreprocessorContext processCommandLine(final File baseDir,
method printHeader (line 199) | private static void printHeader() {
method help (line 205) | private static void help() {
method getContext (line 212) | public PreprocessorContext getContext() {
method execute (line 216) | public Statistics execute() throws IOException {
method processFileExclusion (line 253) | private void processFileExclusion(final List<PreprocessingState.Exclud...
method processGlobalDirectives (line 301) | private List<PreprocessingState.ExcludeIfInfo> processGlobalDirectives(
method preprocessFiles (line 320) | private Statistics preprocessFiles(final Collection<FileInfoContainer>...
method createTargetFolder (line 412) | private void createTargetFolder() throws IOException {
method collectFilesToPreprocess (line 434) | private Collection<FileInfoContainer> collectFilesToPreprocess(
method findAllFiles (line 471) | private Set<File> findAllFiles(
method processConfigFiles (line 519) | List<File> processConfigFiles() throws IOException {
class Statistics (line 595) | @Data
FILE: jcp/src/main/java/com/igormaznitsa/jcp/ant/PreprocessTask.java
class PreprocessTask (line 61) | @Data
method registerConfigFiles (line 90) | private void registerConfigFiles(final PreprocessorContext context) {
method fillGlobalVars (line 100) | private void fillGlobalVars(final PreprocessorContext context) {
method makePreprocessorContext (line 110) | PreprocessorContext makePreprocessorContext() {
method execute (line 198) | @Override
method error (line 227) | @Override
method info (line 232) | @Override
method debug (line 237) | @Override
method debug (line 242) | @Override
method warning (line 252) | @Override
method fillAntVariables (line 257) | private Map<String, Value> fillAntVariables() {
method getVariableNames (line 278) | @Override
method getVariable (line 289) | @Override
method setVariable (line 302) | @Override
method createExtensions (line 310) | public Extensions createExtensions() {
method createExcludeExtensions (line 315) | public ExcludeExtensions createExcludeExtensions() {
method createExcludeFolders (line 320) | public ExcludeFolders createExcludeFolders() {
method createSources (line 325) | public Sources createSources() {
method createConfigFiles (line 330) | public ConfigFiles createConfigFiles() {
method createVars (line 335) | public Vars createVars() {
class Sources (line 340) | @Data
method createPath (line 346) | public Path createPath() {
class Path (line 352) | @Data
method addText (line 356) | public void addText(final String text) {
class ConfigFiles (line 363) | @Data
class ExcludeFolders (line 369) | @Data
method createFolder (line 375) | public Folder createFolder() {
class Folder (line 381) | @Data
method addText (line 385) | public void addText(final String text) {
class ExcludeExtensions (line 391) | @Data
class Extensions (line 397) | @Data
method createExtension (line 402) | public Extension createExtension() {
class Extension (line 408) | @Data
method addText (line 412) | public void addText(final String text) {
class Vars (line 418) | @Data
method createVar (line 423) | public Var createVar() {
class Var (line 429) | @Data
method addText (line 435) | public void addText(final String text) {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/ActionPreprocessorExtensionHandler.java
class ActionPreprocessorExtensionHandler (line 8) | public class ActionPreprocessorExtensionHandler implements CommandLineHa...
method getDescription (line 12) | @Override
method processCommandLineKey (line 17) | @Override
method getKeyName (line 34) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/AllowMergeBlockLineHandler.java
class AllowMergeBlockLineHandler (line 33) | public class AllowMergeBlockLineHandler implements CommandLineHandler {
method getDescription (line 37) | @Override
method processCommandLineKey (line 42) | @Override
method getKeyName (line 54) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/AllowWhitespaceDirectiveHandler.java
class AllowWhitespaceDirectiveHandler (line 31) | public class AllowWhitespaceDirectiveHandler implements CommandLineHandl...
method getDescription (line 35) | @Override
method processCommandLineKey (line 40) | @Override
method getKeyName (line 52) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/CareForLastEolHandler.java
class CareForLastEolHandler (line 26) | public class CareForLastEolHandler implements CommandLineHandler {
method getDescription (line 30) | @Override
method processCommandLineKey (line 35) | @Override
method getKeyName (line 47) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/ClearTargetHandler.java
class ClearTargetHandler (line 32) | public class ClearTargetHandler implements CommandLineHandler {
method getDescription (line 36) | @Override
method processCommandLineKey (line 41) | @Override
method getKeyName (line 51) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/CommandLineHandler.java
type CommandLineHandler (line 32) | public interface CommandLineHandler {
method getKeyName (line 39) | String getKeyName();
method getDescription (line 46) | String getDescription();
method processCommandLineKey (line 55) | boolean processCommandLineKey(String key, PreprocessorContext context);
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/DestinationDirectoryHandler.java
class DestinationDirectoryHandler (line 34) | public class DestinationDirectoryHandler implements CommandLineHandler {
method getDescription (line 38) | @Override
method processCommandLineKey (line 44) | @Override
method getKeyName (line 60) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/DontOverwriteSameContentHandler.java
class DontOverwriteSameContentHandler (line 32) | public class DontOverwriteSameContentHandler implements CommandLineHandl...
method getKeyName (line 36) | @Override
method getDescription (line 41) | @Override
method processCommandLineKey (line 46) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/ExcludeFoldersHandler.java
class ExcludeFoldersHandler (line 34) | public class ExcludeFoldersHandler implements CommandLineHandler {
method getDescription (line 38) | @Override
method processCommandLineKey (line 43) | @Override
method getKeyName (line 58) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/ExcludedFileExtensionsHandler.java
class ExcludedFileExtensionsHandler (line 35) | public class ExcludedFileExtensionsHandler implements CommandLineHandler {
method getDescription (line 39) | @Override
method processCommandLineKey (line 46) | @Override
method getKeyName (line 62) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/FileExtensionsHandler.java
class FileExtensionsHandler (line 35) | public class FileExtensionsHandler implements CommandLineHandler {
method getDescription (line 39) | @Override
method processCommandLineKey (line 45) | @Override
method getKeyName (line 62) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/GlobalVariableDefiningFileHandler.java
class GlobalVariableDefiningFileHandler (line 35) | public class GlobalVariableDefiningFileHandler implements CommandLineHan...
method getDescription (line 39) | @Override
method processCommandLineKey (line 44) | @Override
method getKeyName (line 91) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/GlobalVariableHandler.java
class GlobalVariableHandler (line 36) | public class GlobalVariableHandler implements CommandLineHandler {
method getDescription (line 40) | @Override
method processCommandLineKey (line 45) | @Override
method getKeyName (line 77) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/HelpHandler.java
class HelpHandler (line 32) | public class HelpHandler implements CommandLineHandler {
method getDescription (line 36) | @Override
method processCommandLineKey (line 41) | @Override
method getKeyName (line 58) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/InCharsetHandler.java
class InCharsetHandler (line 34) | public class InCharsetHandler implements CommandLineHandler {
method getKeyName (line 38) | @Override
method getDescription (line 43) | @Override
method processCommandLineKey (line 49) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/KeepAttributesHandler.java
class KeepAttributesHandler (line 31) | public class KeepAttributesHandler implements CommandLineHandler {
method getDescription (line 35) | @Override
method processCommandLineKey (line 40) | @Override
method getKeyName (line 52) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/KeepCommentsHandler.java
class KeepCommentsHandler (line 37) | public class KeepCommentsHandler implements CommandLineHandler {
method getDescription (line 41) | @Override
method processCommandLineKey (line 47) | @Override
method getKeyName (line 71) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/KeepLineHandler.java
class KeepLineHandler (line 32) | public class KeepLineHandler implements CommandLineHandler {
method getDescription (line 36) | @Override
method processCommandLineKey (line 41) | @Override
method getKeyName (line 53) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/OutCharsetHandler.java
class OutCharsetHandler (line 34) | public class OutCharsetHandler implements CommandLineHandler {
method getKeyName (line 38) | @Override
method getDescription (line 43) | @Override
method processCommandLineKey (line 49) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/PreserveIndentDirectiveHandler.java
class PreserveIndentDirectiveHandler (line 29) | public class PreserveIndentDirectiveHandler implements CommandLineHandler {
method getDescription (line 33) | @Override
method processCommandLineKey (line 38) | @Override
method getKeyName (line 50) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/RemoveCommentsHandler.java
class RemoveCommentsHandler (line 32) | public class RemoveCommentsHandler implements CommandLineHandler {
method getDescription (line 36) | @Override
method processCommandLineKey (line 41) | @Override
method getKeyName (line 54) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/SourceDirectoryHandler.java
class SourceDirectoryHandler (line 39) | public class SourceDirectoryHandler implements CommandLineHandler {
method getDescription (line 43) | @Override
method processCommandLineKey (line 49) | @Override
method getKeyName (line 65) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/UnknownAsFalseHandler.java
class UnknownAsFalseHandler (line 32) | public class UnknownAsFalseHandler implements CommandLineHandler {
method getDescription (line 36) | @Override
method processCommandLineKey (line 41) | @Override
method getKeyName (line 53) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/cmdline/VerboseHandler.java
class VerboseHandler (line 32) | public class VerboseHandler implements CommandLineHandler {
method getDescription (line 36) | @Override
method processCommandLineKey (line 41) | @Override
method getKeyName (line 53) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/containers/FileInfoContainer.java
class FileInfoContainer (line 58) | @Data
method FileInfoContainer (line 103) | public FileInfoContainer(final File srcFile, final String targetFileName,
method findTailRemover (line 126) | private static String findTailRemover(final String str, final Preproce...
method isDoubleDollarPrefixed (line 150) | public static boolean isDoubleDollarPrefixed(final String line,
method isDollarBlockPrefixed (line 159) | public static boolean isDollarBlockPrefixed(final String line, final b...
method isDoubleDollarBlockPrefixed (line 167) | public static boolean isDoubleDollarBlockPrefixed(final String line,
method isSingleDollarPrefixed (line 184) | public static boolean isSingleDollarPrefixed(final String line,
method isJcpCommentLine (line 201) | public static boolean isJcpCommentLine(final String line, final boolea...
method isJcpDirectiveLine (line 214) | public static boolean isJcpDirectiveLine(final String line, final bool...
method findLastReadStringIndexInStack (line 222) | private static int findLastReadStringIndexInStack(final PreprocessingS...
method setTargetFolder (line 235) | public void setTargetFolder(final String folder) {
method setTargetFileName (line 239) | public void setTargetFileName(final String name) {
method makeTargetFilePathAsString (line 244) | public String makeTargetFilePathAsString() {
method toString (line 254) | @Override
method processGlobalDirectives (line 262) | public List<PreprocessingState.ExcludeIfInfo> processGlobalDirectives(
method isHashPrefixed (line 331) | private boolean isHashPrefixed(final String line, final PreprocessorCo...
method extractHashPrefixedDirective (line 350) | private String extractHashPrefixedDirective(final String line,
method extractDoubleDollarPrefixedDirective (line 365) | private String extractDoubleDollarPrefixedDirective(
method extractSingleDollarPrefixedDirective (line 394) | private String extractSingleDollarPrefixedDirective(final String line,
method preprocessFile (line 432) | public PreprocessingState preprocessFile(final PreprocessorContext con...
method flushTextBufferForRemovedComments (line 436) | @SuppressWarnings("StringEquality")
method preprocessFileWithNotification (line 509) | public PreprocessingState preprocessFileWithNotification(
method checkDirectiveArgumentRoughly (line 857) | private boolean checkDirectiveArgumentRoughly(final AbstractDirectiveH...
method processDirective (line 895) | private AfterDirectiveProcessingBehaviour processDirective(
method setExcluded (line 931) | public void setExcluded(final boolean flag) {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/containers/PreprocessingFlag.java
type PreprocessingFlag (line 29) | public enum PreprocessingFlag {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/containers/TextFileDataContainer.java
class TextFileDataContainer (line 32) | public final class TextFileDataContainer {
method TextFileDataContainer (line 44) | public TextFileDataContainer(final TextFileDataContainer item, final i...
method TextFileDataContainer (line 48) | public TextFileDataContainer(final File currentFile, final String[] text,
method disableAutoFlush (line 58) | public void disableAutoFlush() {
method isAutoFlush (line 62) | public boolean isAutoFlush() {
method getText (line 67) | public String[] getText() {
method getFile (line 72) | public File getFile() {
method reset (line 76) | public void reset() {
method isPresentedNextLineOnReadString (line 80) | public boolean isPresentedNextLineOnReadString() {
method nextLine (line 85) | public String nextLine() {
method getLastReadStringIndex (line 93) | public int getLastReadStringIndex() {
method getNextStringIndex (line 97) | public int getNextStringIndex() {
method setNextStringIndex (line 101) | public void setNextStringIndex(final int index) {
method hashCode (line 108) | @Override
method equals (line 113) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/context/CommentRemoverType.java
type CommentRemoverType (line 11) | public enum CommentRemoverType {
method makeListOfAllRemoverIds (line 30) | public static String makeListOfAllRemoverIds() {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/context/CommentTextProcessor.java
type CommentTextProcessor (line 13) | public interface CommentTextProcessor extends PreprocessorContextAware, ...
method processUncommentedText (line 25) | String processUncommentedText(
FILE: jcp/src/main/java/com/igormaznitsa/jcp/context/EnvironmentVariableProcessor.java
class EnvironmentVariableProcessor (line 39) | public class EnvironmentVariableProcessor implements SpecialVariableProc...
method EnvironmentVariableProcessor (line 44) | public EnvironmentVariableProcessor() {
method getVariableNames (line 57) | @Override
method getVariable (line 62) | @Override
method setVariable (line 71) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/context/ExecutionAllowable.java
type ExecutionAllowable (line 8) | public interface ExecutionAllowable {
method isAllowed (line 20) | boolean isAllowed(
FILE: jcp/src/main/java/com/igormaznitsa/jcp/context/JCPSpecialVariableProcessor.java
class JCPSpecialVariableProcessor (line 41) | public class JCPSpecialVariableProcessor implements SpecialVariableProce...
method getReference (line 67) | public static List<NameReferencePair> getReference() {
method getVariableNames (line 103) | @Override
method getVariable (line 127) | @Override
method assertNotGlobalPhase (line 190) | private void assertNotGlobalPhase(final String varName, final Preproce...
method setVariable (line 197) | @Override
class NameReferencePair (line 256) | public static final class NameReferencePair {
method NameReferencePair (line 261) | private NameReferencePair(final String name, final String reference) {
method getName (line 267) | public String getName() {
method getReference (line 272) | public String getReference() {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/context/PreprocessingState.java
class PreprocessingState (line 68) | public final class PreprocessingState {
method PreprocessingState (line 97) | PreprocessingState(final PreprocessorContext context, final Charset in...
method PreprocessingState (line 110) | PreprocessingState(final PreprocessorContext context, final FileInfoCo...
method PreprocessingState (line 126) | PreprocessingState(final PreprocessorContext context, final FileInfoCo...
method makeMock (line 143) | public static PreprocessingState makeMock(final PreprocessorContext co...
method isMockMode (line 147) | public boolean isMockMode() {
method isGlobalPhase (line 151) | public boolean isGlobalPhase() {
method setGlobalPhase (line 155) | public void setGlobalPhase(final boolean flag) {
method getLastReadString (line 159) | public String getLastReadString() {
method pushExcludeIfData (line 163) | public void pushExcludeIfData(
method getSelectedPrinter (line 179) | public ResettablePrinter getSelectedPrinter() {
method popAllExcludeIfInfoData (line 183) | public List<ExcludeIfInfo> popAllExcludeIfInfoData() {
method popExcludeIfData (line 190) | public ExcludeIfInfo popExcludeIfData() {
method getPreprocessingFlags (line 195) | public Set<PreprocessingFlag> getPreprocessingFlags() {
method findPrinter (line 199) | public ResettablePrinter findPrinter(final PrinterType type) {
method selectPrinter (line 212) | public void selectPrinter(final PrinterType type) {
method getRootTextContainer (line 229) | public TextFileDataContainer getRootTextContainer() {
method openFile (line 234) | public TextFileDataContainer openFile(final File file) throws IOExcept...
method peekIncludeStackFile (line 247) | public TextFileDataContainer peekIncludeStackFile() {
method getIncludeStack (line 251) | public List<TextFileDataContainer> getIncludeStack() {
method findActiveTextFileDataContainer (line 255) | public Optional<TextFileDataContainer> findActiveTextFileDataContainer...
method findFilePositionInfo (line 265) | public Optional<FilePositionInfo> findFilePositionInfo() {
method makeIncludeStack (line 270) | public FilePositionInfo[] makeIncludeStack() {
method getCurrentIncludeFileContainer (line 284) | public TextFileDataContainer getCurrentIncludeFileContainer() {
method popTextContainer (line 288) | public TextFileDataContainer popTextContainer() {
method getRootFileInfo (line 295) | public FileInfoContainer getRootFileInfo() {
method isIncludeStackEmpty (line 299) | public boolean isIncludeStackEmpty() {
method cloneTopTextDataContainer (line 303) | private TextFileDataContainer cloneTopTextDataContainer() {
method popWhile (line 310) | public PreprocessingState popWhile() {
method pushWhile (line 324) | public PreprocessingState pushWhile(final boolean makeActive) {
method peekWhile (line 334) | public TextFileDataContainer peekWhile() {
method hasReadLineNextLineInEnd (line 338) | public boolean hasReadLineNextLineInEnd() {
method nextLine (line 343) | public String nextLine() {
method goToString (line 350) | public PreprocessingState goToString(final int stringIndex) {
method pushIf (line 356) | public PreprocessingState pushIf(final boolean makeActive) {
method popAllIFUntilContainerWithFile (line 365) | public void popAllIFUntilContainerWithFile(final TextFileDataContainer...
method popIf (line 379) | public PreprocessingState popIf() {
method isAtActiveWhile (line 391) | public boolean isAtActiveWhile() {
method isAtActiveIf (line 399) | public boolean isAtActiveIf() {
method isDirectiveCanBeProcessedIgnoreBreak (line 407) | public boolean isDirectiveCanBeProcessedIgnoreBreak() {
method isDirectiveCanBeProcessed (line 412) | public boolean isDirectiveCanBeProcessed() {
method peekIf (line 418) | public TextFileDataContainer peekIf() {
method isIfStackEmpty (line 422) | public boolean isIfStackEmpty() {
method isWhileStackEmpty (line 426) | public boolean isWhileStackEmpty() {
method init (line 430) | private void init() {
method resetPrinters (line 437) | public void resetPrinters() {
method setBufferText (line 445) | public void setBufferText(final String text) {
method setBufferText (line 452) | public void setBufferText(final String text, final PrinterType printer...
method getCurrentText (line 474) | public String getCurrentText() {
method saveBuffersToStreams (line 480) | public void saveBuffersToStreams(final OutputStream prefix, final Outp...
method saveBuffersToFile (line 490) | public boolean saveBuffersToFile(final File outFile, final CommentRemo...
method writePrinterBuffers (line 565) | public Writer writePrinterBuffers(final Writer writer) throws IOExcept...
method makeException (line 582) | public PreprocessorException makeException(final String message, final...
type PrinterType (line 587) | public enum PrinterType {
class ExcludeIfInfo (line 594) | public static class ExcludeIfInfo {
method ExcludeIfInfo (line 600) | public ExcludeIfInfo(final FileInfoContainer fileInfoContainer, fina...
method getStringIndex (line 607) | public int getStringIndex() {
method getFileInfoContainer (line 612) | public FileInfoContainer getFileInfoContainer() {
method getCondition (line 617) | public String getCondition() {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/context/PreprocessorContext.java
class PreprocessorContext (line 66) | @Data
method PreprocessorContext (line 128) | public PreprocessorContext(final File baseDir) {
method PreprocessorContext (line 147) | public PreprocessorContext(final PreprocessorContext context) {
method makeStackView (line 204) | private static String makeStackView(
method decodeCharset (line 241) | private static Charset decodeCharset(final String charsetName) {
method addCommentTextProcessor (line 256) | public void addCommentTextProcessor(final CommentTextProcessor comment...
method removeCommentTextProcessor (line 266) | public void removeCommentTextProcessor(final CommentTextProcessor comm...
method getDirectiveHandlers (line 276) | public List<AbstractDirectiveHandler> getDirectiveHandlers() {
method addPreprocessedResource (line 280) | public void addPreprocessedResource(final FileInfoContainer container) {
method addAllPreprocessedResources (line 286) | public void addAllPreprocessedResources(final Collection<FileInfoConta...
method findPreprocessedResources (line 292) | public Set<FileInfoContainer> findPreprocessedResources() {
method fireNotificationStart (line 302) | public void fireNotificationStart(final List<PreprocessorContextAware>...
method fireNotificationStop (line 324) | public void fireNotificationStop(final Throwable error) {
method findAllInputFiles (line 340) | public Set<File> findAllInputFiles() {
method findAllProducedFiles (line 358) | public Set<File> findAllProducedFiles() {
method findFileInfoContainer (line 364) | public Optional<FileInfoContainer> findFileInfoContainer(final File fi...
method setEol (line 374) | public void setEol(final String eol) {
method setTarget (line 378) | public void setTarget(final File file) {
method getPreprocessorExtensions (line 382) | public List<PreprocessorExtension> getPreprocessorExtensions() {
method setPreprocessorExtensions (line 386) | public void setPreprocessorExtensions(final List<PreprocessorExtension...
method addPreprocessorExtension (line 400) | public void addPreprocessorExtension(final PreprocessorExtension exten...
method isCloned (line 418) | public boolean isCloned() {
method setPreprocessorLogger (line 427) | public void setPreprocessorLogger(final PreprocessorLogger logger) {
method registerSpecialVariableProcessor (line 437) | public void registerSpecialVariableProcessor(final SpecialVariableProc...
method logInfo (line 456) | public void logInfo(final String text) {
method logError (line 467) | public void logError(final String text) {
method logDebug (line 479) | public void logDebug(final String text) {
method logDebug (line 491) | public void logDebug(final Supplier<String> textSupplier) {
method logWarning (line 502) | public void logWarning(final String text) {
method setSharedResource (line 514) | public void setSharedResource(final String name, final Object obj) {
method getSharedResource (line 528) | public Object getSharedResource(final String name) {
method removeSharedResource (line 539) | public Object removeSharedResource(final String name) {
method setSources (line 550) | public PreprocessorContext setSources(final List<String> folderPaths) {
method getExtensions (line 563) | public Set<String> getExtensions() {
method setExtensions (line 573) | public PreprocessorContext setExtensions(final List<String> extensions) {
method isFileAllowedForPreprocessing (line 584) | public final boolean isFileAllowedForPreprocessing(final File file) {
method isFileExcludedByExtension (line 598) | public final boolean isFileExcludedByExtension(final File file) {
method getExcludeExtensions (line 608) | public Set<String> getExcludeExtensions() {
method setExcludeExtensions (line 618) | public PreprocessorContext setExcludeExtensions(
method setLocalVariable (line 632) | public PreprocessorContext setLocalVariable(final String name, final V...
method removeLocalVariable (line 665) | public PreprocessorContext removeLocalVariable(final String name) {
method removeGlobalVariable (line 694) | public PreprocessorContext removeGlobalVariable(final String name) {
method getLocalVariable (line 722) | public Value getLocalVariable(final String name) {
method containsLocalVariable (line 742) | public boolean containsLocalVariable(final String name) {
method clearLocalVariables (line 761) | public PreprocessorContext clearLocalVariables() {
method findAllowedSpecialVariableProcessor (line 766) | private Optional<SpecialVariableProcessor> findAllowedSpecialVariableP...
method setGlobalVariable (line 780) | public PreprocessorContext setGlobalVariable(final String name, final ...
method containsGlobalVariable (line 820) | public boolean containsGlobalVariable(final String name) {
method findVariableForName (line 841) | public Value findVariableForName(final String name, final boolean enfo...
method isGlobalVariable (line 882) | public boolean isGlobalVariable(final String variableName) {
method isLocalVariable (line 898) | public boolean isLocalVariable(final String variableName) {
method createDestinationFileForPath (line 913) | public File createDestinationFileForPath(final String path) {
method isFileInBaseDir (line 930) | public boolean isFileInBaseDir(final File file) {
method findFileInSources (line 944) | public File findFileInSources(final String path) {
method findFileInSources (line 957) | public File findFileInSources(final String path, final boolean mustExi...
method registerConfigFile (line 1028) | public void registerConfigFile(final File file) {
method produceNewPreprocessingState (line 1041) | public PreprocessingState produceNewPreprocessingState(final FileInfoC...
method makeNewPreprocessorState (line 1060) | protected PreprocessingState makeNewPreprocessorState(final Charset so...
method makeNewPreprocessorState (line 1065) | protected PreprocessingState makeNewPreprocessorState(final FileInfoCo...
method makeNewPreprocessorState (line 1076) | protected PreprocessingState makeNewPreprocessorState(final FileInfoCo...
method produceNewPreprocessingState (line 1095) | public PreprocessingState produceNewPreprocessingState(final FileInfoC...
method getPreprocessingState (line 1107) | public PreprocessingState getPreprocessingState() {
method makeException (line 1118) | public PreprocessorException makeException(final String text, final Th...
method logForVerbose (line 1130) | public void logForVerbose(final String str) {
class SourceFolder (line 1139) | public final static class SourceFolder {
method SourceFolder (line 1143) | public SourceFolder(final File baseDir, final String path) {
method getAsString (line 1149) | public String getAsString() {
method getAsFile (line 1153) | public File getAsFile() {
method getNormalizedAbsolutePath (line 1157) | public String getNormalizedAbsolutePath(final boolean separatorCharE...
method toString (line 1165) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/context/PreprocessorContextAware.java
type PreprocessorContextAware (line 8) | public interface PreprocessorContextAware {
method onContextStarted (line 14) | default void onContextStarted(PreprocessorContext context) {
method onContextStopped (line 24) | default void onContextStopped(PreprocessorContext context, Throwable e...
FILE: jcp/src/main/java/com/igormaznitsa/jcp/context/SpecialVariableProcessor.java
type SpecialVariableProcessor (line 33) | public interface SpecialVariableProcessor extends PreprocessorContextAware,
method getVariableNames (line 42) | Set<String> getVariableNames();
method isAllowed (line 44) | @Override
method getVariable (line 57) | Value getVariable(String varName, PreprocessorContext context);
method setVariable (line 66) | void setVariable(String varName, Value value, PreprocessorContext cont...
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/AbortDirectiveHandler.java
class AbortDirectiveHandler (line 33) | public class AbortDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 35) | @Override
method getReference (line 40) | @Override
method getArgumentType (line 45) | @Override
method execute (line 50) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/AbstractDirectiveHandler.java
class AbstractDirectiveHandler (line 34) | public abstract class AbstractDirectiveHandler {
method findAllDirectives (line 57) | public static List<AbstractDirectiveHandler> findAllDirectives() {
method getName (line 105) | public abstract String getName();
method getReference (line 113) | public abstract String getReference();
method getFullName (line 121) | public String getFullName() {
method getArgumentType (line 131) | public DirectiveArgumentType getArgumentType() {
method execute (line 143) | public abstract AfterDirectiveProcessingBehaviour execute(String tailS...
method executeOnlyWhenExecutionAllowed (line 153) | public boolean executeOnlyWhenExecutionAllowed() {
method isGlobalPhaseAllowed (line 164) | public boolean isGlobalPhaseAllowed() {
method isPreprocessingPhaseAllowed (line 175) | public boolean isPreprocessingPhaseAllowed() {
method isDeprecated (line 184) | public boolean isDeprecated() {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/ActionDirectiveHandler.java
class ActionDirectiveHandler (line 44) | public class ActionDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 46) | @Override
method getReference (line 51) | @Override
method getArgumentType (line 56) | @Override
method execute (line 61) | @Override
method parseString (line 99) | private List<ExpressionTree> parseString(final String str, final Prepr...
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/AfterDirectiveProcessingBehaviour.java
type AfterDirectiveProcessingBehaviour (line 29) | public enum AfterDirectiveProcessingBehaviour {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/BreakDirectiveHandler.java
class BreakDirectiveHandler (line 34) | public class BreakDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 36) | @Override
method getReference (line 41) | @Override
method execute (line 46) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/CommentNextLineDirectiveHandler.java
class CommentNextLineDirectiveHandler (line 32) | public class CommentNextLineDirectiveHandler extends AbstractDirectiveHa...
method getName (line 34) | @Override
method getReference (line 39) | @Override
method execute (line 44) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/ContinueDirectiveHandler.java
class ContinueDirectiveHandler (line 34) | public class ContinueDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 36) | @Override
method getReference (line 41) | @Override
method execute (line 46) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/DefineDirectiveHandler.java
class DefineDirectiveHandler (line 40) | public class DefineDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 42) | @Override
method getArgumentType (line 47) | @Override
method getReference (line 52) | @Override
method process (line 57) | protected void process(final PreprocessorContext context, final String...
method execute (line 65) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/DefinelDirectiveHandler.java
class DefinelDirectiveHandler (line 32) | public class DefinelDirectiveHandler extends DefineDirectiveHandler {
method getName (line 34) | @Override
method getReference (line 40) | @Override
method process (line 46) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/DirectiveArgumentType.java
type DirectiveArgumentType (line 29) | public enum DirectiveArgumentType {
method DirectiveArgumentType (line 43) | DirectiveArgumentType(final String str) {
method getAsText (line 47) | public String getAsText() {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/EchoDirectiveHandler.java
class EchoDirectiveHandler (line 32) | public class EchoDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 34) | @Override
method getArgumentType (line 39) | @Override
method getReference (line 44) | @Override
method execute (line 49) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/ElseDirectiveHandler.java
class ElseDirectiveHandler (line 33) | public class ElseDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 35) | @Override
method getReference (line 40) | @Override
method execute (line 45) | @Override
method executeOnlyWhenExecutionAllowed (line 64) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/EndDirectiveHandler.java
class EndDirectiveHandler (line 35) | public class EndDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 37) | @Override
method getReference (line 42) | @Override
method execute (line 47) | @Override
method executeOnlyWhenExecutionAllowed (line 72) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/EndIfDirectiveHandler.java
class EndIfDirectiveHandler (line 33) | public class EndIfDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 35) | @Override
method executeOnlyWhenExecutionAllowed (line 41) | @Override
method getReference (line 46) | @Override
method execute (line 51) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/ErrorDirectiveHandler.java
class ErrorDirectiveHandler (line 33) | public class ErrorDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 35) | @Override
method getArgumentType (line 40) | @Override
method getReference (line 45) | @Override
method process (line 50) | protected void process(final PreprocessorContext context, final String...
method execute (line 56) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/ExcludeIfDirectiveHandler.java
class ExcludeIfDirectiveHandler (line 34) | public class ExcludeIfDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 36) | @Override
method getReference (line 41) | @Override
method isGlobalPhaseAllowed (line 46) | @Override
method isPreprocessingPhaseAllowed (line 51) | @Override
method getArgumentType (line 56) | @Override
method execute (line 61) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/ExitDirectiveHandler.java
class ExitDirectiveHandler (line 33) | public class ExitDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 35) | @Override
method getReference (line 40) | @Override
method execute (line 45) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/ExitIfDirectiveHandler.java
class ExitIfDirectiveHandler (line 36) | public class ExitIfDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 38) | @Override
method getReference (line 43) | @Override
method getArgumentType (line 48) | @Override
method execute (line 53) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/FlushDirectiveHandler.java
class FlushDirectiveHandler (line 36) | public class FlushDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 38) | @Override
method getReference (line 43) | @Override
method execute (line 48) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/GlobalDirectiveHandler.java
class GlobalDirectiveHandler (line 34) | public class GlobalDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 36) | @Override
method getArgumentType (line 41) | @Override
method execute (line 46) | @Override
method getReference (line 53) | @Override
method isGlobalPhaseAllowed (line 58) | @Override
method isPreprocessingPhaseAllowed (line 63) | @Override
method processDefinition (line 68) | private void processDefinition(final String string, final Preprocessor...
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/GlobalElseDirectiveHandler.java
class GlobalElseDirectiveHandler (line 33) | public class GlobalElseDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 35) | @Override
method getReference (line 40) | @Override
method isGlobalPhaseAllowed (line 45) | @Override
method isPreprocessingPhaseAllowed (line 50) | @Override
method execute (line 55) | @Override
method executeOnlyWhenExecutionAllowed (line 75) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/GlobalEndIfDirectiveHandler.java
class GlobalEndIfDirectiveHandler (line 33) | public class GlobalEndIfDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 35) | @Override
method executeOnlyWhenExecutionAllowed (line 41) | @Override
method getReference (line 46) | @Override
method isGlobalPhaseAllowed (line 51) | @Override
method isPreprocessingPhaseAllowed (line 56) | @Override
method execute (line 61) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/GlobalIfDirectiveHandler.java
class GlobalIfDirectiveHandler (line 36) | public class GlobalIfDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 38) | @Override
method getReference (line 43) | @Override
method getArgumentType (line 48) | @Override
method executeOnlyWhenExecutionAllowed (line 53) | @Override
method isGlobalPhaseAllowed (line 58) | @Override
method isPreprocessingPhaseAllowed (line 63) | @Override
method execute (line 68) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/IfDefDirectiveHandler.java
class IfDefDirectiveHandler (line 29) | public class IfDefDirectiveHandler extends IfDefinedDirectiveHandler {
method getName (line 31) | @Override
method getReference (line 36) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/IfDefinedDirectiveHandler.java
class IfDefinedDirectiveHandler (line 33) | public class IfDefinedDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 35) | @Override
method getReference (line 40) | @Override
method postprocessFlag (line 46) | protected boolean postprocessFlag(final boolean variableExists) {
method executeOnlyWhenExecutionAllowed (line 50) | @Override
method getArgumentType (line 55) | @Override
method execute (line 60) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/IfDirectiveHandler.java
class IfDirectiveHandler (line 36) | public class IfDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 38) | @Override
method getReference (line 43) | @Override
method getArgumentType (line 49) | @Override
method executeOnlyWhenExecutionAllowed (line 54) | @Override
method execute (line 59) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/IfNDefDirectiveHandler.java
class IfNDefDirectiveHandler (line 29) | public class IfNDefDirectiveHandler extends IfDefinedDirectiveHandler {
method getName (line 31) | @Override
method postprocessFlag (line 36) | @Override
method getReference (line 41) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/IncludeDirectiveHandler.java
class IncludeDirectiveHandler (line 38) | public class IncludeDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 40) | @Override
method getReference (line 45) | @Override
method getArgumentType (line 50) | @Override
method execute (line 55) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/LocalDirectiveHandler.java
class LocalDirectiveHandler (line 34) | public class LocalDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 36) | @Override
method execute (line 41) | @Override
method getReference (line 48) | @Override
method getArgumentType (line 53) | @Override
method processLocalDefinition (line 58) | private void processLocalDefinition(final String string, final Preproc...
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/MsgDirectiveHandler.java
class MsgDirectiveHandler (line 32) | public class MsgDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 34) | @Override
method getArgumentType (line 39) | @Override
method getReference (line 44) | @Override
method execute (line 49) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/NoAutoFlushHandler.java
class NoAutoFlushHandler (line 33) | public class NoAutoFlushHandler extends AbstractDirectiveHandler {
method getName (line 35) | @Override
method getReference (line 40) | @Override
method execute (line 45) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/OutDisabledDirectiveHandler.java
class OutDisabledDirectiveHandler (line 32) | public class OutDisabledDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 34) | @Override
method getReference (line 39) | @Override
method execute (line 45) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/OutEnabledDirectiveHandler.java
class OutEnabledDirectiveHandler (line 32) | public class OutEnabledDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 34) | @Override
method getReference (line 39) | @Override
method execute (line 44) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/OutNameDirectiveHandler.java
class OutNameDirectiveHandler (line 34) | public class OutNameDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 36) | @Override
method getReference (line 41) | @Override
method getArgumentType (line 47) | @Override
method execute (line 52) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/OutdirDirectiveHandler.java
class OutdirDirectiveHandler (line 34) | public class OutdirDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 36) | @Override
method getReference (line 41) | @Override
method getArgumentType (line 47) | @Override
method execute (line 52) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/PostfixDirectiveHandler.java
class PostfixDirectiveHandler (line 32) | public class PostfixDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 34) | @Override
method getReference (line 39) | @Override
method getArgumentType (line 44) | @Override
method execute (line 49) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/PrefixDirectiveHandler.java
class PrefixDirectiveHandler (line 32) | public class PrefixDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 34) | @Override
method getReference (line 39) | @Override
method getArgumentType (line 44) | @Override
method execute (line 49) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/UndefDirectiveHandler.java
class UndefDirectiveHandler (line 32) | public class UndefDirectiveHandler extends DefineDirectiveHandler {
method getName (line 34) | @Override
method getReference (line 39) | @Override
method process (line 44) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/WarningDirectiveHandler.java
class WarningDirectiveHandler (line 32) | public class WarningDirectiveHandler extends ErrorDirectiveHandler {
method getName (line 34) | @Override
method getReference (line 39) | @Override
method process (line 44) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/directives/WhileDirectiveHandler.java
class WhileDirectiveHandler (line 36) | public class WhileDirectiveHandler extends AbstractDirectiveHandler {
method getName (line 38) | @Override
method getReference (line 43) | @Override
method executeOnlyWhenExecutionAllowed (line 48) | @Override
method getArgumentType (line 53) | @Override
method execute (line 58) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/exceptions/FilePositionInfo.java
class FilePositionInfo (line 34) | public class FilePositionInfo {
method FilePositionInfo (line 46) | public FilePositionInfo(final File file, final int stringIndex) {
method getFile (line 53) | public File getFile() {
method getStringIndex (line 62) | public int getStringIndex() {
method getLineNumber (line 71) | public int getLineNumber() {
method toShortString (line 75) | public String toShortString() {
method toString (line 79) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/exceptions/PreprocessorException.java
class PreprocessorException (line 33) | public class PreprocessorException extends RuntimeException {
method PreprocessorException (line 40) | public PreprocessorException(final String message, final String proces...
method makeStackView (line 49) | private static String makeStackView(final FilePositionInfo[] list, fin...
method extractPreprocessorException (line 75) | public static PreprocessorException extractPreprocessorException(final...
method referenceAsString (line 90) | public static String referenceAsString(final char fillChar, final Thro...
method getRootFile (line 111) | public File getRootFile() {
method getProcessingFile (line 120) | public File getProcessingFile() {
method getLineNumber (line 128) | public int getLineNumber() {
method getProcessingString (line 137) | public String getProcessingString() {
method convertIncludeStackToString (line 142) | private String convertIncludeStackToString() {
method getIncludeChain (line 153) | public FilePositionInfo[] getIncludeChain() {
method toString (line 157) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/Expression.java
class Expression (line 45) | public class Expression {
method Expression (line 62) | private Expression(final ExpressionTree tree) {
method evalExpression (line 73) | public static Value evalExpression(final String expression, final Prep...
method evalTree (line 91) | public static Value evalTree(final ExpressionTree tree, final Preproce...
method evalFunction (line 96) | private ExpressionTreeElement evalFunction(
method evalOperator (line 221) | private ExpressionTreeElement evalOperator(final ExpressionTreeElement...
method calculateTreeElement (line 322) | private ExpressionTreeElement calculateTreeElement(final ExpressionTre...
method eval (line 357) | private Value eval(final PreprocessorContext context) {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/ExpressionItem.java
type ExpressionItem (line 30) | public interface ExpressionItem {
method getExpressionItemType (line 37) | ExpressionItemType getExpressionItemType();
method getExpressionItemPriority (line 44) | ExpressionItemPriority getExpressionItemPriority();
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/ExpressionItemPriority.java
type ExpressionItemPriority (line 24) | public enum ExpressionItemPriority {
method ExpressionItemPriority (line 35) | ExpressionItemPriority(final int priority) {
method getPriority (line 39) | public int getPriority() {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/ExpressionItemType.java
type ExpressionItemType (line 24) | public enum ExpressionItemType {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/ExpressionParser.java
class ExpressionParser (line 51) | public final class ExpressionParser {
method getInstance (line 58) | public static ExpressionParser getInstance() {
method isDelimiterOrOperatorChar (line 62) | private static boolean isDelimiterOrOperatorChar(final char chr) {
method isDelimiter (line 66) | private static boolean isDelimiter(final char chr) {
method isOperatorChar (line 77) | private static boolean isOperatorChar(final char chr) {
method parse (line 105) | public ExpressionTree parse(final String expressionStr, final Preproce...
method readExpression (line 136) | public ExpressionItem readExpression(
method readFunction (line 211) | private ExpressionTree readFunction(
method readFunctionArgument (line 291) | ExpressionItem readFunctionArgument(final PushbackReader reader, final...
method hex2int (line 326) | private int hex2int(final PreprocessorContext context, final char chr) {
method nextItem (line 347) | ExpressionItem nextItem(final PushbackReader reader, final Preprocesso...
type ParserState (line 652) | private enum ParserState {
type SpecialItem (line 673) | public enum SpecialItem implements ExpressionItem {
method SpecialItem (line 679) | SpecialItem() {
method getExpressionItemPriority (line 682) | @Override
method getExpressionItemType (line 687) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/ExpressionTree.java
class ExpressionTree (line 34) | public class ExpressionTree {
method ExpressionTree (line 40) | public ExpressionTree() {
method ExpressionTree (line 44) | public ExpressionTree(final FilePositionInfo[] callStack, final String...
method isEmpty (line 54) | public boolean isEmpty() {
method addItem (line 63) | public void addItem(final ExpressionItem item) {
method addTree (line 85) | public void addTree(final ExpressionTree tree) {
method getRoot (line 103) | public ExpressionTreeElement getRoot() {
method postProcess (line 123) | public void postProcess() {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/ExpressionTreeElement.java
class ExpressionTreeElement (line 42) | public class ExpressionTreeElement {
method toString (line 91) | @Override
method ExpressionTreeElement (line 96) | private ExpressionTreeElement() {
method ExpressionTreeElement (line 108) | ExpressionTreeElement(final ExpressionItem item, final FilePositionInf...
method extractEffectiveChildren (line 142) | public List<ExpressionTreeElement> extractEffectiveChildren() {
method getExpectedArities (line 153) | public Set<Integer> getExpectedArities() {
method isEmptySlot (line 162) | public boolean isEmptySlot() {
method assertNotEmptySlot (line 166) | private void assertNotEmptySlot() {
method makeMaxPriority (line 175) | void makeMaxPriority() {
method getItem (line 185) | public ExpressionItem getItem() {
method getParent (line 195) | public ExpressionTreeElement getParent() {
method getPriority (line 204) | public int getPriority() {
method addSubTree (line 215) | public ExpressionTreeElement addSubTree(final ExpressionTree tree) {
method replaceElement (line 233) | public boolean replaceElement(final ExpressionTreeElement oldOne,
method getChildForIndex (line 268) | public ExpressionTreeElement getChildForIndex(final int index) {
method addTreeElement (line 280) | public ExpressionTreeElement addTreeElement(final ExpressionTreeElemen...
method isFull (line 332) | public boolean isFull() {
method fillArguments (line 341) | public void fillArguments(final List<ExpressionTree> arguments) {
method addElementToNextFreeSlot (line 386) | private void addElementToNextFreeSlot(final ExpressionTreeElement elem...
method postProcess (line 409) | public void postProcess() {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/Value.java
class Value (line 33) | public final class Value implements ExpressionItem {
method Value (line 48) | private Value(final String val) {
method Value (line 53) | private Value(final Long val) {
method Value (line 58) | private Value(final Float val) {
method Value (line 63) | private Value(final Boolean val) {
method valueOf (line 69) | public static Value valueOf(final Long val) {
method valueOf (line 74) | public static Value valueOf(final Boolean val) {
method valueOf (line 79) | public static Value valueOf(final Float val) {
method valueOf (line 84) | public static Value valueOf(final String val) {
method recognizeRawString (line 89) | public static Value recognizeRawString(final String str) {
method recognizeOf (line 116) | public static Value recognizeOf(final String str) {
method getValue (line 147) | public static Object getValue(final String value, final ValueType type) {
method recognizeType (line 178) | public static ValueType recognizeType(final String value) {
method getType (line 210) | public ValueType getType() {
method getValue (line 215) | public Object getValue() {
method asLong (line 220) | public Long asLong() {
method asFloat (line 228) | public Float asFloat() {
method asString (line 236) | public String asString() {
method asBoolean (line 244) | public Boolean asBoolean() {
method toStringDetail (line 252) | public String toStringDetail() {
method toString (line 273) | @Override
method toBoolean (line 291) | public boolean toBoolean() {
method getExpressionItemType (line 306) | @Override
method getExpressionItemPriority (line 311) | @Override
method equals (line 316) | @Override
method hashCode (line 330) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/ValueType.java
type ValueType (line 30) | public enum ValueType {
method ValueType (line 39) | ValueType(final String signature) {
method getSignature (line 44) | public String getSignature() {
method isCompatible (line 54) | public boolean isCompatible(final ValueType type) {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/Variable.java
class Variable (line 31) | public final class Variable implements ExpressionItem {
method Variable (line 43) | public Variable(final String varName) {
method getName (line 54) | public String getName() {
method getExpressionItemType (line 63) | @Override
method getExpressionItemPriority (line 74) | @Override
method toString (line 80) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/AbstractFunction.java
class AbstractFunction (line 53) | public abstract class AbstractFunction implements ExpressionItem {
method findAllFunctions (line 112) | public static List<AbstractFunction> findAllFunctions() {
method getFunctionNameMap (line 123) | public static Map<String, AbstractFunction> getFunctionNameMap() {
method findForClass (line 140) | public static <E extends AbstractFunction> E findForClass(final Class<...
method findForName (line 158) | public static AbstractFunction findForName(final String functionName) {
method getName (line 167) | public abstract String getName();
method getReference (line 174) | public abstract String getReference();
method getArity (line 182) | public abstract Set<Integer> getArity();
method getAllowedArgumentTypes (line 190) | public abstract List<List<ValueType>> getAllowedArgumentTypes();
method getResultType (line 197) | public abstract ValueType getResultType();
method getExpressionItemPriority (line 204) | @Override
method getExpressionItemType (line 215) | @Override
method toString (line 220) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/AbstractStrConverter.java
class AbstractStrConverter (line 35) | public abstract class AbstractStrConverter extends AbstractFunction {
method executeStr (line 40) | public abstract Value executeStr(final PreprocessorContext context, fi...
method getArity (line 42) | @Override
method getAllowedArgumentTypes (line 47) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionABS.java
class FunctionABS (line 35) | public final class FunctionABS extends AbstractFunction {
method getName (line 40) | @Override
method executeInt (line 45) | public Value executeInt(final PreprocessorContext context, final Value...
method executeFloat (line 49) | public Value executeFloat(final PreprocessorContext context, final Val...
method getArity (line 53) | @Override
method getAllowedArgumentTypes (line 58) | @Override
method getReference (line 63) | @Override
method getResultType (line 68) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionBINFILE.java
class FunctionBINFILE (line 45) | public class FunctionBINFILE extends AbstractFunction {
method hasSplitFlag (line 50) | private static boolean hasSplitFlag(final String name, final Type type) {
method hasDeflateFlag (line 55) | private static boolean hasDeflateFlag(final String name, final Type ty...
method convertTo (line 61) | private static String convertTo(final File file, final Type type, fina...
method deflate (line 131) | private static byte[] deflate(final byte[] data) throws IOException {
method getName (line 151) | @Override
method getReference (line 156) | @Override
method getArity (line 170) | @Override
method getAllowedArgumentTypes (line 175) | @Override
method getResultType (line 180) | @Override
method executeStrStr (line 186) | public Value executeStrStr(final PreprocessorContext context, final Va...
type Type (line 216) | private enum Type {
method Type (line 224) | Type(final String name) {
method find (line 229) | public static Type find(final String name) {
method getName (line 244) | public String getName() {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionDefinedByUser.java
class FunctionDefinedByUser (line 43) | public final class FunctionDefinedByUser extends AbstractFunction {
method FunctionDefinedByUser (line 59) | public FunctionDefinedByUser(final String name, final Set<Integer> all...
method getName (line 102) | @Override
method getArity (line 107) | @Override
method execute (line 113) | public Value execute(final PreprocessorContext context, final List<Val...
method getAllowedArgumentTypes (line 135) | @Override
method getReference (line 140) | @Override
method getResultType (line 145) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionESC.java
class FunctionESC (line 34) | public final class FunctionESC extends AbstractFunction {
method getName (line 38) | @Override
method executeStr (line 43) | public Value executeStr(final PreprocessorContext context, final Value...
method getArity (line 89) | @Override
method getAllowedArgumentTypes (line 94) | @Override
method getReference (line 99) | @Override
method getResultType (line 104) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionEVALFILE.java
class FunctionEVALFILE (line 43) | public class FunctionEVALFILE extends AbstractFunction {
method getName (line 47) | @Override
method getReference (line 52) | @Override
method getArity (line 57) | @Override
method getAllowedArgumentTypes (line 62) | @Override
method getResultType (line 67) | @Override
method prepareContext (line 72) | private PreprocessorContext prepareContext(final PreprocessorContext b...
method executeStr (line 82) | public Value executeStr(final PreprocessorContext context, final Value...
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionIS.java
class FunctionIS (line 35) | public final class FunctionIS extends AbstractFunction {
method getName (line 40) | @Override
method executeStrAny (line 46) | public Value executeStrAny(
method getArity (line 62) | @Override
method getAllowedArgumentTypes (line 67) | @Override
method getReference (line 72) | @Override
method getResultType (line 77) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionISSUBSTR.java
class FunctionISSUBSTR (line 35) | public final class FunctionISSUBSTR extends AbstractFunction {
method getName (line 40) | @Override
method executeStrStr (line 45) | public Value executeStrStr(final PreprocessorContext context, final Va...
method getArity (line 52) | @Override
method getAllowedArgumentTypes (line 57) | @Override
method getReference (line 62) | @Override
method getResultType (line 67) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionROUND.java
class FunctionROUND (line 35) | public final class FunctionROUND extends AbstractFunction {
method getName (line 40) | @Override
method executeInt (line 45) | public Value executeInt(final PreprocessorContext context, final Value...
method executeFloat (line 49) | public Value executeFloat(final PreprocessorContext context, final Val...
method getArity (line 53) | @Override
method getAllowedArgumentTypes (line 58) | @Override
method getReference (line 63) | @Override
method getResultType (line 68) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2CSV.java
class FunctionSTR2CSV (line 35) | public final class FunctionSTR2CSV extends AbstractStrConverter {
method getName (line 37) | @Override
method executeStr (line 42) | @Override
method getReference (line 48) | @Override
method getResultType (line 53) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2GO.java
class FunctionSTR2GO (line 36) | public final class FunctionSTR2GO extends AbstractFunction {
method toUnicode (line 41) | private static String toUnicode(final char c) {
method escapeGo (line 51) | private static String escapeGo(final String value) {
method getName (line 103) | @Override
method executeStrBool (line 109) | public Value executeStrBool(final PreprocessorContext context, final V...
method getArity (line 137) | @Override
method getAllowedArgumentTypes (line 142) | @Override
method getReference (line 147) | @Override
method getResultType (line 153) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2INT.java
class FunctionSTR2INT (line 33) | public final class FunctionSTR2INT extends AbstractStrConverter {
method getName (line 35) | @Override
method executeStr (line 40) | @Override
method getReference (line 45) | @Override
method getResultType (line 50) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2JAVA.java
class FunctionSTR2JAVA (line 38) | public final class FunctionSTR2JAVA extends AbstractFunction {
method getName (line 43) | @Override
method executeStrBool (line 48) | public Value executeStrBool(final PreprocessorContext context, final V...
method getArity (line 76) | @Override
method getAllowedArgumentTypes (line 81) | @Override
method getReference (line 86) | @Override
method getResultType (line 91) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2JS.java
class FunctionSTR2JS (line 35) | public final class FunctionSTR2JS extends AbstractStrConverter {
method getName (line 37) | @Override
method executeStr (line 42) | @Override
method getReference (line 48) | @Override
method getResultType (line 53) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2JSON.java
class FunctionSTR2JSON (line 35) | public final class FunctionSTR2JSON extends AbstractStrConverter {
method getName (line 37) | @Override
method executeStr (line 42) | @Override
method getReference (line 48) | @Override
method getResultType (line 53) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2WEB.java
class FunctionSTR2WEB (line 35) | public final class FunctionSTR2WEB extends AbstractStrConverter {
method getName (line 37) | @Override
method executeStr (line 42) | @Override
method getReference (line 59) | @Override
method getResultType (line 64) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2XML.java
class FunctionSTR2XML (line 35) | public final class FunctionSTR2XML extends AbstractStrConverter {
method getName (line 37) | @Override
method executeStr (line 42) | @Override
method getReference (line 48) | @Override
method getResultType (line 53) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTRLEN.java
class FunctionSTRLEN (line 35) | public final class FunctionSTRLEN extends AbstractFunction {
method getName (line 39) | @Override
method executeStr (line 45) | public Value executeStr(final PreprocessorContext context, final Value...
method getArity (line 49) | @Override
method getAllowedArgumentTypes (line 54) | @Override
method getReference (line 59) | @Override
method getResultType (line 65) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionTRIMLINES.java
class FunctionTRIMLINES (line 34) | public final class FunctionTRIMLINES extends AbstractStrConverter {
method getName (line 36) | @Override
method executeStr (line 41) | @Override
method getReference (line 59) | @Override
method getResultType (line 64) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/AbstractXMLFunction.java
class AbstractXMLFunction (line 36) | public abstract class AbstractXMLFunction extends AbstractFunction {
method makeElementListId (line 39) | public static String makeElementListId(final Element parentName, final...
method makeDocumentId (line 44) | public static String makeDocumentId(final String fileName) {
method makeDocumentRootId (line 49) | public static String makeDocumentRootId(final String documentId) {
method makeElementId (line 54) | public static String makeElementId(final String elementListId, final i...
method makeXPathListId (line 59) | public static String makeXPathListId(final String documentId, final St...
method makeXPathElementId (line 64) | public static String makeXPathElementId(final String documentId, final...
method buildPathForElement (line 69) | public static String buildPathForElement(final Element element) {
method getFirstLevelTextContent (line 90) | public static String getFirstLevelTextContent(final Node node) {
method prepareXPathExpression (line 103) | protected static XPathExpression prepareXPathExpression(final String p...
method getAttribute (line 111) | public String getAttribute(final PreprocessorContext context, final St...
method getCachedDocument (line 127) | public Document getCachedDocument(final PreprocessorContext context, f...
method findCachedElement (line 142) | public Element findCachedElement(final PreprocessorContext context, fi...
method getCachedElement (line 156) | public Element getCachedElement(final PreprocessorContext context, fin...
method findCachedElementList (line 166) | public NodeList findCachedElementList(final PreprocessorContext context,
method getCachedElementList (line 180) | public NodeList getCachedElementList(final PreprocessorContext context,
method getElementListSize (line 191) | public int getElementListSize(final PreprocessorContext context, final...
method findElementForIndex (line 196) | public String findElementForIndex(final PreprocessorContext context, f...
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_ATTR.java
class FunctionXML_ATTR (line 35) | public final class FunctionXML_ATTR extends AbstractXMLFunction {
method getName (line 40) | @Override
method executeStrStr (line 46) | public Value executeStrStr(final PreprocessorContext context, final Va...
method getArity (line 51) | @Override
method getAllowedArgumentTypes (line 56) | @Override
method getReference (line 61) | @Override
method getResultType (line 66) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_GET.java
class FunctionXML_GET (line 35) | public final class FunctionXML_GET extends AbstractXMLFunction {
method getName (line 40) | @Override
method executeStrInt (line 45) | public Value executeStrInt(final PreprocessorContext context, final Va...
method getArity (line 51) | @Override
method getAllowedArgumentTypes (line 56) | @Override
method getReference (line 61) | @Override
method getResultType (line 66) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_LIST.java
class FunctionXML_LIST (line 37) | public final class FunctionXML_LIST extends AbstractXMLFunction {
method getName (line 42) | @Override
method executeStrStr (line 47) | public Value executeStrStr(final PreprocessorContext context, final Va...
method getArity (line 63) | @Override
method getAllowedArgumentTypes (line 68) | @Override
method getReference (line 73) | @Override
method getResultType (line 78) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_NAME.java
class FunctionXML_NAME (line 36) | public final class FunctionXML_NAME extends AbstractXMLFunction {
method getName (line 40) | @Override
method executeStr (line 45) | public Value executeStr(final PreprocessorContext context, final Value...
method getArity (line 50) | @Override
method getAllowedArgumentTypes (line 55) | @Override
method getReference (line 60) | @Override
method getResultType (line 65) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_OPEN.java
class FunctionXML_OPEN (line 43) | public final class FunctionXML_OPEN extends AbstractXMLFunction {
method getName (line 50) | @Override
method executeStr (line 56) | public Value executeStr(final PreprocessorContext context, final Value...
method openFileAndParse (line 81) | private Document openFileAndParse(final PreprocessorContext context, f...
method getArity (line 98) | @Override
method getAllowedArgumentTypes (line 103) | @Override
method getReference (line 108) | @Override
method getResultType (line 113) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_ROOT.java
class FunctionXML_ROOT (line 35) | public final class FunctionXML_ROOT extends AbstractXMLFunction {
method getName (line 39) | @Override
method executeStr (line 44) | public Value executeStr(final PreprocessorContext context, final Value...
method getArity (line 54) | @Override
method getAllowedArgumentTypes (line 59) | @Override
method getReference (line 64) | @Override
method getResultType (line 69) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_SIZE.java
class FunctionXML_SIZE (line 35) | public final class FunctionXML_SIZE extends AbstractXMLFunction {
method getName (line 39) | @Override
method executeStr (line 44) | public Value executeStr(final PreprocessorContext context, final Value...
method getArity (line 48) | @Override
method getAllowedArgumentTypes (line 53) | @Override
method getReference (line 58) | @Override
method getResultType (line 63) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_TEXT.java
class FunctionXML_TEXT (line 36) | public final class FunctionXML_TEXT extends AbstractXMLFunction {
method getName (line 40) | @Override
method executeStr (line 45) | public Value executeStr(final PreprocessorContext context, final Value...
method getArity (line 50) | @Override
method getAllowedArgumentTypes (line 55) | @Override
method getReference (line 60) | @Override
method getResultType (line 65) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_XELEMENT.java
class FunctionXML_XELEMENT (line 40) | public final class FunctionXML_XELEMENT extends AbstractXMLFunction {
method getName (line 45) | @Override
method executeStrStr (line 50) | public Value executeStrStr(final PreprocessorContext context, final Va...
method getArity (line 77) | @Override
method getAllowedArgumentTypes (line 82) | @Override
method getReference (line 87) | @Override
method getResultType (line 92) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_XLIST.java
class FunctionXML_XLIST (line 40) | public final class FunctionXML_XLIST extends AbstractXMLFunction {
method getName (line 45) | @Override
method executeStrStr (line 50) | public Value executeStrStr(final PreprocessorContext context, final Va...
method getArity (line 72) | @Override
method getAllowedArgumentTypes (line 77) | @Override
method getReference (line 82) | @Override
method getResultType (line 87) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/NodeContainer.java
class NodeContainer (line 34) | public class NodeContainer {
method NodeContainer (line 40) | public NodeContainer(final long id, final Node node) {
method NodeContainer (line 47) | public NodeContainer(final long id, final NodeList list) {
method getNodeList (line 55) | public NodeList getNodeList() {
method getNode (line 60) | public Node getNode() {
method getId (line 64) | public long getId() {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/AbstractOperator.java
class AbstractOperator (line 34) | public abstract class AbstractOperator implements ExpressionItem {
method getAllOperators (line 66) | public static List<AbstractOperator> getAllOperators() {
method findForClass (line 81) | public static <E extends AbstractOperator> E findForClass(final Class<...
method getExpressionItemType (line 95) | @Override
method getArity (line 105) | public abstract int getArity();
method getKeyword (line 112) | public abstract String getKeyword();
method getReference (line 119) | public abstract String getReference();
method toString (line 121) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorADD.java
class OperatorADD (line 32) | public final class OperatorADD extends AbstractOperator {
method getArity (line 34) | @Override
method getReference (line 39) | @Override
method getKeyword (line 45) | @Override
method executeIntInt (line 52) | public Value executeIntInt(final Value arg1, final Value arg2) {
method executeFloatFloat (line 57) | public Value executeFloatFloat(final Value arg1, final Value arg2) {
method executeIntFloat (line 62) | public Value executeIntFloat(final Value arg1, final Value arg2) {
method executeFloatInt (line 67) | public Value executeFloatInt(final Value arg1, final Value arg2) {
method executeStrAny (line 72) | public Value executeStrAny(final Value arg1, final Value arg2) {
method executeAnyStr (line 77) | public Value executeAnyStr(final Value arg1, final Value arg2) {
method getExpressionItemPriority (line 81) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorAND.java
class OperatorAND (line 32) | public final class OperatorAND extends AbstractOperator {
method getArity (line 34) | @Override
method getReference (line 39) | @Override
method getKeyword (line 45) | @Override
method executeIntInt (line 52) | public Value executeIntInt(final Value arg1, final Value arg2) {
method executeBoolBool (line 57) | public Value executeBoolBool(final Value arg1, final Value arg2) {
method getExpressionItemPriority (line 61) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorDIV.java
class OperatorDIV (line 32) | public final class OperatorDIV extends AbstractOperator {
method getArity (line 34) | @Override
method getReference (line 39) | @Override
method getKeyword (line 45) | @Override
method executeIntInt (line 52) | public Value executeIntInt(final Value arg1, final Value arg2) {
method executeIntFloat (line 57) | public Value executeIntFloat(final Value arg1, final Value arg2) {
method executeFloatInt (line 62) | public Value executeFloatInt(final Value arg1, final Value arg2) {
method executeFloatFloat (line 67) | public Value executeFloatFloat(final Value arg1, final Value arg2) {
method getExpressionItemPriority (line 71) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorEQU.java
class OperatorEQU (line 32) | public final class OperatorEQU extends AbstractOperator {
method getArity (line 34) | @Override
method getReference (line 39) | @Override
method getKeyword (line 45) | @Override
method executeIntInt (line 52) | public Value executeIntInt(final Value arg1, final Value arg2) {
method executeFloatInt (line 57) | public Value executeFloatInt(final Value arg1, final Value arg2) {
method executeIntFloat (line 62) | public Value executeIntFloat(final Value arg1, final Value arg2) {
method executeFloatFloat (line 67) | public Value executeFloatFloat(final Value arg1, final Value arg2) {
method executeStrStr (line 72) | public Value executeStrStr(final Value arg1, final Value arg2) {
method executeBoolBool (line 77) | public Value executeBoolBool(final Value arg1, final Value arg2) {
method getExpressionItemPriority (line 81) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorGREAT.java
class OperatorGREAT (line 32) | public final class OperatorGREAT extends AbstractOperator {
method getArity (line 34) | @Override
method getReference (line 39) | @Override
method getKeyword (line 45) | @Override
method executeIntInt (line 52) | public Value executeIntInt(final Value arg1, final Value arg2) {
method executeFloatInt (line 57) | public Value executeFloatInt(final Value arg1, final Value arg2) {
method executeIntFloat (line 62) | public Value executeIntFloat(final Value arg1, final Value arg2) {
method executeFloatFloat (line 67) | public Value executeFloatFloat(final Value arg1, final Value arg2) {
method executeStrStr (line 72) | public Value executeStrStr(final Value arg1, final Value arg2) {
method getExpressionItemPriority (line 76) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorGREATEQU.java
class OperatorGREATEQU (line 32) | public final class OperatorGREATEQU extends AbstractOperator {
method getArity (line 34) | @Override
method getReference (line 39) | @Override
method getKeyword (line 45) | @Override
method executeIntInt (line 52) | public Value executeIntInt(final Value arg1, final Value arg2) {
method executeFloatInt (line 57) | public Value executeFloatInt(final Value arg1, final Value arg2) {
method executeIntFloat (line 62) | public Value executeIntFloat(final Value arg1, final Value arg2) {
method executeFloatFloat (line 67) | public Value executeFloatFloat(final Value arg1, final Value arg2) {
method executeStrStr (line 72) | public Value executeStrStr(final Value arg1, final Value arg2) {
method getExpressionItemPriority (line 76) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorLESS.java
class OperatorLESS (line 32) | public final class OperatorLESS extends AbstractOperator {
method getArity (line 34) | @Override
method getReference (line 39) | @Override
method getKeyword (line 45) | @Override
method executeIntInt (line 52) | public Value executeIntInt(final Value arg1, final Value arg2) {
method executeFloatInt (line 57) | public Value executeFloatInt(final Value arg1, final Value arg2) {
method executeIntFloat (line 62) | public Value executeIntFloat(final Value arg1, final Value arg2) {
method executeFloatFloat (line 67) | public Value executeFloatFloat(final Value arg1, final Value arg2) {
method executeStrStr (line 72) | public Value executeStrStr(final Value arg1, final Value arg2) {
method getExpressionItemPriority (line 76) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorLESSEQU.java
class OperatorLESSEQU (line 32) | public final class OperatorLESSEQU extends AbstractOperator {
method getArity (line 34) | @Override
method getReference (line 39) | @Override
method getKeyword (line 45) | @Override
method executeIntInt (line 52) | public Value executeIntInt(final Value arg1, final Value arg2) {
method executeFloatInt (line 57) | public Value executeFloatInt(final Value arg1, final Value arg2) {
method executeIntFloat (line 62) | public Value executeIntFloat(final Value arg1, final Value arg2) {
method executeFloatFloat (line 67) | public Value executeFloatFloat(final Value arg1, final Value arg2) {
method executeStrStr (line 72) | public Value executeStrStr(final Value arg1, final Value arg2) {
method getExpressionItemPriority (line 76) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorMOD.java
class OperatorMOD (line 32) | public final class OperatorMOD extends AbstractOperator {
method getArity (line 34) | @Override
method getReference (line 39) | @Override
method getKeyword (line 45) | @Override
method executeIntInt (line 52) | public Value executeIntInt(final Value arg1, final Value arg2) {
method executeIntFloat (line 57) | public Value executeIntFloat(final Value arg1, final Value arg2) {
method executeFloatInt (line 62) | public Value executeFloatInt(final Value arg1, final Value arg2) {
method executeFloatFloat (line 67) | public Value executeFloatFloat(final Value arg1, final Value arg2) {
method getExpressionItemPriority (line 71) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorMUL.java
class OperatorMUL (line 32) | public final class OperatorMUL extends AbstractOperator {
method getArity (line 34) | @Override
method getReference (line 39) | @Override
method getKeyword (line 45) | @Override
method executeIntInt (line 52) | public Value executeIntInt(final Value arg1, final Value arg2) {
method executeIntFloat (line 57) | public Value executeIntFloat(final Value arg1, final Value arg2) {
method executeFloatInt (line 62) | public Value executeFloatInt(final Value arg1, final Value arg2) {
method executeFloatFloat (line 67) | public Value executeFloatFloat(final Value arg1, final Value arg2) {
method getExpressionItemPriority (line 71) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorNOT.java
class OperatorNOT (line 32) | public class OperatorNOT extends AbstractOperator {
method getArity (line 34) | @Override
method getReference (line 39) | @Override
method getKeyword (line 45) | @Override
method executeInt (line 52) | public Value executeInt(final Value arg1) {
method executeBool (line 57) | public Value executeBool(final Value arg1) {
method getExpressionItemPriority (line 62) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorNOTEQU.java
class OperatorNOTEQU (line 32) | public final class OperatorNOTEQU extends AbstractOperator {
method getArity (line 34) | @Override
method getReference (line 39) | @Override
method getKeyword (line 45) | @Override
method executeIntInt (line 52) | public Value executeIntInt(final Value arg1, final Value arg2) {
method executeFloatInt (line 57) | public Value executeFloatInt(final Value arg1, final Value arg2) {
method executeIntFloat (line 62) | public Value executeIntFloat(final Value arg1, final Value arg2) {
method executeFloatFloat (line 67) | public Value executeFloatFloat(final Value arg1, final Value arg2) {
method executeStrStr (line 72) | public Value executeStrStr(final Value arg1, final Value arg2) {
method executeBoolBool (line 77) | public Value executeBoolBool(final Value arg1, final Value arg2) {
method getExpressionItemPriority (line 81) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorOR.java
class OperatorOR (line 32) | public final class OperatorOR extends AbstractOperator {
method getArity (line 34) | @Override
method getReference (line 39) | @Override
method getKeyword (line 45) | @Override
method executeIntInt (line 52) | public Value executeIntInt(final Value arg1, final Value arg2) {
method executeBoolBool (line 57) | public Value executeBoolBool(final Value arg1, final Value arg2) {
method getExpressionItemPriority (line 61) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorSUB.java
class OperatorSUB (line 32) | public final class OperatorSUB extends AbstractOperator {
method getArity (line 34) | @Override
method getReference (line 39) | @Override
method getKeyword (line 45) | @Override
method executeIntInt (line 52) | public Value executeIntInt(final Value arg1, final Value arg2) {
method executeIntFloat (line 57) | public Value executeIntFloat(final Value arg1, final Value arg2) {
method executeFloatInt (line 62) | public Value executeFloatInt(final Value arg1, final Value arg2) {
method executeFloatFloat (line 67) | public Value executeFloatFloat(final Value arg1, final Value arg2) {
method getExpressionItemPriority (line 71) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorXOR.java
class OperatorXOR (line 32) | public class OperatorXOR extends AbstractOperator {
method getArity (line 34) | @Override
method getReference (line 39) | @Override
method getKeyword (line 45) | @Override
method executeIntInt (line 52) | public Value executeIntInt(final Value arg1, final Value arg2) {
method executeBoolBool (line 57) | public Value executeBoolBool(final Value arg1, final Value arg2) {
method getExpressionItemPriority (line 61) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/extension/LogPreprocessorExtension.java
class LogPreprocessorExtension (line 20) | public class LogPreprocessorExtension implements PreprocessorExtension {
method findPosition (line 24) | private static String findPosition(final PreprocessorContext context) {
method hasAction (line 39) | @Override
method hasUserFunction (line 44) | @Override
method processAction (line 49) | @Override
method processUserFunction (line 57) | @Override
method getUserFunctionArity (line 67) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/extension/PreprocessorExtension.java
type PreprocessorExtension (line 37) | public interface PreprocessorExtension extends PreprocessorContextAware,...
method isAllowed (line 39) | @Override
method hasAction (line 51) | boolean hasAction(int arity);
method hasUserFunction (line 61) | boolean hasUserFunction(String name, Set<Integer> arity);
method processAction (line 73) | boolean processAction(PreprocessorContext context, List<Value> paramet...
method processUserFunction (line 85) | Value processUserFunction(PreprocessorContext context, String function...
method getUserFunctionArity (line 97) | Set<Integer> getUserFunctionArity(String functionName);
FILE: jcp/src/main/java/com/igormaznitsa/jcp/gradle/JcpGradlePlugin.java
class JcpGradlePlugin (line 6) | public class JcpGradlePlugin implements Plugin<Project> {
method apply (line 8) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/gradle/JcpTask.java
class JcpTask (line 41) | public class JcpTask extends DefaultTask {
method JcpTask (line 175) | @Inject
method getOutcomingFiles (line 214) | @OutputFiles
method getIncomingFiles (line 219) | @Internal
method getDescription (line 224) | @Internal
method getSources (line 230) | @InputFiles
method getEol (line 235) | @Input
method getKeepAttributes (line 240) | @Input
method getTarget (line 245) | @Input
method getSourceEncoding (line 250) | @Input
method getTargetEncoding (line 255) | @Input
method getIgnoreMissingSources (line 260) | @Input
method getExcludeExtensions (line 265) | @Input
method getFileExtensions (line 270) | @Input
method getUnknownVarAsFalse (line 275) | @Input
method getDryRun (line 280) | @Input
method getAllowBlocks (line 285) | @Input
method getVerbose (line 290) | @Input
method getClearTarget (line 295) | @Input
method getBaseDir (line 300) | @Input
method getActionPreprocessorExtensions (line 305) | @Input
method getCareForLastEol (line 310) | @Input
method getKeepComments (line 315) | @Input
method getVars (line 320) | @Input
method getExcludeFolders (line 325) | @Input
method getConfigFiles (line 330) | @Input
method getKeepLines (line 335) | @Input
method getAllowWhitespaces (line 340) | @Input
method getPreserveIndents (line 345) | @Input
method getDontOverwriteSameContent (line 350) | @Input
method preprocessTask (line 355) | @TaskAction
FILE: jcp/src/main/java/com/igormaznitsa/jcp/logger/PreprocessorLogger.java
type PreprocessorLogger (line 31) | public interface PreprocessorLogger {
method error (line 38) | void error(String message);
method info (line 45) | void info(String message);
method debug (line 53) | void debug(String message);
method debug (line 61) | default void debug(Supplier<String> supplier) {
method warning (line 72) | void warning(String message);
FILE: jcp/src/main/java/com/igormaznitsa/jcp/logger/SystemOutLogger.java
class SystemOutLogger (line 29) | public final class SystemOutLogger implements PreprocessorLogger {
method hashCode (line 40) | @Override
method equals (line 45) | @Override
method error (line 50) | @Override
method info (line 58) | @Override
method warning (line 66) | @Override
method debug (line 74) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/maven/MavenPropertiesImporter.java
class MavenPropertiesImporter (line 44) | public class MavenPropertiesImporter implements SpecialVariableProcessor {
method MavenPropertiesImporter (line 82) | public MavenPropertiesImporter(final PreprocessorContext context,
method getProperty (line 116) | static String getProperty(final MavenProject project, final String nam...
method normalizeGetter (line 152) | static String normalizeGetter(final String str) {
method findPropertyValue (line 156) | private String findPropertyValue(final String key) {
method printInfoAboutVarIntoLog (line 163) | private void printInfoAboutVarIntoLog(final PreprocessorContext contex...
method addVariableIntoInternalMap (line 172) | private void addVariableIntoInternalMap(final PreprocessorContext cont...
method getVariableNames (line 183) | @Override
method getVariable (line 188) | @Override
method setVariable (line 196) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/maven/PreprocessMojo.java
class PreprocessMojo (line 65) | @Data
method formSourceRootList (line 324) | private List<String> formSourceRootList() {
method replaceSourceRootByPreprocessingDestinationFolder (line 347) | private void replaceSourceRootByPreprocessingDestinationFolder(final P...
method makePreprocessorContext (line 380) | PreprocessorContext makePreprocessorContext() throws AbstractMojoExecu...
method execute (line 474) | @Override
method error (line 515) | @Override
method info (line 520) | @Override
method warning (line 525) | @Override
method debug (line 530) | @Override
method debug (line 535) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/removers/AbstractCommentRemover.java
class AbstractCommentRemover (line 10) | public abstract class AbstractCommentRemover {
method AbstractCommentRemover (line 16) | protected AbstractCommentRemover(
method makeCommentRemover (line 28) | public static AbstractCommentRemover makeCommentRemover(
method process (line 45) | public abstract Writer process() throws IOException;
method skipTillNextString (line 47) | protected void skipTillNextString() throws IOException {
method skipTillClosingJavaComments (line 61) | protected void skipTillClosingJavaComments() throws IOException {
method copyTillClosingJavaComments (line 81) | protected void copyTillClosingJavaComments() throws IOException {
method copyTillNextString (line 102) | protected void copyTillNextString() throws IOException {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/removers/CStyleCommentRemover.java
class CStyleCommentRemover (line 33) | public class CStyleCommentRemover extends AbstractCommentRemover {
method CStyleCommentRemover (line 35) | public CStyleCommentRemover(final Reader src, final Writer dst,
method process (line 40) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/removers/JcpCommentLineRemover.java
class JcpCommentLineRemover (line 38) | public class JcpCommentLineRemover extends AbstractCommentRemover {
method JcpCommentLineRemover (line 40) | public JcpCommentLineRemover(final Reader src, final Writer dst,
method process (line 45) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/removers/JustCopyRemover.java
class JustCopyRemover (line 7) | public class JustCopyRemover extends AbstractCommentRemover {
method JustCopyRemover (line 9) | public JustCopyRemover(final Reader src, final Writer dst,
method process (line 14) | @Override
FILE: jcp/src/main/java/com/igormaznitsa/jcp/utils/AntPathMatcher.java
class AntPathMatcher (line 16) | public class AntPathMatcher {
method AntPathMatcher (line 29) | public AntPathMatcher() {
method AntPathMatcher (line 33) | public AntPathMatcher(String pathSeparator) {
method tokenizeToStringArray (line 37) | public static String[] tokenizeToStringArray(
method toStringArray (line 58) | public static String[] toStringArray(Collection<String> collection) {
method isEmpty (line 62) | public static boolean isEmpty(Collection<?> collection) {
method deactivatePatternCache (line 66) | private void deactivatePatternCache() {
method match (line 72) | public boolean match(String pattern, String path) {
method doMatch (line 76) | protected boolean doMatch(String pattern, String path, boolean fullMat...
method isPotentialMatch (line 199) | private boolean isPotentialMatch(String path, String[] pattDirs) {
method skipSegment (line 215) | private int skipSegment(String path, int pos, String prefix) {
method skipSeparator (line 233) | private int skipSeparator(String path, int pos, String separator) {
method isWildcardChar (line 241) | private boolean isWildcardChar(char c) {
method tokenizePattern (line 250) | protected String[] tokenizePattern(String pattern) {
method tokenizePath (line 269) | protected String[] tokenizePath(String path) {
method matchStrings (line 273) | private boolean matchStrings(String pattern, String str) {
method getStringMatcher (line 277) | protected AntPathStringMatcher getStringMatcher(String pattern) {
class AntPathStringMatcher (line 296) | protected static class AntPathStringMatcher {
method AntPathStringMatcher (line 311) | public AntPathStringMatcher(String pattern, boolean caseSensitive) {
method quote (line 348) | private String quote(String s, int start, int end) {
method matchStrings (line 355) | public boolean matchStrings(String str) {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/utils/ArrayUtils.java
class ArrayUtils (line 26) | public final class ArrayUtils {
method ArrayUtils (line 37) | private ArrayUtils() {
method joinArrays (line 48) | @SafeVarargs
FILE: jcp/src/main/java/com/igormaznitsa/jcp/utils/GetUtils.java
class GetUtils (line 26) | public final class GetUtils {
method GetUtils (line 28) | private GetUtils() {
method ensureNonNull (line 41) | public static <T> T ensureNonNull(final T value, final T defaultValue) {
method ensureNonNullStr (line 52) | public static String ensureNonNullStr(final String value) {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/utils/IOUtils.java
class IOUtils (line 26) | public final class IOUtils {
method IOUtils (line 28) | private IOUtils() {
method closeQuietly (line 37) | public static Closeable closeQuietly(final Closeable closeable) {
FILE: jcp/src/main/java/com/igormaznitsa/jcp/utils/PreprocessorUtils.java
class PreprocessorUtils (line 65) | public final class PreprocessorUtils {
method PreprocessorUtils (line 77) | private PreprocessorUtils() {
method findActiveFileInfoContainer (line 88) | public static Optional<FileInfoContainer> findActiveFileInfoContainer(
method extractFilePositionInfo (line 109) | public static FilePositionInfo extractFilePositionInfo(
method fillContextByFoundServices (line 122) | public static void fillContextByFoundServices(final PreprocessorContex...
method findAndInstantiatePreprocessorExtensionForClassName (line 166) | public static PreprocessorExtension findAndInstantiatePreprocessorExte...
method findCommentRemoverForId (line 187) | public static CommentRemoverType findCommentRemoverForId(final String ...
method getFileExtension (line 212) | public static String getFileExtension(final File file) {
method makeFileReader (line 220) | public static BufferedReader makeFileReader(final File file, final Cha...
method replaceChar (line 237) | public static String[] replaceChar(final String[] source,
method extractTrimmedTail (line 247) | public static String extractTrimmedTail(final String prefix, final Str...
method extractTail (line 251) | public static String extractTail(final String prefix, final String val...
method copyFile (line 262) | public static void copyFile(final File source, final File dest, final ...
method copyFileAttributes (line 281) | public static boolean copyFileAttributes(final File from, final File t...
method replacePartByChar (line 289) | public static String replacePartByChar(final String text, final char c...
method findAndInstantiateAllServices (line 308) | public static <T> List<T> findAndInstantiateAllServices(final Class<T>...
method generateStringForChar (line 316) | public static String generateStringForChar(final char chr, final int l...
method processMacroses (line 323) | public static String processMacroses(final String processingString,
method checkFile (line 371) | private static void checkFile(final File file) throws IOException {
method readWholeTextFileIntoArray (line 379) | public static String[] readWholeTextFileIntoArray(final File file, fin...
method splitForEqualChar (line 442) | public static String[] splitForEqualChar(final String string) {
method splitForCharAndHoldEmptyLine (line 457) | public static List<String> splitForCharAndHoldEmptyLine(final String s...
method splitForChar (line 466) | public static List<String> splitForChar(final String string, final cha...
method normalizeVariableName (line 492) | public static String normalizeVariableName(final String name) {
method getFilePath (line 501) | public static String getFilePath(final File file) {
method throwPreprocessorException (line 513) | public static void throwPreprocessorException(final String msg, final ...
method replaceStringPrefix (line 520) | public static String[] replaceStringPrefix(
method getNextLineCodes (line 548) | public static String getNextLineCodes() {
method leftTrim (line 553) | public static String leftTrim(String rawString) {
method isFileContentEquals (line 565) | public static boolean isFileContentEquals(final File src, final File d...
FILE: jcp/src/main/java/com/igormaznitsa/jcp/utils/ResettablePrinter.java
class ResettablePrinter (line 33) | public class ResettablePrinter {
method ResettablePrinter (line 37) | public ResettablePrinter(final int initialCapacity) {
method getText (line 41) | public String getText() {
method isEmpty (line 45) | public boolean isEmpty() {
method writeBufferTo (line 49) | public void writeBufferTo(final Writer writer) throws IOException {
method getSize (line 55) | public int getSize() {
method reset (line 59) | public void reset() {
method print (line 63) | public void print(final String text) {
method println (line 69) | public void println(final String text, final String eol) {
FILE: jcp/src/test/java/com/igormaznitsa/jcp/AbstractMockPreprocessorContextTest.java
class AbstractMockPreprocessorContextTest (line 43) | @RunWith(PowerMockRunner.class)
method prepareMockContext (line 47) | protected PreprocessorContext prepareMockContext() throws Exception {
FILE: jcp/src/test/java/com/igormaznitsa/jcp/AbstractSpyPreprocessorContextTest.java
class AbstractSpyPreprocessorContextTest (line 43) | @RunWith(PowerMockRunner.class)
method prepareClassTests (line 49) | @BeforeClass
method doJanitor (line 55) | @AfterClass
method beforeTest (line 60) | @Before
method getCurrentTestFolder (line 65) | protected List<String> getCurrentTestFolder() {
method getDestinationFolder (line 73) | protected File getDestinationFolder() {
method assertDestinationFolderEmpty (line 77) | protected void assertDestinationFolderEmpty() throws Exception {
method preparePreprocessorContext (line 81) | protected PreprocessorContext preparePreprocessorContext(final List<St...
method preparePreprocessorContext (line 86) | protected PreprocessorContext preparePreprocessorContext(final List<St...
type ContextDataProvider (line 101) | public interface ContextDataProvider {
method getAllowSpaceBeforeDirectiveFlag (line 102) | boolean getAllowSpaceBeforeDirectiveFlag();
FILE: jcp/src/test/java/com/igormaznitsa/jcp/JCPreprocessorTest.java
class JCPreprocessorTest (line 43) | public final class JCPreprocessorTest {
method assertGVDFPreprocessorException (line 45) | private void assertGVDFPreprocessorException(final String file,
method testProcessGlobalVarDefiningFiles (line 62) | @Test
method testProcessGlobalVarDefiningFiles_ATsymbol (line 78) | @Test
method testJavaCommentRemoving (line 83) | @Test
method testCLIHandlerNameConflicts (line 139) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/TestUtils.java
class TestUtils (line 23) | public final class TestUtils {
method TestUtils (line 24) | private TestUtils() {
method normalizeNextLine (line 28) | public static String normalizeNextLine(final String text) {
method assertFilePath (line 32) | public static void assertFilePath(final String message, final File exp...
FILE: jcp/src/test/java/com/igormaznitsa/jcp/ant/PreprocessTaskTest.java
class PreprocessTaskTest (line 43) | public class PreprocessTaskTest {
method beforeClass (line 55) | @BeforeClass
method beforeTest (line 61) | @Before
method testSetSources (line 72) | @Test
method testTarget (line 80) | @Test
method testSourceEncoding (line 86) | @Test
method testTargetEncoding (line 94) | @Test
method testExcludedExtensions (line 102) | @Test
method testExtensions (line 115) | @Test
method testClearTarget (line 129) | @Test
method testKeepComments (line 137) | @Test
method testVerbose (line 146) | @Test
method testAllowWhitespace (line 154) | @Test
method testCareForLastEol (line 162) | @Test
method testEol (line 170) | @Test
method testPreserveIndents (line 176) | @Test
method testDontOverwriteSameContent (line 184) | @Test
method testDryRun (line 192) | @Test
method testUnknownVarAsFalse (line 200) | @Test
method testAddGlobal (line 208) | @Test
method testAddCfgFile (line 218) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/AbstractCommandLineHandlerTest.java
class AbstractCommandLineHandlerTest (line 33) | public abstract class AbstractCommandLineHandlerTest extends AbstractMoc...
method testExecution (line 35) | @Test
method testName (line 38) | @Test
method testDescription (line 41) | @Test
method testThatTheHandlerInTheHandlerList (line 44) | @Test
method assertDescription (line 47) | protected void assertDescription(final CommandLineHandler handler) {
method assertHandlerInTheHandlerList (line 54) | protected void assertHandlerInTheHandlerList(final CommandLineHandler ...
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/ActionPreprocessorExtensionHandlerTest.java
class ActionPreprocessorExtensionHandlerTest (line 14) | public class ActionPreprocessorExtensionHandlerTest extends AbstractComm...
method testThatTheHandlerInTheHandlerList (line 18) | @Override
method testErrorWithoutFlag (line 23) | @Test
method testExecution (line 27) | @Override
method testName (line 40) | @Override
method testDescription (line 45) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/AllowMergeBlockLineHandlerTest.java
class AllowMergeBlockLineHandlerTest (line 10) | public class AllowMergeBlockLineHandlerTest extends AbstractCommandLineH...
method testThatTheHandlerInTheHandlerList (line 14) | @Override
method testExecution (line 19) | @Override
method testName (line 31) | @Override
method testDescription (line 36) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/AllowWhitespaceDirectiveHandlerTest.java
class AllowWhitespaceDirectiveHandlerTest (line 35) | public class AllowWhitespaceDirectiveHandlerTest extends AbstractCommand...
method testThatTheHandlerInTheHandlerList (line 40) | @Override
method testErrorWithoutFlag (line 45) | @Test
method testExecution (line 49) | @Override
method testName (line 67) | @Override
method testDescription (line 72) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/CareForLastEolHandlerTest.java
class CareForLastEolHandlerTest (line 34) | public class CareForLastEolHandlerTest extends AbstractCommandLineHandle...
method testThatTheHandlerInTheHandlerList (line 38) | @Override
method testExecution (line 43) | @Override
method testName (line 61) | @Override
method testDescription (line 66) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/ClearTargetFolderHandlerTest.java
class ClearTargetFolderHandlerTest (line 34) | public class ClearTargetFolderHandlerTest extends AbstractCommandLineHan...
method testThatTheHandlerInTheHandlerList (line 38) | @Override
method testExecution (line 43) | @Override
method testName (line 61) | @Override
method testDescription (line 66) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/CommentRemoverTypeHandlerTest.java
class CommentRemoverTypeHandlerTest (line 33) | public class CommentRemoverTypeHandlerTest extends AbstractCommandLineHa...
method testThatTheHandlerInTheHandlerList (line 37) | @Override
method testExecution (line 42) | @Override
method testName (line 56) | @Override
method testDescription (line 61) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/DestinationDirectoryHandlerTest.java
class DestinationDirectoryHandlerTest (line 33) | public class DestinationDirectoryHandlerTest extends AbstractCommandLine...
method testThatTheHandlerInTheHandlerList (line 37) | @Override
method testExecution (line 42) | @Override
method testName (line 55) | @Override
method testDescription (line 60) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/DontOverwriteSameContentHandlerTest.java
class DontOverwriteSameContentHandlerTest (line 34) | public class DontOverwriteSameContentHandlerTest extends AbstractCommand...
method testThatTheHandlerInTheHandlerList (line 38) | @Override
method testExecution (line 43) | @Override
method testName (line 61) | @Override
method testDescription (line 66) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/ExcludeFoldersHandlerTest.java
class ExcludeFoldersHandlerTest (line 35) | @SuppressWarnings("unchecked")
method testThatTheHandlerInTheHandlerList (line 40) | @Override
method testExecution (line 45) | @Override
method testName (line 64) | @Override
method testDescription (line 69) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/ExcludedFileExtensionsHandlerTest.java
class ExcludedFileExtensionsHandlerTest (line 34) | public class ExcludedFileExtensionsHandlerTest extends AbstractCommandLi...
method testThatTheHandlerInTheHandlerList (line 38) | @Override
method testExecution (line 43) | @Override
method testName (line 58) | @Override
method testDescription (line 63) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/FileExtensionsHandlerTest.java
class FileExtensionsHandlerTest (line 34) | public class FileExtensionsHandlerTest extends AbstractCommandLineHandle...
method testThatTheHandlerInTheHandlerList (line 38) | @Override
method testExecution (line 43) | @Override
method testName (line 58) | @Override
method testDescription (line 63) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/GlobalVariableDefiningFileHandlerTest.java
class GlobalVariableDefiningFileHandlerTest (line 34) | public final class GlobalVariableDefiningFileHandlerTest extends Abstrac...
method testThatTheHandlerInTheHandlerList (line 39) | @Override
method testExecution (line 44) | @Override
method testExecution_Expression (line 62) | @Test
method testExecution_nonExistingFileWithExpression (line 83) | @Test(expected = PreprocessorException.class)
method testExecution_nonExistingFile (line 90) | @Test(expected = PreprocessorException.class)
method testExecution_emptyFile (line 97) | @Test(expected = PreprocessorException.class)
method testExecution_emptyFileForExpressionMode (line 104) | @Test(expected = PreprocessorException.class)
method testName (line 111) | @Override
method testDescription (line 116) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/GlobalVariableHandlerTest.java
class GlobalVariableHandlerTest (line 32) | public class GlobalVariableHandlerTest extends AbstractCommandLineHandle...
method testThatTheHandlerInTheHandlerList (line 36) | @Override
method testExecution (line 41) | @Override
method testName (line 55) | @Override
method testDescription (line 60) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/HelpHandlerTest.java
class HelpHandlerTest (line 30) | public class HelpHandlerTest extends AbstractCommandLineHandlerTest {
method testThatTheHandlerInTheHandlerList (line 34) | @Override
method testExecution (line 39) | @Override
method testName (line 53) | @Override
method testDescription (line 58) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/InCharsetHandlerTest.java
class InCharsetHandlerTest (line 34) | public class InCharsetHandlerTest extends AbstractCommandLineHandlerTest {
method testThatTheHandlerInTheHandlerList (line 38) | @Override
method testExecution (line 43) | @Override
method testName (line 58) | @Override
method testDescription (line 63) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/KeepLineHandlerTest.java
class KeepLineHandlerTest (line 34) | public class KeepLineHandlerTest extends AbstractCommandLineHandlerTest {
method testThatTheHandlerInTheHandlerList (line 38) | @Override
method testExecution (line 43) | @Override
method testName (line 61) | @Override
method testDescription (line 66) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/OutCharsetHandlerTest.java
class OutCharsetHandlerTest (line 33) | public class OutCharsetHandlerTest extends AbstractCommandLineHandlerTest {
method testThatTheHandlerInTheHandlerList (line 37) | @Override
method testExecution (line 42) | @Override
method testName (line 58) | @Override
method testDescription (line 63) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/PreserveIndentDirectiveHandlerTest.java
class PreserveIndentDirectiveHandlerTest (line 34) | public class PreserveIndentDirectiveHandlerTest extends AbstractCommandL...
method testThatTheHandlerInTheHandlerList (line 39) | @Override
method testExecution (line 44) | @Override
method testName (line 61) | @Override
method testDescription (line 66) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/RemoveCommentsHandlerTest.java
class RemoveCommentsHandlerTest (line 32) | public class RemoveCommentsHandlerTest extends AbstractCommandLineHandle...
method testThatTheHandlerInTheHandlerList (line 36) | @Override
method testExecution (line 41) | @Override
method testName (line 54) | @Override
method testDescription (line 59) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/SourceDirectoryHandlerTest.java
class SourceDirectoryHandlerTest (line 33) | public class SourceDirectoryHandlerTest extends AbstractCommandLineHandl...
method testThatTheHandlerInTheHandlerList (line 37) | @Override
method testExecution (line 42) | @Override
method testName (line 56) | @Override
method testDescription (line 61) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/UnknownAsFalseHandlerTest.java
class UnknownAsFalseHandlerTest (line 34) | public class UnknownAsFalseHandlerTest extends AbstractCommandLineHandle...
method testThatTheHandlerInTheHandlerList (line 38) | @Override
method testExecution (line 43) | @Override
method testName (line 61) | @Override
method testDescription (line 66) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/cmdline/VerboseHandlerTest.java
class VerboseHandlerTest (line 31) | public class VerboseHandlerTest extends AbstractCommandLineHandlerTest {
method testThatTheHandlerInTheHandlerList (line 35) | @Override
method testExecution (line 40) | @Override
method testName (line 52) | @Override
method testDescription (line 57) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/context/EnvironmentVariableProcessorTest.java
class EnvironmentVariableProcessorTest (line 32) | public class EnvironmentVariableProcessorTest extends AbstractMockPrepro...
method testReadVariable (line 34) | @Test
method testReadUnknownVariable (line 51) | @Test(expected = PreprocessorException.class)
method testWriteVariable (line 57) | @Test(expected = PreprocessorException.class)
FILE: jcp/src/test/java/com/igormaznitsa/jcp/context/JCPSpecialVariableProcessorTest.java
class JCPSpecialVariableProcessorTest (line 34) | public class JCPSpecialVariableProcessorTest extends AbstractMockPreproc...
method testReadVariable (line 36) | @Test
method testReadUnknownVariable (line 49) | @Test(expected = PreprocessorException.class)
method testWriteDisallowed (line 55) | @Test(expected = PreprocessorException.class)
FILE: jcp/src/test/java/com/igormaznitsa/jcp/context/PreprocessorContextTest.java
class PreprocessorContextTest (line 49) | @SuppressWarnings("rawtypes")
method extractDeclaredNonStaticNonFinalFields (line 54) | private static Set<Field> extractDeclaredNonStaticNonFinalFields(final...
method extractValues (line 65) | private static Map<Field, Object> extractValues(final PreprocessorCont...
method assertObjectValue (line 75) | private static void assertObjectValue(final String fieldName, final Ob...
method assertMapFields (line 120) | private static void assertMapFields(final String mapFieldName, final P...
method assertPreprocessorContextMaps (line 145) | private static void assertPreprocessorContextMaps(final PreprocessorCo...
method assertContextEquals (line 158) | private static void assertContextEquals(final Map<Field, Object> etalon,
method randomString (line 167) | private static String randomString() {
method fillByRandomValues (line 177) | @SuppressWarnings("unchecked")
method testConstuctorWithBaseContext_DefaultValues (line 326) | @Test
method testConstructorWithBaseContext_RandomValues (line 343) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/context/ProcessContentWithSpacesAndWithoutTest.java
class ProcessContentWithSpacesAndWithoutTest (line 34) | public class ProcessContentWithSpacesAndWithoutTest extends AbstractSpyP...
method testProcess_NoSpaced_SpacesNotAllowed (line 36) | @Test
method testProcess_NoSpaced_SpacesAllowed (line 44) | @Test
method testProcess_Spaced_SpacesNotAllowed (line 53) | @Test
method testProcess_Spaced_SpacesAllowed (line 64) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/AbortDirectiveHandlerTest.java
class AbortDirectiveHandlerTest (line 30) | public class AbortDirectiveHandlerTest extends AbstractDirectiveHandlerA...
method testExecution_wrongExpression (line 34) | @Test
method testExecution (line 39) | @Override
method testKeyword (line 44) | @Override
method testExecutionCondition (line 49) | @Override
method testReference (line 54) | @Override
method testPhase (line 59) | @Override
method testArgumentType (line 65) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/AbstractDirectiveHandlerAcceptanceTest.java
class AbstractDirectiveHandlerAcceptanceTest (line 56) | public abstract class AbstractDirectiveHandlerAcceptanceTest {
method beforeClass (line 60) | @BeforeClass
method testExecution (line 66) | @Test
method testKeyword (line 69) | @Test
method testExecutionCondition (line 72) | @Test
method testReference (line 75) | @Test
method testArgumentType (line 78) | @Test
method testPhase (line 81) | @Test
method assertReference (line 84) | protected void assertReference(final AbstractDirectiveHandler handler) {
method setGlobalVars (line 93) | private PreprocessorContext setGlobalVars(final PreprocessorContext co...
method assertPreprocessorException (line 103) | public void assertPreprocessorException(final String preprocessingText,
method assertGlobalPhaseException (line 120) | public void assertGlobalPhaseException(final String preprocessingText,
method preprocessStringAtGlobalPhase (line 135) | private PreprocessorContext preprocessStringAtGlobalPhase(final String...
method executeGlobalPhase (line 158) | public PreprocessorContext executeGlobalPhase(final String fileName,
method readWholeDataFromReader (line 175) | private void readWholeDataFromReader(final BufferedReader reader, fina...
method assertEqualsStringLists (line 186) | private void assertEqualsStringLists(final List<String> etalon, final ...
method internalPreprocessAndMatch (line 203) | private PreprocessorContext internalPreprocessAndMatch(final File srcf...
method println (line 287) | private void println(final String str, final boolean showWhitespaces) {
method parseStringForLines (line 298) | private List<String> parseStringForLines(final String text) throws IOE...
method preprocessString (line 318) | private PreprocessorContext preprocessString(
method assertFilePreprocessing (line 330) | public PreprocessorContext assertFilePreprocessing(
method assertFilePreprocessing (line 340) | public PreprocessorContext assertFilePreprocessing(final String testFi...
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/AbstractDirectiveHandlerTest.java
class AbstractDirectiveHandlerTest (line 30) | public class AbstractDirectiveHandlerTest {
method testPotentialConflictsBetweenDirectives (line 32) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/ActionDirectiveHandlerTest.java
class ActionDirectiveHandlerTest (line 43) | public class ActionDirectiveHandlerTest extends AbstractDirectiveHandler...
method testExecution (line 47) | @Test
method testExecutionWrongExpression (line 70) | @Test
method testKeyword (line 81) | @Test
method testExecutionCondition (line 87) | @Test
method testReference (line 93) | @Test
method testArgumentType (line 99) | @Override
method testPhase (line 104) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/CommentNextLineDirectiveHandlerTest.java
class CommentNextLineDirectiveHandlerTest (line 28) | public class CommentNextLineDirectiveHandlerTest extends AbstractDirecti...
method testExecution (line 33) | @Override
method testKeyword (line 38) | @Override
method testExecutionCondition (line 43) | @Override
method testReference (line 48) | @Override
method testPhase (line 53) | @Override
method testArgumentType (line 59) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/DefineDirectiveHandlerTest.java
class DefineDirectiveHandlerTest (line 30) | public class DefineDirectiveHandlerTest extends AbstractDirectiveHandler...
method testExecution (line 34) | @Override
method testExecution_wrongCases (line 41) | @Test
method testKeyword (line 48) | @Override
method testExecutionCondition (line 53) | @Override
method testReference (line 58) | @Override
method testPhase (line 63) | @Override
method testArgumentType (line 69) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/DefinelDirectiveHandlerTest.java
class DefinelDirectiveHandlerTest (line 30) | public class DefinelDirectiveHandlerTest extends AbstractDirectiveHandle...
method testExecution (line 34) | @Override
method testExecution_wrongCases (line 40) | @Test
method testKeyword (line 49) | @Override
method testExecutionCondition (line 54) | @Override
method testReference (line 59) | @Override
method testPhase (line 64) | @Override
method testArgumentType (line 70) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/EchoDirectiveHandlerTest.java
class EchoDirectiveHandlerTest (line 31) | public class EchoDirectiveHandlerTest extends AbstractDirectiveHandlerAc...
method testExecution (line 35) | @Override
method testKeyword (line 42) | @Override
method testExecutionCondition (line 47) | @Override
method testReference (line 52) | @Override
method testArgumentType (line 57) | @Override
method testPhase (line 62) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/ErrorDirectiveHandlerTest.java
class ErrorDirectiveHandlerTest (line 33) | public class ErrorDirectiveHandlerTest extends AbstractDirectiveHandlerA...
method testExecution (line 37) | @Override
method testExecution_wrongCases (line 49) | @Test
method testKeyword (line 57) | @Override
method testExecutionCondition (line 62) | @Override
method testReference (line 67) | @Override
method testArgumentType (line 72) | @Override
method testPhase (line 77) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/ExcludeIfDirectiveHandlerTest.java
class ExcludeIfDirectiveHandlerTest (line 33) | public class ExcludeIfDirectiveHandlerTest extends AbstractDirectiveHand...
method testExecution (line 37) | @Override
method testKeyword (line 54) | @Override
method testExecutionCondition (line 59) | @Override
method testReference (line 64) | @Override
method testPhase (line 69) | @Override
method testArgumentType (line 75) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/ExitDirectiveHandlerTest.java
class ExitDirectiveHandlerTest (line 28) | public class ExitDirectiveHandlerTest extends AbstractDirectiveHandlerAc...
method testExecution (line 32) | @Override
method testKeyword (line 37) | @Override
method testExecutionCondition (line 42) | @Override
method testReference (line 47) | @Override
method testPhase (line 52) | @Override
method testArgumentType (line 58) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/ExitIfDirectiveHandlerTest.java
class ExitIfDirectiveHandlerTest (line 30) | public class ExitIfDirectiveHandlerTest extends AbstractDirectiveHandler...
method testExecution (line 34) | @Override
method testExecution_wrongExpression (line 39) | @Test
method testKeyword (line 47) | @Override
method testExecutionCondition (line 52) | @Override
method testReference (line 57) | @Override
method testPhase (line 62) | @Override
method testArgumentType (line 68) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/FlushDirectiveHandlerTest.java
class FlushDirectiveHandlerTest (line 28) | public class FlushDirectiveHandlerTest extends AbstractDirectiveHandlerA...
method testExecution (line 32) | @Override
method testKeyword (line 37) | @Override
method testExecutionCondition (line 42) | @Override
method testReference (line 47) | @Override
method testArgumentType (line 52) | @Override
method testPhase (line 57) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/GlobalDirectiveHandlerTest.java
class GlobalDirectiveHandlerTest (line 33) | public class GlobalDirectiveHandlerTest extends AbstractDirectiveHandler...
method testExecution (line 37) | @Override
method testExecution_PreprocessingPhase (line 45) | @Test
method testExecution_WrongCases (line 53) | @Test
method testExecutionCondition (line 64) | @Override
method testKeyword (line 69) | @Override
method testPhase (line 74) | @Override
method testReference (line 80) | @Override
method testArgumentType (line 85) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/GlobalIfElseEndifTest.java
class GlobalIfElseEndifTest (line 31) | public class GlobalIfElseEndifTest extends AbstractDirectiveHandlerAccep...
method testExecution (line 39) | @Override
method testExecution_PreprocessingPhase (line 47) | @Test
method testExecution_wrongCases (line 53) | @Test
method testKeyword (line 66) | @Override
method testExecutionCondition (line 73) | @Override
method testReference (line 80) | @Override
method testPhase (line 87) | @Override
method testArgumentType (line 99) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/IfDefDirectiveHandlerTest.java
class IfDefDirectiveHandlerTest (line 28) | public class IfDefDirectiveHandlerTest extends AbstractDirectiveHandlerA...
method testExecution (line 32) | @Override
method testKeyword (line 45) | @Override
method testExecutionCondition (line 50) | @Override
method testReference (line 55) | @Override
method testPhase (line 60) | @Override
method testArgumentType (line 66) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/IfDefinedDirectiveHandlerTest.java
class IfDefinedDirectiveHandlerTest (line 28) | public class IfDefinedDirectiveHandlerTest extends AbstractDirectiveHand...
method testExecution (line 32) | @Override
method testKeyword (line 47) | @Override
method testExecutionCondition (line 52) | @Override
method testReference (line 57) | @Override
method testPhase (line 62) | @Override
method testArgumentType (line 68) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/IfElseEndifDirectiveHandlerTest.java
class IfElseEndifDirectiveHandlerTest (line 30) | public class IfElseEndifDirectiveHandlerTest extends AbstractDirectiveHa...
method testExecution (line 36) | @Override
method testIf_ExceptionWithoutExpression (line 41) | @Test
method testIf_ExceptionWithoutEndIf (line 47) | @Test
method testElse_ExeptionWithoutIf (line 53) | @Test
method testEndIf_ExceptionWithoutIf (line 58) | @Test
method testKeyword (line 63) | @Override
method testExecutionCondition (line 70) | @Override
method testReference (line 77) | @Override
method testPhase (line 84) | @Override
method testArgumentType (line 94) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/IfElseEndifDirectiveWithKeepLinesHandlerTest.java
class IfElseEndifDirectiveWithKeepLinesHandlerTest (line 26) | public class IfElseEndifDirectiveWithKeepLinesHandlerTest extends IfElse...
method testExecution (line 28) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/IfNDefDirectiveHandlerTest.java
class IfNDefDirectiveHandlerTest (line 28) | public class IfNDefDirectiveHandlerTest extends AbstractDirectiveHandler...
method testExecution (line 32) | @Override
method testKeyword (line 45) | @Override
method testExecutionCondition (line 50) | @Override
method testReference (line 55) | @Override
method testPhase (line 60) | @Override
method testArgumentType (line 66) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/IncludeDirectiveHandlerTest.java
class IncludeDirectiveHandlerTest (line 31) | public class IncludeDirectiveHandlerTest extends AbstractDirectiveHandle...
method testExecution (line 35) | @Test
method testExecution_wrongCases (line 43) | @Test
method testKeyword (line 56) | @Override
method testExecutionCondition (line 61) | @Override
method testReference (line 66) | @Override
method testPhase (line 71) | @Override
method testArgumentType (line 77) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/LinesNotMatchException.java
class LinesNotMatchException (line 24) | public class LinesNotMatchException extends RuntimeException {
method LinesNotMatchException (line 34) | public LinesNotMatchException(final int etalonLineNumber, final int re...
method getProblemStringIndex (line 45) | public int getProblemStringIndex() {
method getEtalonLineNumber (line 49) | public int getEtalonLineNumber() {
method getResultLineNumber (line 53) | public int getResultLineNumber() {
method getEtalonString (line 57) | public String getEtalonString() {
method getResultString (line 61) | public String getResultString() {
method toString (line 65) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/LocalDirectiveHandlerTest.java
class LocalDirectiveHandlerTest (line 31) | public class LocalDirectiveHandlerTest extends AbstractDirectiveHandlerA...
method testExecution (line 35) | @Override
method testExecutionCondition (line 46) | @Override
method testExecution_ExceptionOnExpressionAbsence (line 51) | @Test
method testExecution_ExceptionOnWrongExpression (line 57) | @Test
method testKeyword (line 63) | @Override
method testReference (line 68) | @Override
method testPhase (line 73) | @Override
method testArgumentType (line 79) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/MsgDirectiveHandlerTest.java
class MsgDirectiveHandlerTest (line 35) | public class MsgDirectiveHandlerTest extends AbstractDirectiveHandlerAcc...
method testExecution (line 39) | @Override
method testKeyword (line 52) | @Override
method testExecutionCondition (line 57) | @Override
method testReference (line 62) | @Override
method testArgumentType (line 67) | @Override
method testPhase (line 72) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/NoAutoFlushDirectiveHandlerTest.java
class NoAutoFlushDirectiveHandlerTest (line 28) | public class NoAutoFlushDirectiveHandlerTest extends AbstractDirectiveHa...
method testExecution (line 32) | @Override
method testKeyword (line 37) | @Override
method testExecutionCondition (line 42) | @Override
method testReference (line 47) | @Override
method testArgumentType (line 52) | @Override
method testPhase (line 57) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/OnlySpacesTest.java
class OnlySpacesTest (line 24) | public class OnlySpacesTest extends AbstractDirectiveHandlerAcceptanceTe...
method testExecution (line 26) | @Override
method testKeyword (line 31) | @Override
method testExecutionCondition (line 35) | @Override
method testReference (line 39) | @Override
method testArgumentType (line 43) | @Override
method testPhase (line 47) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/OutDisabledDirectiveHandlerTest.java
class OutDisabledDirectiveHandlerTest (line 28) | public class OutDisabledDirectiveHandlerTest extends AbstractDirectiveHa...
method testExecution (line 32) | @Override
method testKeyword (line 37) | @Override
method testExecutionCondition (line 42) | @Override
method testReference (line 47) | @Override
method testPhase (line 52) | @Override
method testArgumentType (line 58) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/OutEnabledDirectiveHandlerTest.java
class OutEnabledDirectiveHandlerTest (line 28) | public class OutEnabledDirectiveHandlerTest extends AbstractDirectiveHan...
method testExecution (line 32) | @Override
method testKeyword (line 37) | @Override
method testExecutionCondition (line 42) | @Override
method testReference (line 47) | @Override
method testPhase (line 52) | @Override
method testArgumentType (line 58) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/OutNameDirectiveHandlerTest.java
class OutNameDirectiveHandlerTest (line 30) | public class OutNameDirectiveHandlerTest extends AbstractDirectiveHandle...
method testExecution (line 34) | @Override
method testExecution_wrongExpressionResult (line 39) | @Test
method testKeyword (line 45) | @Override
method testExecutionCondition (line 50) | @Override
method testReference (line 55) | @Override
method testPhase (line 60) | @Override
method testArgumentType (line 66) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/OutdirDirectiveHandlerTest.java
class OutdirDirectiveHandlerTest (line 30) | public class OutdirDirectiveHandlerTest extends AbstractDirectiveHandler...
method testExecution (line 34) | @Override
method testExecution_wrongExpression (line 39) | @Test
method testKeyword (line 46) | @Override
method testExecutionCondition (line 51) | @Override
method testReference (line 56) | @Override
method testPhase (line 61) | @Override
method testArgumentType (line 67) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/PrefixPostfixDirectiveHandlerTest.java
class PrefixPostfixDirectiveHandlerTest (line 30) | public class PrefixPostfixDirectiveHandlerTest extends AbstractDirective...
method testExecution (line 35) | @Override
method testPrefix_wrongArgument (line 40) | @Test
method testPostfix_wrongArgument (line 47) | @Test
method testKeyword (line 54) | @Override
method testExecutionCondition (line 60) | @Override
method testReference (line 66) | @Override
method testPhase (line 72) | @Override
method testArgumentType (line 80) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/SpecVarsROTest.java
class SpecVarsROTest (line 30) | public class SpecVarsROTest extends AbstractDirectiveHandlerAcceptanceTe...
method testExecution (line 32) | @Override
method testKeyword (line 38) | @Override
method testExecutionCondition (line 42) | @Override
method testReference (line 46) | @Override
method testArgumentType (line 50) | @Override
method testPhase (line 54) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/SpecialDirectivesBlockTest.java
class SpecialDirectivesBlockTest (line 38) | public class SpecialDirectivesBlockTest extends AbstractDirectiveHandler...
method testExecution (line 40) | @Override
method testKeyword (line 125) | @Override
method testExecutionCondition (line 130) | @Override
method testReference (line 135) | @Override
method testArgumentType (line 140) | @Override
method testPhase (line 145) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/SpecialDirectivesTest.java
class SpecialDirectivesTest (line 35) | public class SpecialDirectivesTest extends AbstractDirectiveHandlerAccep...
method testExecution (line 37) | @Override
method testKeyword (line 90) | @Override
method testExecutionCondition (line 95) | @Override
method testReference (line 100) | @Override
method testArgumentType (line 105) | @Override
method testPhase (line 110) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/UndefDirectiveHandlerTest.java
class UndefDirectiveHandlerTest (line 31) | public class UndefDirectiveHandlerTest extends AbstractDirectiveHandlerA...
method testExecution (line 35) | @Override
method testExecution_wrongCases (line 44) | @Test
method testKeyword (line 51) | @Override
method testExecutionCondition (line 56) | @Override
method testReference (line 61) | @Override
method testPhase (line 66) | @Override
method testArgumentType (line 72) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/VariablePair.java
class VariablePair (line 26) | public class VariablePair {
method VariablePair (line 31) | public VariablePair(final String name, final String value) {
method getName (line 36) | public String getName() {
method getValue (line 40) | public Value getValue() {
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/WarningDirectiveHandlerTest.java
class WarningDirectiveHandlerTest (line 32) | public class WarningDirectiveHandlerTest extends AbstractDirectiveHandle...
method testExecution (line 36) | @Override
method testExecution_wrongCases (line 43) | @Test
method testKeyword (line 51) | @Override
method testExecutionCondition (line 56) | @Override
method testReference (line 61) | @Override
method testArgumentType (line 66) | @Override
method testPhase (line 71) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/directives/WhileContinueBreakEndDirectiveHandlerTest.java
class WhileContinueBreakEndDirectiveHandlerTest (line 30) | public class WhileContinueBreakEndDirectiveHandlerTest
method testExecution (line 38) | @Override
method testWhile_ExceptionWithoutExpression (line 43) | @Test
method testWhile_ExceptionForNonBooleanExpression (line 48) | @Test
method testWhile_ExceptionForNonClosed (line 53) | @Test
method testBreak_ExceptionWithoutWhile (line 58) | @Test
method testContinue_ExceptionWithoutWhile (line 63) | @Test
method testEnd_ExceptionWithoutWhile (line 68) | @Test
method testKeyword (line 73) | @Override
method testExecutionCondition (line 81) | @Override
method testReference (line 89) | @Override
method testPhase (line 97) | @Override
method testArgumentType (line 110) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/exceptions/PreprocessorExceptionTest.java
class PreprocessorExceptionTest (line 34) | public final class PreprocessorExceptionTest {
method testExceptionStringIndex_WrongBracket (line 36) | @Test
method testExceptionStringIndex_WrongBracketClosing (line 53) | @Test
method testExceptionStringIndex_WrongBracketInIncluded (line 71) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/ExpressionParserTest.java
class ExpressionParserTest (line 46) | public class ExpressionParserTest extends AbstractMockPreprocessorContex...
method testReplacingNegativeNumber (line 48) | @Test
method testNextItem_zero (line 69) | @Test
method testNextItem_negativeNumber (line 79) | @Test
method testNextItem_zeroLess (line 91) | @Test
method testNextItem_oneValue (line 103) | @Test
method testNextItem_oneHexValue (line 113) | @Test
method testNextItem_oneBooleanTrueValue (line 123) | @Test
method testNextItem_oneBooleanFalseValue (line 133) | @Test
method testNextItem_oneOperator (line 143) | @Test
method testNextItem_complexExpression (line 153) | @Test
method testParsing_oneValue (line 192) | @Test
method testParsing_negativeNumber (line 203) | @Test
method testParsing_easyExpression (line 214) | @Test
method testParsing_complexExpression (line 231) | @Test
method testParsing_deepIncludingBrackets (line 253) | @Test
method testParsing_insideFunctionCall (line 268) | @Test
method testParsing_notEasyBrackets (line 290) | @Test
method testParsing_emptyBrakes (line 318) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/ExpressionTest.java
class ExpressionTest (line 29) | public class ExpressionTest extends AbstractSpyPreprocessorContextTest {
method testSimpleExpression (line 31) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/ExpressionTreeTest.java
class ExpressionTreeTest (line 35) | public class ExpressionTreeTest {
method testAddHierarchyTree (line 37) | @Test
method testAddDivHierarchyTree (line 55) | @Test
method testDivAddHierarchyTree (line 81) | @Test
method testAddAddAddHierarchyTree (line 107) | @Test
method testMulAddMulHierarchyTree (line 137) | @Test
method testAddInBrakesMulHierarchyTree (line 169) | @Test
method testMulAddInBrakesMulHierarchyTree (line 198) | @Test
method testNotEquHierarchy (line 236) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/AbstractFunctionTest.java
class AbstractFunctionTest (line 42) | public abstract class AbstractFunctionTest extends AbstractSpyPreprocess...
method var (line 44) | protected static Map<String, Value> var(final Map<String, Value> map, ...
method var (line 50) | protected static Map<String, Value> var(final String name, final Value...
method testName (line 56) | @Test
method testReference (line 59) | @Test
method testArity (line 62) | @Test
method testAllowedArgumentTypes (line 65) | @Test
method testResultType (line 68) | @Test
method assertReference (line 71) | protected void assertReference(final AbstractFunction function) {
method assertAllowedArguments (line 78) | protected void assertAllowedArguments(final AbstractFunction function,
method assertFunction (line 95) | protected void assertFunction(final String expression, final Value exp...
method assertFunction (line 99) | protected void assertFunction(final String expression, final Value exp...
method getRootCause (line 120) | protected Throwable getRootCause(final Throwable thr) {
method assertFunctionException (line 134) | protected void assertFunctionException(final String expression) throws...
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionABSTest.java
class FunctionABSTest (line 32) | public class FunctionABSTest extends AbstractFunctionTest {
method testExecution_Int (line 36) | @Test
method testExecution_Float (line 43) | @Test
method testExecution_wrongCases (line 49) | @Test
method testName (line 58) | @Override
method testReference (line 63) | @Override
method testArity (line 68) | @Override
method testAllowedArgumentTypes (line 73) | @Override
method testResultType (line 78) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionBINFILETest.java
class FunctionBINFILETest (line 34) | public class FunctionBINFILETest extends AbstractFunctionTest {
method testExecution_Base64Encoding (line 38) | @Test
method testExecution_Base64Encoding_Deflate (line 48) | @Test
method testExecution_Base64EncodingSplitted (line 58) | @Test
method testExecution_ByteArrayEncoding (line 68) | @Test
method testExecution_ByteArrayEncodingSplitted (line 80) | @Test
method testExecution_UINT8ArrayEncoding (line 96) | @Test
method testExecution_INT8ArrayEncoding (line 108) | @Test
method testExecution_DEFLATEINT8ArrayEncoding (line 120) | @Test
method testExecution_UINT8ArrayEncodingSplitted (line 132) | @Test
method testExecution_INT8ArrayEncodingSplitted (line 163) | @Test
method testExecution_DEFLATEINT8ArrayEncodingSplitted (line 194) | @Test
method testExecution_Str_wrongCases (line 220) | @Test
method testName (line 231) | @Override
method testReference (line 236) | @Override
method testArity (line 241) | @Override
method testAllowedArgumentTypes (line 246) | @Override
method testResultType (line 251) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionDefinedByUserTest.java
class FunctionDefinedByUserTest (line 46) | public class FunctionDefinedByUserTest extends AbstractSpyPreprocessorCo...
method testExecution_withArguments (line 48) | @Test
method testExecution_withAnyArguments (line 72) | @Test
method testExecution_withoutArguments (line 96) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionESCTest.java
class FunctionESCTest (line 32) | public class FunctionESCTest extends AbstractFunctionTest {
method testExecution (line 36) | @Test
method testExecution_wrongCases (line 44) | @Test
method testName (line 53) | @Override
method testReference (line 58) | @Override
method testArity (line 63) | @Override
method testAllowedArgumentTypes (line 68) | @Override
method testResultType (line 73) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionEVALFILETest.java
class FunctionEVALFILETest (line 37) | public class FunctionEVALFILETest extends AbstractFunctionTest {
method testExecution_ErrorForUndefinedVariable (line 46) | @Test
method testExecution_VisibilityLocalVariable (line 59) | @Test
method testExecution_AbsolutePath (line 68) | @Test
method testExecution_IncludedEvalCall (line 79) | @Test
method testExecution_VisibilityGlobalVariable (line 92) | @Test
method testExecution_ConditionsInsideFile (line 102) | @Test
method testExecution_Str_wrongCases (line 113) | @Test
method testName (line 124) | @Override
method testReference (line 129) | @Override
method testArity (line 134) | @Override
method testAllowedArgumentTypes (line 139) | @Override
method testResultType (line 144) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionISSUBSTRTest.java
class FunctionISSUBSTRTest (line 32) | public class FunctionISSUBSTRTest extends AbstractFunctionTest {
method testExecution_StrStr (line 36) | @Test
method testExecution_StrStr_wrongCases (line 47) | @Test
method testName (line 59) | @Override
method testReference (line 64) | @Override
method testArity (line 69) | @Override
method testAllowedArgumentTypes (line 74) | @Override
method testResultType (line 79) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionISTest.java
class FunctionISTest (line 32) | public class FunctionISTest extends AbstractFunctionTest {
method testExecution_StrAny_VarPresented (line 36) | @Test
method testExecution_StrAny_VarNotPresented (line 63) | @Test
method testName (line 90) | @Override
method testReference (line 95) | @Override
method testArity (line 100) | @Override
method testAllowedArgumentTypes (line 105) | @Override
method testResultType (line 110) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionROUNDTest.java
class FunctionROUNDTest (line 32) | public class FunctionROUNDTest extends AbstractFunctionTest {
method testExecution_Float (line 36) | @Test
method testExecution_Int (line 43) | @Test
method testExecution_wrongCases (line 49) | @Test
method testName (line 58) | @Override
method testReference (line 63) | @Override
method testArity (line 68) | @Override
method testAllowedArgumentTypes (line 73) | @Override
method testResultType (line 78) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2CSVTest.java
class FunctionSTR2CSVTest (line 32) | public class FunctionSTR2CSVTest extends AbstractFunctionTest {
method testExecution_Str (line 36) | @Test
method testExecution_wrongCases (line 43) | @Test
method testName (line 53) | @Override
method testReference (line 58) | @Override
method testArity (line 63) | @Override
method testAllowedArgumentTypes (line 68) | @Override
method testResultType (line 73) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2GOTest.java
class FunctionSTR2GOTest (line 32) | public class FunctionSTR2GOTest extends AbstractFunctionTest {
method testExecution_NoSplit (line 36) | @Test
method testExecution_Split (line 43) | @Test
method testExecution_wrongCases (line 58) | @Test
method testName (line 69) | @Override
method testReference (line 74) | @Override
method testArity (line 79) | @Override
method testAllowedArgumentTypes (line 84) | @Override
method testResultType (line 89) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2INTTest.java
class FunctionSTR2INTTest (line 32) | public class FunctionSTR2INTTest extends AbstractFunctionTest {
method testExecute_Str (line 36) | @Test
method testExecute_wrongCase (line 43) | @Test
method testName (line 51) | @Override
method testReference (line 56) | @Override
method testArity (line 61) | @Override
method testAllowedArgumentTypes (line 66) | @Override
method testResultType (line 71) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2JAVATest.java
class FunctionSTR2JAVATest (line 33) | public class FunctionSTR2JAVATest extends AbstractFunctionTest {
method testExecution_NoSplit (line 37) | @Test
method testExecution_Split (line 44) | @Test
method testExecution_wrongCases (line 54) | @Test
method testName (line 64) | @Override
method testReference (line 69) | @Override
method testArity (line 74) | @Override
method testAllowedArgumentTypes (line 79) | @Override
method testResultType (line 84) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2JSONTest.java
class FunctionSTR2JSONTest (line 32) | public class FunctionSTR2JSONTest extends AbstractFunctionTest {
method testExecution_Str (line 36) | @Test
method testExecution_wrongCases (line 43) | @Test
method testName (line 53) | @Override
method testReference (line 58) | @Override
method testArity (line 63) | @Override
method testAllowedArgumentTypes (line 68) | @Override
method testResultType (line 73) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2JSTest.java
class FunctionSTR2JSTest (line 32) | public class FunctionSTR2JSTest extends AbstractFunctionTest {
method testExecution_Str (line 36) | @Test
method testExecution_wrongCases (line 43) | @Test
method testName (line 53) | @Override
method testReference (line 58) | @Override
method testArity (line 63) | @Override
method testAllowedArgumentTypes (line 68) | @Override
method testResultType (line 73) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2WEBTest.java
class FunctionSTR2WEBTest (line 32) | public class FunctionSTR2WEBTest extends AbstractFunctionTest {
method testExecution_Str (line 36) | @Test
method testExecution_wrongCases (line 44) | @Test
method testName (line 54) | @Override
method testReference (line 59) | @Override
method testArity (line 64) | @Override
method testAllowedArgumentTypes (line 69) | @Override
method testResultType (line 74) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2XMLTest.java
class FunctionSTR2XMLTest (line 32) | public class FunctionSTR2XMLTest extends AbstractFunctionTest {
method testExecution_Str (line 36) | @Test
method testExecution_wrongCases (line 43) | @Test
method testName (line 53) | @Override
method testReference (line 58) | @Override
method testArity (line 63) | @Override
method testAllowedArgumentTypes (line 68) | @Override
method testResultType (line 73) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionSTRLENTest.java
class FunctionSTRLENTest (line 32) | public class FunctionSTRLENTest extends AbstractFunctionTest {
method testExecution_Str (line 36) | @Test
method testExecution_wrongCases (line 42) | @Test
method testName (line 52) | @Override
method testReference (line 57) | @Override
method testArity (line 62) | @Override
method testAllowedArgumentTypes (line 67) | @Override
method testResultType (line 72) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/FunctionTRIMLINESTest.java
class FunctionTRIMLINESTest (line 33) | public class FunctionTRIMLINESTest extends AbstractFunctionTest {
method testExecution_WorkingCases (line 37) | @Test
method testExecution_wrongCases (line 46) | @Test
method testName (line 57) | @Override
method testReference (line 62) | @Override
method testArity (line 67) | @Override
method testAllowedArgumentTypes (line 72) | @Override
method testResultType (line 77) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/AbstractFunctionXMLTest.java
class AbstractFunctionXMLTest (line 35) | public abstract class AbstractFunctionXMLTest extends AbstractFunctionTe...
method initTest (line 41) | @Before
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_ATTRTest.java
class FunctionXML_ATTRTest (line 33) | public class FunctionXML_ATTRTest extends AbstractFunctionXMLTest {
method testExecution_WrongAttributeName (line 37) | @Test(expected = PreprocessorException.class)
method testExecution_WrongElementId (line 42) | @Test(expected = PreprocessorException.class)
method testExecution_ExistsAttribute (line 48) | @Test
method testExecution_nonExistsAttribute (line 54) | @Test
method testName (line 61) | @Override
method testReference (line 66) | @Override
method testArity (line 71) | @Override
method testAllowedArgumentTypes (line 76) | @Override
method testResultType (line 81) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_GETTest.java
class FunctionXML_GETTest (line 33) | public class FunctionXML_GETTest extends AbstractFunctionXMLTest {
method testExecution_WrongElementId (line 38) | @Test(expected = PreprocessorException.class)
method testExecution_WrongIndex (line 43) | @Test(expected = PreprocessorException.class)
method testExecution (line 51) | @Test
method testName (line 77) | @Override
method testReference (line 82) | @Override
method testArity (line 87) | @Override
method testAllowedArgumentTypes (line 92) | @Override
method testResultType (line 97) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_LISTTest.java
class FunctionXML_LISTTest (line 34) | public class FunctionXML_LISTTest extends AbstractFunctionXMLTest {
method testExecution_ForWrongElement (line 38) | @Test(expected = PreprocessorException.class)
method testExecution_ForNonExistElements (line 44) | @Test
method testExecution_ForExistElements (line 50) | @Test
method testName (line 56) | @Override
method testReference (line 61) | @Override
method testArity (line 66) | @Override
method testAllowedArgumentTypes (line 71) | @Override
method testResultType (line 76) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_NAMETest.java
class FunctionXML_NAMETest (line 33) | public class FunctionXML_NAMETest extends AbstractFunctionXMLTest {
method testExecution_WrongElementId (line 37) | @Test(expected = PreprocessorException.class)
method testExecution_RootElement (line 42) | @Test
method testName (line 47) | @Override
method testReference (line 52) | @Override
method testArity (line 57) | @Override
method testAllowedArgumentTypes (line 62) | @Override
method testResultType (line 67) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_OPENTest.java
class FunctionXML_OPENTest (line 33) | public class FunctionXML_OPENTest extends AbstractFunctionXMLTest {
method testExecute_FileNotFound (line 37) | @Test(expected = PreprocessorException.class)
method testExecute_NoXMLFile (line 42) | @Test(expected = PreprocessorException.class)
method testExecute (line 47) | @Test
method testName (line 52) | @Override
method testReference (line 57) | @Override
method testArity (line 62) | @Override
method testAllowedArgumentTypes (line 67) | @Override
method testResultType (line 72) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_ROOTTest.java
class FunctionXML_ROOTTest (line 33) | public class FunctionXML_ROOTTest extends AbstractFunctionXMLTest {
method testExecution_WrongDocId (line 37) | @Test(expected = PreprocessorException.class)
method testExecution (line 42) | @Test
method testName (line 48) | @Override
method testReference (line 53) | @Override
method testArity (line 58) | @Override
method testAllowedArgumentTypes (line 63) | @Override
method testResultType (line 68) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_SIZETest.java
class FunctionXML_SIZETest (line 34) | public class FunctionXML_SIZETest extends AbstractFunctionXMLTest {
method testExecution_WrongElementListID (line 38) | @Test(expected = PreprocessorException.class)
method testExecution_WrongElementType (line 43) | @Test(expected = PreprocessorException.class)
method testExecution (line 48) | @Test
method testName (line 59) | @Override
method testReference (line 64) | @Override
method testArity (line 69) | @Override
method testAllowedArgumentTypes (line 74) | @Override
method testResultType (line 79) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_TEXTTest.java
class FunctionXML_TEXTTest (line 33) | public class FunctionXML_TEXTTest extends AbstractFunctionXMLTest {
method testExecution_IncompatibleCachedObjectId (line 37) | @Test(expected = PreprocessorException.class)
method testExecution (line 42) | @Test
method testName (line 51) | @Override
method testReference (line 56) | @Override
method testArity (line 61) | @Override
method testAllowedArgumentTypes (line 66) | @Override
method testResultType (line 71) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_XELEMENTTest.java
class FunctionXML_XELEMENTTest (line 34) | public class FunctionXML_XELEMENTTest extends AbstractFunctionXMLTest {
method testExecution_ForWrongElement (line 38) | @Test(expected = PreprocessorException.class)
method testExecution_NonExistElement (line 44) | @Test(expected = PreprocessorException.class)
method testExecution_ForExistElements (line 49) | @Test
method testName (line 58) | @Override
method testReference (line 63) | @Override
method testArity (line 68) | @Override
method testAllowedArgumentTypes (line 73) | @Override
method testResultType (line 78) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_XLISTTest.java
class FunctionXML_XLISTTest (line 34) | public class FunctionXML_XLISTTest extends AbstractFunctionXMLTest {
method testExecution_ForWrongElement (line 38) | @Test(expected = PreprocessorException.class)
method testExecution_NonExistElement (line 44) | @Test
method testExecution_ForExistElements (line 52) | @Test
method testName (line 60) | @Override
method testReference (line 65) | @Override
method testArity (line 70) | @Override
method testAllowedArgumentTypes (line 75) | @Override
method testResultType (line 80) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/AbstractOperatorTest.java
class AbstractOperatorTest (line 37) | public abstract class AbstractOperatorTest extends AbstractSpyPreprocess...
method testKeyword (line 39) | @Test
method testReference (line 42) | @Test
method testArity (line 45) | @Test
method testPriority (line 48) | @Test
method testExecution (line 51) | @Test
method testExecution_PreprocessorException (line 54) | @Test
method assertReference (line 57) | public void assertReference(final AbstractOperator operator) {
method assertExecution (line 64) | public PreprocessorContext assertExecution(final Value expectedResult,...
method assertPreprocessorException (line 72) | public void assertPreprocessorException(final String expression) {
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/OperatorADDTest.java
class OperatorADDTest (line 30) | public class OperatorADDTest extends AbstractOperatorTest {
method testExecution (line 34) | @Override
method testExecution_chain (line 43) | @Test
method testExecution_PreprocessorException (line 48) | @Override
method testArity (line 58) | @Override
method testKeyword (line 63) | @Override
method testReference (line 68) | @Override
method testPriority (line 73) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/OperatorANDTest.java
class OperatorANDTest (line 30) | public class OperatorANDTest extends AbstractOperatorTest {
method testExecution (line 34) | @Test
method testExecution_PreprocessorException (line 48) | @Override
method testKeyword (line 57) | @Override
method testReference (line 62) | @Override
method testArity (line 67) | @Override
method testPriority (line 72) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/OperatorDIVTest.java
class OperatorDIVTest (line 30) | public class OperatorDIVTest extends AbstractOperatorTest {
method testExecution (line 34) | @Override
method testExecution_chain (line 41) | @Test
method testExecution_PreprocessorException (line 46) | @Override
method testExecution_arithmeticException (line 57) | @Test(expected = ArithmeticException.class)
method testKeyword (line 62) | @Override
method testReference (line 67) | @Override
method testArity (line 72) | @Override
method testPriority (line 77) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/OperatorEQUTest.java
class OperatorEQUTest (line 29) | public class OperatorEQUTest extends AbstractOperatorTest {
method testExecution (line 33) | @Override
method testExecution_PreprocessorException (line 48) | @Override
method testKeyword (line 56) | @Override
method testReference (line 61) | @Override
method testArity (line 66) | @Override
method testPriority (line 71) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/OperatorGREATEQUTest.java
class OperatorGREATEQUTest (line 29) | public class OperatorGREATEQUTest extends AbstractOperatorTest {
method testKeyword (line 33) | @Override
method testReference (line 38) | @Override
method testArity (line 43) | @Override
method testPriority (line 48) | @Override
method testExecution (line 53) | @Override
method testExecution_PreprocessorException (line 65) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/OperatorGREATTest.java
class OperatorGREATTest (line 29) | public class OperatorGREATTest extends AbstractOperatorTest {
method testKeyword (line 33) | @Override
method testReference (line 38) | @Override
method testArity (line 43) | @Override
method testPriority (line 48) | @Override
method testExecution (line 53) | @Override
method testExecution_PreprocessorException (line 62) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/OperatorLESSEQUTest.java
class OperatorLESSEQUTest (line 29) | public class OperatorLESSEQUTest extends AbstractOperatorTest {
method testKeyword (line 33) | @Override
method testReference (line 38) | @Override
method testArity (line 43) | @Override
method testPriority (line 48) | @Override
method testExecution (line 53) | @Override
method testExecution_PreprocessorException (line 65) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/OperatorLESSTest.java
class OperatorLESSTest (line 29) | public class OperatorLESSTest extends AbstractOperatorTest {
method testKeyword (line 33) | @Override
method testReference (line 38) | @Override
method testArity (line 43) | @Override
method testPriority (line 48) | @Override
method testExecution (line 53) | @Override
method testExecution_PreprocessorException (line 62) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/OperatorMODTest.java
class OperatorMODTest (line 30) | public class OperatorMODTest extends AbstractOperatorTest {
method testExecution (line 34) | @Override
method testExecution_PreprocessorException (line 41) | @Override
method testExecution_arithmeticException (line 50) | @Test(expected = ArithmeticException.class)
method testArity (line 55) | @Override
method testKeyword (line 60) | @Override
method testReference (line 65) | @Override
method testPriority (line 70) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/OperatorMULTest.java
class OperatorMULTest (line 30) | public class OperatorMULTest extends AbstractOperatorTest {
method testExecution (line 34) | @Override
method testExecution_chain (line 40) | @Test
method testExecution_PreprocessorException (line 45) | @Override
method testArity (line 57) | @Override
method testKeyword (line 62) | @Override
method testReference (line 67) | @Override
method testPriority (line 72) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/OperatorNOTEQUTest.java
class OperatorNOTEQUTest (line 29) | public class OperatorNOTEQUTest extends AbstractOperatorTest {
method testKeyword (line 33) | @Override
method testReference (line 38) | @Override
method testArity (line 43) | @Override
method testPriority (line 48) | @Override
method testExecution (line 53) | @Override
method testExecution_PreprocessorException (line 67) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/OperatorNOTTest.java
class OperatorNOTTest (line 29) | public class OperatorNOTTest extends AbstractOperatorTest {
method testKeyword (line 33) | @Override
method testReference (line 38) | @Override
method testArity (line 43) | @Override
method testPriority (line 48) | @Override
method testExecution (line 53) | @Override
method testExecution_PreprocessorException (line 60) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/OperatorORTest.java
class OperatorORTest (line 29) | public class OperatorORTest extends AbstractOperatorTest {
method testKeyword (line 33) | @Override
method testReference (line 38) | @Override
method testArity (line 43) | @Override
method testPriority (line 48) | @Override
method testExecution (line 53) | @Override
method testExecution_PreprocessorException (line 62) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/OperatorSUBTest.java
class OperatorSUBTest (line 29) | public class OperatorSUBTest extends AbstractOperatorTest {
method testKeyword (line 33) | @Override
method testReference (line 38) | @Override
method testArity (line 43) | @Override
method testPriority (line 48) | @Override
method testExecution (line 53) | @Override
method testExecution_PreprocessorException (line 62) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/expression/operators/OperatorXORTest.java
class OperatorXORTest (line 29) | public class OperatorXORTest extends AbstractOperatorTest {
method testKeyword (line 33) | @Override
method testReference (line 38) | @Override
method testArity (line 43) | @Override
method testPriority (line 48) | @Override
method testExecution (line 53) | @Override
method testExecution_PreprocessorException (line 62) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/maven/MavenPropertiesImporterTest.java
class MavenPropertiesImporterTest (line 31) | public class MavenPropertiesImporterTest {
method testNormalizeGetter (line 33) | @Test
method testRequestProperty (line 38) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/maven/PreprocessMojoTest.java
class PreprocessMojoTest (line 39) | public final class PreprocessMojoTest extends AbstractMojoTestCase {
method assertArrayEqualsWithoutOrders (line 41) | private static void assertArrayEqualsWithoutOrders(final Object[] arra...
method setUp (line 59) | @Before
method tearDown (line 65) | @After
method testConfiguration (line 71) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/removers/AbstractCommentRemoverTest.java
class AbstractCommentRemoverTest (line 16) | @RunWith(Parameterized.class)
method AbstractCommentRemoverTest (line 20) | public AbstractCommentRemoverTest(final boolean whiteSpaced) {
method data (line 24) | @Parameterized.Parameters
method makeCommentRemoverInstance (line 29) | protected abstract AbstractCommentRemover makeCommentRemoverInstance(R...
method assertCommentRemove (line 32) | public void assertCommentRemove(final String source, final String expe...
FILE: jcp/src/test/java/com/igormaznitsa/jcp/removers/CStyleCommentsRemoverTest.java
class CStyleCommentsRemoverTest (line 28) | public class CStyleCommentsRemoverTest extends AbstractCommentRemoverTest {
method CStyleCommentsRemoverTest (line 30) | public CStyleCommentsRemoverTest(boolean whiteSpaced) {
method makeCommentRemoverInstance (line 34) | @Override
method testRemovingSingleStringComments (line 41) | @Test
method testMultilineStringComments (line 48) | @Test
method testMultipleStarsAtComments (line 55) | @Test
method testTabulation (line 62) | @Test
method testJcpDirectivesInComments (line 67) | @Test
method testLineCommentInTheEnd (line 75) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/removers/JcpCommentLineRemoverTest.java
class JcpCommentLineRemoverTest (line 28) | public class JcpCommentLineRemoverTest extends AbstractCommentRemoverTest {
method JcpCommentLineRemoverTest (line 30) | public JcpCommentLineRemoverTest(boolean whiteSpaced) {
method makeCommentRemoverInstance (line 34) | @Override
method testRemovingSingleStringComments (line 41) | @Test
method testMultilineStringComments (line 49) | @Test
method testMultipleStarsAtComments (line 57) | @Test
method testTabulation (line 65) | @Test
method testJcpDirectivesInComments (line 73) | @Test
method testCommentedJcpDirective (line 81) | @Test
method testCommentedJcpDirectiveAndJcpMarkedLines (line 96) | @Test
method testLineCommentInTheEnd (line 111) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/removers/JustCopyCommentsRemoverTest.java
class JustCopyCommentsRemoverTest (line 28) | public class JustCopyCommentsRemoverTest extends AbstractCommentRemoverT...
method JustCopyCommentsRemoverTest (line 30) | public JustCopyCommentsRemoverTest(boolean whiteSpaced) {
method makeCommentRemoverInstance (line 34) | @Override
method testRemovingSingleStringComments (line 41) | @Test
method testMultilineStringComments (line 49) | @Test
method testMultipleStarsAtComments (line 57) | @Test
method testTabulation (line 65) | @Test
method testJcpDirectivesInComments (line 73) | @Test
method testLineCommentInTheEnd (line 81) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/AbortTest.java
class AbortTest (line 29) | public class AbortTest extends AbstractUseCaseTest {
method tuneContext (line 31) | @Override
method check (line 36) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/AbstractUseCaseTest.java
class AbstractUseCaseTest (line 40) | public abstract class AbstractUseCaseTest {
method before (line 46) | @Before
method after (line 66) | @After
method isDeleteTemporaryFolder (line 77) | public boolean isDeleteTemporaryFolder() {
method check (line 81) | public abstract void check(PreprocessorContext context, JcpPreprocesso...
method assertFolder (line 84) | private void assertFolder(final File etalonFolder, final File checkFol...
method tuneContext (line 148) | protected void tuneContext(final PreprocessorContext context) {
method tuneDefaultContextOptions (line 152) | protected void tuneDefaultContextOptions(final PreprocessorContext con...
method isIgnoreEolInCheck (line 160) | protected boolean isIgnoreEolInCheck() {
method createPreprocessorContext (line 164) | protected PreprocessorContext createPreprocessorContext(final File bas...
method executeTest (line 168) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/BinFileTest.java
class BinFileTest (line 30) | public class BinFileTest extends AbstractUseCaseTest {
method tuneContext (line 32) | @Override
method check (line 37) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/DefUndefTest.java
class DefUndefTest (line 29) | public class DefUndefTest extends AbstractUseCaseTest {
method check (line 31) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/EvalFileTest.java
class EvalFileTest (line 29) | public class EvalFileTest extends AbstractUseCaseTest {
method tuneContext (line 31) | @Override
method check (line 36) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/ExternalGlobalDefFileTest.java
class ExternalGlobalDefFileTest (line 30) | public class ExternalGlobalDefFileTest extends AbstractUseCaseTest {
method tuneContext (line 32) | @Override
method check (line 37) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/GenerationTest.java
class GenerationTest (line 29) | public class GenerationTest extends AbstractUseCaseTest {
method check (line 31) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/IncludeAndExitTest.java
class IncludeAndExitTest (line 29) | public class IncludeAndExitTest extends AbstractUseCaseTest {
method check (line 31) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/InsidePreprocessingTest.java
class InsidePreprocessingTest (line 29) | public class InsidePreprocessingTest extends AbstractUseCaseTest {
method check (line 31) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/PrefixPostfixTest.java
class PrefixPostfixTest (line 29) | public class PrefixPostfixTest extends AbstractUseCaseTest {
method check (line 31) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/PreserveIndentOffTest.java
class PreserveIndentOffTest (line 30) | public class PreserveIndentOffTest extends AbstractUseCaseTest {
method tuneContext (line 32) | @Override
method check (line 38) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/PreserveIndentOnTest.java
class PreserveIndentOnTest (line 29) | public class PreserveIndentOnTest extends AbstractUseCaseTest {
method tuneContext (line 31) | @Override
method check (line 37) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/SimpleTest.java
class SimpleTest (line 29) | public class SimpleTest extends AbstractUseCaseTest {
method check (line 31) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/SpacesBeforeDirectivesNotAllowedTest.java
class SpacesBeforeDirectivesNotAllowedTest (line 33) | public class SpacesBeforeDirectivesNotAllowedTest extends AbstractUseCas...
method createPreprocessorContext (line 35) | @Override
method tuneContext (line 40) | @Override
method check (line 45) | @Override
class WarnLogPreprocessorContext (line 58) | private static class WarnLogPreprocessorContext extends PreprocessorCo...
method WarnLogPreprocessorContext (line 61) | public WarnLogPreprocessorContext(final File baseDir) {
method getWarnings (line 66) | public List<String> getWarnings() {
method logWarning (line 70) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/SpacesBeforeDirectivesTest.java
class SpacesBeforeDirectivesTest (line 33) | public class SpacesBeforeDirectivesTest extends AbstractUseCaseTest {
method createPreprocessorContext (line 35) | @Override
method tuneContext (line 40) | @Override
method check (line 45) | @Override
class WarnLogPreprocessorContext (line 58) | private static class WarnLogPreprocessorContext extends PreprocessorCo...
method WarnLogPreprocessorContext (line 61) | public WarnLogPreprocessorContext(final File baseDir) {
method getWarnings (line 65) | public List<String> getWarnings() {
method logWarning (line 69) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/StaticSiteTest.java
class StaticSiteTest (line 29) | public class StaticSiteTest extends AbstractUseCaseTest {
method check (line 31) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/Str2JavaTest.java
class Str2JavaTest (line 29) | public class Str2JavaTest extends AbstractUseCaseTest {
method check (line 31) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/StringDirectiveTest.java
class StringDirectiveTest (line 29) | public class StringDirectiveTest extends AbstractUseCaseTest {
method check (line 31) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/TextBufferVariablesTest.java
class TextBufferVariablesTest (line 30) | public class TextBufferVariablesTest extends AbstractUseCaseTest {
method tuneContext (line 32) | @Override
method check (line 37) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/UnknownVarAsFalseTest.java
class UnknownVarAsFalseTest (line 29) | public class UnknownVarAsFalseTest extends AbstractUseCaseTest {
method tuneContext (line 31) | @Override
method check (line 37) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/UsePrefixAsMultilineTest.java
class UsePrefixAsMultilineTest (line 29) | public class UsePrefixAsMultilineTest extends AbstractUseCaseTest {
method check (line 31) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/usecases/UserFunctionTest.java
class UserFunctionTest (line 34) | public class UserFunctionTest extends AbstractUseCaseTest implements Pre...
method tuneContext (line 39) | @Override
method check (line 44) | @Override
method processAction (line 52) | @Override
method processUserFunction (line 61) | @Override
method hasAction (line 76) | @Override
method hasUserFunction (line 81) | @Override
method getUserFunctionArity (line 89) | @Override
FILE: jcp/src/test/java/com/igormaznitsa/jcp/utils/PreprocessorUtilsTest.java
class PreprocessorUtilsTest (line 35) | public class PreprocessorUtilsTest {
method testReplaceStringPrefix (line 37) | @Test
method testGenerateStringForChar (line 45) | @Test
method testReplacePartByChar (line 53) | @Test
method testMakeFileReader_charsetAndBufferSizeChange (line 61) | @Test
FILE: jcp/src/test/java/com/igormaznitsa/jcp/utils/antpathmatcher/AntPathMatcherTest.java
class AntPathMatcherTest (line 30) | public class AntPathMatcherTest {
method testMatching (line 32) | @Test
FILE: jcp/src/test/resources/com/igormaznitsa/jcp/expression/functions/eval/TestEval.java
class TestEval (line 13) | public final class TestEval {
method main (line 14) | public void main(String ... args){
FILE: jcp/src/test/resources/com/igormaznitsa/jcp/expression/functions/eval/TestEvalWithIncluded.java
class TestEvalWithIncluded (line 2) | public final class TestEvalWithIncluded {
method main (line 3) | public void main(String ... args){
Condensed preview — 717 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,049K chars).
[
{
"path": ".gitattributes",
"chars": 20,
"preview": "* text=false\n* -crlf"
},
{
"path": ".github/dependabot.yml",
"chars": 140,
"preview": "version: 2\nupdates:\n - package-ecosystem: \"maven\"\n directory: \"/\"\n schedule:\n interval: \"daily\"\n rebase-s"
},
{
"path": ".github/workflows/run-maven-tests.yml",
"chars": 427,
"preview": "name: Run maven tests\n\non:\n pull_request:\n branches:\n - master\n push:\n branches:\n - master\n\njobs:\n te"
},
{
"path": ".gitignore",
"chars": 216,
"preview": "**/.gradle/\n**/build/\n**/target/\n/nbproject/\n**/dependency-reduced-pom.xml\n*.iml\n/.idea/\n/.idea/libraries\n/jcp-tests/jcp"
},
{
"path": ".projectKnowledge/JCPreprocessor.mmd",
"chars": 461,
"preview": "Mind Map generated by NB MindMap plugin \n> __version__=`1.0`,showJumps=`true`\n---\n\n# Java Comment<br/>preprocessor\n- L"
},
{
"path": ".projectKnowledge/documap.mmd",
"chars": 46537,
"preview": "[Scia Reto](https://sciareto.org) mind map \n> __version__=`1.1`,showJumps=`true`\n---\n\n# Java Comment Preprocessor<br/>"
},
{
"path": "LICENSE",
"chars": 11357,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "README.md",
"chars": 7480,
"preview": "\n\n[__\n\n- added way to manipulate current JCP text buffers as string variables: `jcp.text.buffer.all`,`"
},
{
"path": "jcp/pom.xml",
"chars": 29543,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:sc"
},
{
"path": "jcp/src/assemble/bundle.xml",
"chars": 1275,
"preview": "<assembly xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xmlns=\"http://maven.apache.org/plugins/maven-a"
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/InfoHelper.java",
"chars": 7841,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/JcpPreprocessor.java",
"chars": 22755,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/ant/PreprocessTask.java",
"chars": 13329,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/ActionPreprocessorExtensionHandler.java",
"chars": 1175,
"preview": "package com.igormaznitsa.jcp.cmdline;\n\nimport com.igormaznitsa.jcp.context.PreprocessorContext;\nimport com.igormaznitsa."
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/AllowMergeBlockLineHandler.java",
"chars": 1777,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/AllowWhitespaceDirectiveHandler.java",
"chars": 1675,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/CareForLastEolHandler.java",
"chars": 1530,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/ClearTargetHandler.java",
"chars": 1724,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/CommandLineHandler.java",
"chars": 1875,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/DestinationDirectoryHandler.java",
"chars": 2053,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/DontOverwriteSameContentHandler.java",
"chars": 1741,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/ExcludeFoldersHandler.java",
"chars": 2046,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/ExcludedFileExtensionsHandler.java",
"chars": 2186,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/FileExtensionsHandler.java",
"chars": 2165,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/GlobalVariableDefiningFileHandler.java",
"chars": 3004,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/GlobalVariableHandler.java",
"chars": 2708,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/HelpHandler.java",
"chars": 2078,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/InCharsetHandler.java",
"chars": 1998,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/KeepAttributesHandler.java",
"chars": 1666,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/KeepCommentsHandler.java",
"chars": 2463,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/KeepLineHandler.java",
"chars": 1739,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/OutCharsetHandler.java",
"chars": 2028,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/PreserveIndentDirectiveHandler.java",
"chars": 1628,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/RemoveCommentsHandler.java",
"chars": 1867,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/SourceDirectoryHandler.java",
"chars": 2306,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/UnknownAsFalseHandler.java",
"chars": 1732,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/cmdline/VerboseHandler.java",
"chars": 1695,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/containers/FileInfoContainer.java",
"chars": 37585,
"preview": "/*\r\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\r\n *\r\n * Licensed to the Apache Software Foundatio"
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/containers/PreprocessingFlag.java",
"chars": 1700,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/containers/TextFileDataContainer.java",
"chars": 3431,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/context/CommentRemoverType.java",
"chars": 733,
"preview": "package com.igormaznitsa.jcp.context;\n\nimport java.util.Arrays;\nimport java.util.stream.Collectors;\n\n/**\n * Type of comm"
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/context/CommentTextProcessor.java",
"chars": 1334,
"preview": "package com.igormaznitsa.jcp.context;\n\n/**\n * A custom processor for detecting and handling uncommenting directives in s"
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/context/EnvironmentVariableProcessor.java",
"chars": 2710,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/context/ExecutionAllowable.java",
"chars": 785,
"preview": "package com.igormaznitsa.jcp.context;\n\n/**\n * Interface describes an abstract object which can decide to be executed or "
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/context/JCPSpecialVariableProcessor.java",
"chars": 10994,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/context/PreprocessingState.java",
"chars": 20391,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/context/PreprocessorContext.java",
"chars": 41984,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/context/PreprocessorContextAware.java",
"chars": 608,
"preview": "package com.igormaznitsa.jcp.context;\n\n/**\n * Listener for preprocessor context work states.\n *\n * @since 7.3.0\n */\npubl"
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/context/SpecialVariableProcessor.java",
"chars": 2271,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/AbortDirectiveHandler.java",
"chars": 2273,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/AbstractDirectiveHandler.java",
"chars": 6110,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/ActionDirectiveHandler.java",
"chars": 4654,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/AfterDirectiveProcessingBehaviour.java",
"chars": 1538,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/BreakDirectiveHandler.java",
"chars": 2102,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/CommentNextLineDirectiveHandler.java",
"chars": 1731,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/ContinueDirectiveHandler.java",
"chars": 2226,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/DefineDirectiveHandler.java",
"chars": 3856,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/DefinelDirectiveHandler.java",
"chars": 1627,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/DirectiveArgumentType.java",
"chars": 1455,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/EchoDirectiveHandler.java",
"chars": 1806,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/ElseDirectiveHandler.java",
"chars": 2336,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/EndDirectiveHandler.java",
"chars": 2581,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/EndIfDirectiveHandler.java",
"chars": 2215,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/ErrorDirectiveHandler.java",
"chars": 2227,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/ExcludeIfDirectiveHandler.java",
"chars": 2204,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/ExitDirectiveHandler.java",
"chars": 1944,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/ExitIfDirectiveHandler.java",
"chars": 2698,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/FlushDirectiveHandler.java",
"chars": 2681,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/GlobalDirectiveHandler.java",
"chars": 2505,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/GlobalElseDirectiveHandler.java",
"chars": 2520,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/GlobalEndIfDirectiveHandler.java",
"chars": 2372,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/GlobalIfDirectiveHandler.java",
"chars": 2745,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/IfDefDirectiveHandler.java",
"chars": 1314,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/IfDefinedDirectiveHandler.java",
"chars": 2656,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/IfDirectiveHandler.java",
"chars": 2628,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/IfNDefDirectiveHandler.java",
"chars": 1459,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/IncludeDirectiveHandler.java",
"chars": 2687,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/LocalDirectiveHandler.java",
"chars": 2315,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/MsgDirectiveHandler.java",
"chars": 2091,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/NoAutoFlushHandler.java",
"chars": 1926,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/OutDisabledDirectiveHandler.java",
"chars": 1740,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/OutEnabledDirectiveHandler.java",
"chars": 1740,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/OutNameDirectiveHandler.java",
"chars": 2266,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/OutdirDirectiveHandler.java",
"chars": 2245,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/PostfixDirectiveHandler.java",
"chars": 2335,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/PrefixDirectiveHandler.java",
"chars": 2330,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/UndefDirectiveHandler.java",
"chars": 1851,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/WarningDirectiveHandler.java",
"chars": 1670,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/directives/WhileDirectiveHandler.java",
"chars": 2577,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/exceptions/FilePositionInfo.java",
"chars": 2338,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/exceptions/PreprocessorException.java",
"chars": 4735,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/Expression.java",
"chars": 13861,
"preview": "/*\r\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\r\n *\r\n * Licensed to the Apache Software Foundatio"
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/ExpressionItem.java",
"chars": 1391,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/ExpressionItemPriority.java",
"chars": 1241,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/ExpressionItemType.java",
"chars": 1012,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/ExpressionParser.java",
"chars": 24125,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/ExpressionTree.java",
"chars": 3852,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/ExpressionTreeElement.java",
"chars": 15451,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/Value.java",
"chars": 8163,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/ValueType.java",
"chars": 1833,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/Variable.java",
"chars": 2142,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/AbstractFunction.java",
"chars": 7558,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/AbstractStrConverter.java",
"chars": 1696,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionABS.java",
"chars": 2147,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionBINFILE.java",
"chars": 7351,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionDefinedByUser.java",
"chars": 5031,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionESC.java",
"chars": 3173,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionEVALFILE.java",
"chars": 3944,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionIS.java",
"chars": 2321,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionISSUBSTR.java",
"chars": 2196,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionROUND.java",
"chars": 2117,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2CSV.java",
"chars": 1769,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2GO.java",
"chars": 4522,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2INT.java",
"chars": 1670,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2JAVA.java",
"chars": 3079,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2JS.java",
"chars": 1798,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2JSON.java",
"chars": 1775,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2WEB.java",
"chars": 2112,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTR2XML.java",
"chars": 1778,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionSTRLEN.java",
"chars": 1964,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/FunctionTRIMLINES.java",
"chars": 2151,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/AbstractXMLFunction.java",
"chars": 7720,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_ATTR.java",
"chars": 2138,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_GET.java",
"chars": 2152,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_LIST.java",
"chars": 2600,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_NAME.java",
"chars": 2084,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_OPEN.java",
"chars": 4030,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_ROOT.java",
"chars": 2266,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_SIZE.java",
"chars": 2012,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_TEXT.java",
"chars": 2118,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_XELEMENT.java",
"chars": 3341,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/FunctionXML_XLIST.java",
"chars": 3026,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/functions/xml/NodeContainer.java",
"chars": 1823,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/AbstractOperator.java",
"chars": 3718,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorADD.java",
"chars": 2417,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorAND.java",
"chars": 1830,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorDIV.java",
"chars": 2085,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorEQU.java",
"chars": 2464,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorGREAT.java",
"chars": 2308,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorGREATEQU.java",
"chars": 2332,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorLESS.java",
"chars": 2303,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorLESSEQU.java",
"chars": 2286,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorMOD.java",
"chars": 2112,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorMUL.java",
"chars": 2117,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorNOT.java",
"chars": 1738,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorNOTEQU.java",
"chars": 2476,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorOR.java",
"chars": 1825,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorSUB.java",
"chars": 2110,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/expression/operators/OperatorXOR.java",
"chars": 1822,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/extension/LogPreprocessorExtension.java",
"chars": 2494,
"preview": "package com.igormaznitsa.jcp.extension;\n\n\nimport com.igormaznitsa.jcp.containers.TextFileDataContainer;\nimport com.igorm"
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/extension/PreprocessorExtension.java",
"chars": 3790,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/gradle/JcpGradlePlugin.java",
"chars": 280,
"preview": "package com.igormaznitsa.jcp.gradle;\n\nimport org.gradle.api.Plugin;\nimport org.gradle.api.Project;\n\npublic class JcpGrad"
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/gradle/JcpTask.java",
"chars": 16709,
"preview": "package com.igormaznitsa.jcp.gradle;\n\nimport static com.igormaznitsa.jcp.utils.PreprocessorUtils.fillContextByFoundServi"
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/logger/PreprocessorLogger.java",
"chars": 1974,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/logger/SystemOutLogger.java",
"chars": 2267,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/maven/MavenPropertiesImporter.java",
"chars": 7782,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/maven/PreprocessMojo.java",
"chars": 18844,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/removers/AbstractCommentRemover.java",
"chars": 2948,
"preview": "package com.igormaznitsa.jcp.removers;\n\nimport static java.util.Objects.requireNonNull;\n\nimport com.igormaznitsa.jcp.con"
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/removers/CStyleCommentRemover.java",
"chars": 3416,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/removers/JcpCommentLineRemover.java",
"chars": 4973,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/removers/JustCopyRemover.java",
"chars": 687,
"preview": "package com.igormaznitsa.jcp.removers;\n\nimport java.io.IOException;\nimport java.io.Reader;\nimport java.io.Writer;\n\npubli"
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/utils/AntPathMatcher.java",
"chars": 11226,
"preview": "package com.igormaznitsa.jcp.utils;\n\nimport java.util.ArrayList;\nimport java.util.Collection;\nimport java.util.List;\nimp"
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/utils/ArrayUtils.java",
"chars": 2378,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/utils/GetUtils.java",
"chars": 1801,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/utils/IOUtils.java",
"chars": 1461,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/utils/PreprocessorUtils.java",
"chars": 19903,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/java/com/igormaznitsa/jcp/utils/ResettablePrinter.java",
"chars": 2085,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/main/resources/META-INF/gradle-plugins/com.igormaznitsa.jcp.properties",
"chars": 64,
"preview": "implementation-class=com.igormaznitsa.jcp.gradle.JcpGradlePlugin"
},
{
"path": "jcp/src/main/resources/com/igormaznitsa/jcp/ant/antlib.xml",
"chars": 143,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<antlib>\n <taskdef name=\"preprocess\" classname=\"com.igormaznitsa.jcp.ant.Prepr"
},
{
"path": "jcp/src/main/resources/com/igormaznitsa/jcp/ant/tasks.properties",
"chars": 50,
"preview": "preprocess=com.igormaznitsa.jcp.ant.PreprocessTask"
},
{
"path": "jcp/src/main/resources/jcpversion.properties",
"chars": 67,
"preview": "version=${project.version}\nurl=${project.url}\nyear=${current.year}\n"
},
{
"path": "jcp/src/site/markdown/examples/hello-world.md",
"chars": 690,
"preview": "# Hello World\n\nJust add the snippet into pom.xml\n\n```xml\n\n<build>\n <plugins>\n <plugin>\n <groupId>co"
},
{
"path": "jcp/src/site/markdown/index.md",
"chars": 1024,
"preview": "# Java Comment Preprocessor\n\nJava Comment Preprocessor (JCP) is a Maven plugin that allows preprocessing of source code "
},
{
"path": "jcp/src/site/markdown/usage.md",
"chars": 1798,
"preview": "# Usage\n\nJust add the plugin into the module build section.\n\n```xml\n\n<plugin>\n <groupId>com.igormaznitsa</groupId>\n "
},
{
"path": "jcp/src/site/site.xml",
"chars": 637,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project>\n <skin>\n <groupId>org.apache.maven.skins</groupId>\n <a"
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/AbstractMockPreprocessorContextTest.java",
"chars": 3290,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/AbstractSpyPreprocessorContextTest.java",
"chars": 3919,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/JCPreprocessorTest.java",
"chars": 5833,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/TestUtils.java",
"chars": 1293,
"preview": "/*\n * Copyright 2019 Igor Maznitsa.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not"
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/ant/PreprocessTaskTest.java",
"chars": 7961,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/AbstractCommandLineHandlerTest.java",
"chars": 2233,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/ActionPreprocessorExtensionHandlerTest.java",
"chars": 1433,
"preview": "package com.igormaznitsa.jcp.cmdline;\n\nimport static org.junit.Assert.assertEquals;\nimport static org.junit.Assert.asser"
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/AllowMergeBlockLineHandlerTest.java",
"chars": 1147,
"preview": "package com.igormaznitsa.jcp.cmdline;\n\nimport static org.junit.Assert.assertEquals;\nimport static org.junit.Assert.asser"
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/AllowWhitespaceDirectiveHandlerTest.java",
"chars": 2536,
"preview": "/*\r\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\r\n *\r\n * Licensed to the Apache Software Foundatio"
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/CareForLastEolHandlerTest.java",
"chars": 2337,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/ClearTargetFolderHandlerTest.java",
"chars": 2327,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/CommentRemoverTypeHandlerTest.java",
"chars": 2348,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/DestinationDirectoryHandlerTest.java",
"chars": 2166,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/DontOverwriteSameContentHandlerTest.java",
"chars": 2404,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/ExcludeFoldersHandlerTest.java",
"chars": 2542,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/ExcludedFileExtensionsHandlerTest.java",
"chars": 2310,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/FileExtensionsHandlerTest.java",
"chars": 2274,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/GlobalVariableDefiningFileHandlerTest.java",
"chars": 4271,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/GlobalVariableHandlerTest.java",
"chars": 2150,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/HelpHandlerTest.java",
"chars": 2172,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/InCharsetHandlerTest.java",
"chars": 2344,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/KeepLineHandlerTest.java",
"chars": 2306,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/OutCharsetHandlerTest.java",
"chars": 2324,
"preview": "/*\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\n *\n * Licensed to the Apache Software Foundation ("
},
{
"path": "jcp/src/test/java/com/igormaznitsa/jcp/cmdline/PreserveIndentDirectiveHandlerTest.java",
"chars": 2389,
"preview": "/*\r\n * Copyright 2002-2019 Igor Maznitsa (http://www.igormaznitsa.com)\r\n *\r\n * Licensed to the Apache Software Foundatio"
}
]
// ... and 517 more files (download for full content)
About this extraction
This page contains the full source code of the raydac/java-comment-preprocessor GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 717 files (2.6 MB), approximately 742.7k tokens, and a symbol index with 2360 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.