Package com.igormaznitsa.jcp.context
Class PreprocessingState
- java.lang.Object
-
- com.igormaznitsa.jcp.context.PreprocessingState
-
public final class PreprocessingState extends java.lang.Object
The class describes a preprocessor state also it contains inside buffers and save data on disk
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PreprocessingState.ExcludeIfInfo
static class
PreprocessingState.PrinterType
-
Field Summary
-
Constructor Summary
Constructors Constructor Description PreprocessingState(PreprocessorContext context, FileInfoContainer rootFile, TextFileDataContainer rootContainer, java.lang.String inEncoding, java.lang.String outEncoding, boolean overrideOnlyIfContentChanged)
PreprocessingState(PreprocessorContext context, FileInfoContainer rootFile, java.lang.String inEncoding, java.lang.String outEncoding, boolean overrideOnlyIfContentChanged)
PreprocessingState(PreprocessorContext context, java.lang.String inEncoding, java.lang.String outEncoding)
-
Method Summary
-
-
-
Field Detail
-
EMPTY_STACK
public static final FilePositionInfo[] EMPTY_STACK
-
MAX_WRITE_BUFFER_SIZE
public static final int MAX_WRITE_BUFFER_SIZE
- See Also:
- Constant Field Values
-
globalInCharacterEncoding
private final java.lang.String globalInCharacterEncoding
-
globalOutCharacterEncoding
private final java.lang.String globalOutCharacterEncoding
-
rootReference
private final TextFileDataContainer rootReference
-
rootFileInfo
private final FileInfoContainer rootFileInfo
-
whileStack
private final java.util.LinkedList<TextFileDataContainer> whileStack
-
ifStack
private final java.util.LinkedList<TextFileDataContainer> ifStack
-
includeStack
private final java.util.LinkedList<TextFileDataContainer> includeStack
-
deferredExcludeStack
private final java.util.LinkedList<PreprocessingState.ExcludeIfInfo> deferredExcludeStack
-
prefixPrinter
private final ResetablePrinter prefixPrinter
-
postfixPrinter
private final ResetablePrinter postfixPrinter
-
normalPrinter
private final ResetablePrinter normalPrinter
-
overrideOnlyIfContentChanged
private final boolean overrideOnlyIfContentChanged
-
currentPrinter
private ResetablePrinter currentPrinter
-
preprocessingFlags
private final java.util.EnumSet<PreprocessingFlag> preprocessingFlags
-
activeIf
private TextFileDataContainer activeIf
-
activeWhile
private TextFileDataContainer activeWhile
-
lastReadString
private java.lang.String lastReadString
-
context
private final PreprocessorContext context
-
fake
private final boolean fake
-
-
Constructor Detail
-
PreprocessingState
PreprocessingState(PreprocessorContext context, java.lang.String inEncoding, java.lang.String outEncoding)
-
PreprocessingState
PreprocessingState(PreprocessorContext context, FileInfoContainer rootFile, java.lang.String inEncoding, java.lang.String outEncoding, boolean overrideOnlyIfContentChanged) throws java.io.IOException
- Throws:
java.io.IOException
-
PreprocessingState
PreprocessingState(PreprocessorContext context, FileInfoContainer rootFile, TextFileDataContainer rootContainer, java.lang.String inEncoding, java.lang.String outEncoding, boolean overrideOnlyIfContentChanged)
-
-
Method Detail
-
getLastReadString
public java.lang.String getLastReadString()
-
pushExcludeIfData
public void pushExcludeIfData(FileInfoContainer infoContainer, java.lang.String excludeIfCondition, int stringIndex)
-
popAllExcludeIfInfoData
@MustNotContainNull public java.util.List<PreprocessingState.ExcludeIfInfo> popAllExcludeIfInfoData()
-
popExcludeIfData
public PreprocessingState.ExcludeIfInfo popExcludeIfData()
-
getPreprocessingFlags
public java.util.Set<PreprocessingFlag> getPreprocessingFlags()
-
getPrinter
public ResetablePrinter getPrinter() throws java.io.IOException
- Throws:
java.io.IOException
-
getRootTextContainer
public TextFileDataContainer getRootTextContainer()
-
openFile
public TextFileDataContainer openFile(java.io.File file) throws java.io.IOException
- Throws:
java.io.IOException
-
peekFile
public TextFileDataContainer peekFile()
-
getCurrentIncludeStack
@MustNotContainNull java.util.List<TextFileDataContainer> getCurrentIncludeStack()
-
makeIncludeStack
@MustNotContainNull public FilePositionInfo[] makeIncludeStack()
-
popTextContainer
public TextFileDataContainer popTextContainer()
-
getRootFileInfo
public FileInfoContainer getRootFileInfo()
-
isIncludeStackEmpty
public boolean isIncludeStackEmpty()
-
isOnlyRootOnStack
public boolean isOnlyRootOnStack()
-
cloneTopTextDataContainer
private TextFileDataContainer cloneTopTextDataContainer(boolean useLastReadStringIndex)
-
popWhile
public PreprocessingState popWhile()
-
pushWhile
public PreprocessingState pushWhile(boolean makeActive)
-
peekWhile
public TextFileDataContainer peekWhile()
-
hasReadLineNextLineInEnd
public boolean hasReadLineNextLineInEnd()
-
nextLine
public java.lang.String nextLine()
-
goToString
public PreprocessingState goToString(int stringIndex)
-
pushIf
public PreprocessingState pushIf(boolean makeActive)
-
popAllIFUntilContainerWithFile
public void popAllIFUntilContainerWithFile(TextFileDataContainer container)
-
popIf
public PreprocessingState popIf()
-
isAtActiveWhile
public boolean isAtActiveWhile()
-
isAtActiveIf
public boolean isAtActiveIf()
-
isDirectiveCanBeProcessedIgnoreBreak
public boolean isDirectiveCanBeProcessedIgnoreBreak()
-
isDirectiveCanBeProcessed
public boolean isDirectiveCanBeProcessed()
-
peekIf
public TextFileDataContainer peekIf()
-
isIfStackEmpty
public boolean isIfStackEmpty()
-
isWhileStackEmpty
public boolean isWhileStackEmpty()
-
init
private void init()
-
setPrinter
public void setPrinter(PreprocessingState.PrinterType type)
-
resetPrinters
public void resetPrinters()
-
saveBuffersToStreams
public void saveBuffersToStreams(java.io.OutputStream prefix, java.io.OutputStream normal, java.io.OutputStream postfix) throws java.io.IOException
- Throws:
java.io.IOException
-
saveBuffersToFile
public boolean saveBuffersToFile(java.io.File outFile, boolean removeComments) throws java.io.IOException
- Throws:
java.io.IOException
-
writePrinterBuffers
public java.io.Writer writePrinterBuffers(java.io.Writer writer) throws java.io.IOException
- Throws:
java.io.IOException
-
makeException
public PreprocessorException makeException(java.lang.String message, java.lang.String causeString, java.lang.Throwable cause)
-
dispose
public void dispose()
-
-