public final class PreprocessingState
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
PreprocessingState.ExcludeIfInfo |
static class |
PreprocessingState.PrinterType |
Modifier and Type | Field and Description |
---|---|
private TextFileDataContainer |
activeIf |
private TextFileDataContainer |
activeWhile |
private PreprocessorContext |
context |
private ResetablePrinter |
currentPrinter |
private java.util.LinkedList<PreprocessingState.ExcludeIfInfo> |
deferredExcludeStack |
static FilePositionInfo[] |
EMPTY_STACK |
private java.lang.String |
globalInCharacterEncoding |
private java.lang.String |
globalOutCharacterEncoding |
private java.util.LinkedList<TextFileDataContainer> |
ifStack |
private java.util.LinkedList<TextFileDataContainer> |
includeStack |
private java.lang.String |
lastReadString |
static int |
MAX_WRITE_BUFFER_SIZE |
private ResetablePrinter |
normalPrinter |
private boolean |
overrideOnlyIfContentChanged |
private ResetablePrinter |
postfixPrinter |
private ResetablePrinter |
prefixPrinter |
private java.util.EnumSet<PreprocessingFlag> |
preprocessingFlags |
private FileInfoContainer |
rootFileInfo |
private TextFileDataContainer |
rootReference |
private java.util.LinkedList<TextFileDataContainer> |
whileStack |
Constructor and Description |
---|
PreprocessingState(PreprocessorContext context,
FileInfoContainer rootFile,
java.lang.String inEncoding,
java.lang.String outEncoding,
boolean overrideOnlyIfContentChanged) |
PreprocessingState(PreprocessorContext context,
FileInfoContainer rootFile,
TextFileDataContainer rootContainer,
java.lang.String inEncoding,
java.lang.String outEncoding,
boolean overrideOnlyIfContentChanged) |
public static final FilePositionInfo[] EMPTY_STACK
public static final int MAX_WRITE_BUFFER_SIZE
private final java.lang.String globalInCharacterEncoding
private final java.lang.String globalOutCharacterEncoding
private final TextFileDataContainer rootReference
private final FileInfoContainer rootFileInfo
private final java.util.LinkedList<TextFileDataContainer> whileStack
private final java.util.LinkedList<TextFileDataContainer> ifStack
private final java.util.LinkedList<TextFileDataContainer> includeStack
private final java.util.LinkedList<PreprocessingState.ExcludeIfInfo> deferredExcludeStack
private final ResetablePrinter prefixPrinter
private final ResetablePrinter postfixPrinter
private final ResetablePrinter normalPrinter
private final boolean overrideOnlyIfContentChanged
private ResetablePrinter currentPrinter
private final java.util.EnumSet<PreprocessingFlag> preprocessingFlags
private TextFileDataContainer activeIf
private TextFileDataContainer activeWhile
private java.lang.String lastReadString
private final PreprocessorContext context
PreprocessingState(PreprocessorContext context, FileInfoContainer rootFile, java.lang.String inEncoding, java.lang.String outEncoding, boolean overrideOnlyIfContentChanged) throws java.io.IOException
java.io.IOException
PreprocessingState(PreprocessorContext context, FileInfoContainer rootFile, TextFileDataContainer rootContainer, java.lang.String inEncoding, java.lang.String outEncoding, boolean overrideOnlyIfContentChanged)
public java.lang.String getLastReadString()
public void pushExcludeIfData(FileInfoContainer infoContainer, java.lang.String excludeIfCondition, int stringIndex)
public java.util.List<PreprocessingState.ExcludeIfInfo> popAllExcludeIfInfoData()
public PreprocessingState.ExcludeIfInfo popExcludeIfData()
public java.util.Set<PreprocessingFlag> getPreprocessingFlags()
public ResetablePrinter getPrinter() throws java.io.IOException
java.io.IOException
public TextFileDataContainer getRootTextContainer()
public TextFileDataContainer openFile(java.io.File file) throws java.io.IOException
java.io.IOException
public TextFileDataContainer peekFile()
java.util.List<TextFileDataContainer> getCurrentIncludeStack()
public FilePositionInfo[] makeIncludeStack()
public TextFileDataContainer popTextContainer()
public FileInfoContainer getRootFileInfo()
public boolean isIncludeStackEmpty()
public boolean isOnlyRootOnStack()
private TextFileDataContainer cloneTopTextDataContainer(boolean useLastReadStringIndex)
public PreprocessingState popWhile()
public PreprocessingState pushWhile(boolean makeActive)
public TextFileDataContainer peekWhile()
public boolean hasReadLineNextLineInEnd()
public java.lang.String nextLine()
public PreprocessingState goToString(int stringIndex)
public PreprocessingState pushIf(boolean makeActive)
public void popAllIFUntilContainerWithFile(TextFileDataContainer container)
public PreprocessingState popIf()
public boolean isAtActiveWhile()
public boolean isAtActiveIf()
public boolean isDirectiveCanBeProcessedIgnoreBreak()
public boolean isDirectiveCanBeProcessed()
public TextFileDataContainer peekIf()
public boolean isIfStackEmpty()
public boolean isWhileStackEmpty()
private void init()
public void setPrinter(PreprocessingState.PrinterType type)
public void resetPrinters()
public void saveBuffersToStreams(java.io.OutputStream prefix, java.io.OutputStream normal, java.io.OutputStream postfix) throws java.io.IOException
java.io.IOException
public boolean saveBuffersToFile(java.io.File outFile, boolean removeComments) throws java.io.IOException
java.io.IOException
public java.io.Writer writePrinterBuffers(java.io.Writer writer) throws java.io.IOException
java.io.IOException
public PreprocessorException makeException(java.lang.String message, java.lang.String causeString, java.lang.Throwable cause)
public void dispose()