public final class Emitter extends java.lang.Object implements Emitable
Emitter expects events obeying the following grammar: stream ::= STREAM-START document* STREAM-END document ::= DOCUMENT-START node DOCUMENT-END node ::= SCALAR | sequence | mapping sequence ::= SEQUENCE-START node* SEQUENCE-END mapping ::= MAPPING-START (node node)* MAPPING-END
Modifier and Type | Class and Description |
---|---|
private class |
Emitter.ExpectBlockMappingKey |
private class |
Emitter.ExpectBlockMappingSimpleValue |
private class |
Emitter.ExpectBlockMappingValue |
private class |
Emitter.ExpectBlockSequenceItem |
private class |
Emitter.ExpectDocumentEnd |
private class |
Emitter.ExpectDocumentRoot |
private class |
Emitter.ExpectDocumentStart |
private class |
Emitter.ExpectFirstBlockMappingKey |
private class |
Emitter.ExpectFirstBlockSequenceItem |
private class |
Emitter.ExpectFirstDocumentStart |
private class |
Emitter.ExpectFirstFlowMappingKey |
private class |
Emitter.ExpectFirstFlowSequenceItem |
private class |
Emitter.ExpectFlowMappingKey |
private class |
Emitter.ExpectFlowMappingSimpleValue |
private class |
Emitter.ExpectFlowMappingValue |
private class |
Emitter.ExpectFlowSequenceItem |
private class |
Emitter.ExpectNothing |
private class |
Emitter.ExpectStreamStart |
Modifier and Type | Field and Description |
---|---|
private boolean |
allowUnicode |
private ScalarAnalysis |
analysis |
private int |
bestIndent |
private char[] |
bestLineBreak |
private int |
bestWidth |
private CommentEventsCollector |
blockCommentsCollector |
private java.lang.Boolean |
canonical |
private int |
column |
private static java.util.Map<java.lang.String,java.lang.String> |
DEFAULT_TAG_PREFIXES |
private boolean |
emitComments |
private static java.util.Map<java.lang.Character,java.lang.String> |
ESCAPE_REPLACEMENTS |
private Event |
event |
private java.util.Queue<Event> |
events |
private int |
flowLevel |
private static java.util.regex.Pattern |
HANDLE_FORMAT |
private java.lang.Integer |
indent |
private boolean |
indention |
private ArrayStack<java.lang.Integer> |
indents |
private boolean |
indentWithIndicator |
private int |
indicatorIndent |
private CommentEventsCollector |
inlineCommentsCollector |
private static java.util.Set<java.lang.Character> |
INVALID_ANCHOR |
private boolean |
mappingContext |
static int |
MAX_INDENT |
private int |
maxSimpleKeyLength |
static int |
MIN_INDENT |
private boolean |
openEnded |
private java.lang.String |
preparedAnchor |
private java.lang.String |
preparedTag |
private java.lang.Boolean |
prettyFlow |
private boolean |
rootContext |
private boolean |
simpleKeyContext |
private static char[] |
SPACE |
private static java.util.regex.Pattern |
SPACES_PATTERN |
private boolean |
splitLines |
private EmitterState |
state |
private ArrayStack<EmitterState> |
states |
private java.io.Writer |
stream |
private DumperOptions.ScalarStyle |
style |
private java.util.Map<java.lang.String,java.lang.String> |
tagPrefixes |
private boolean |
whitespace |
Constructor and Description |
---|
Emitter(java.io.Writer stream,
DumperOptions opts) |
Modifier and Type | Method and Description |
---|---|
private ScalarAnalysis |
analyzeScalar(java.lang.String scalar) |
private boolean |
checkEmptyDocument() |
private boolean |
checkEmptyMapping() |
private boolean |
checkEmptySequence() |
private boolean |
checkSimpleKey() |
private DumperOptions.ScalarStyle |
chooseScalarStyle() |
private java.lang.String |
determineBlockHints(java.lang.String text) |
void |
emit(Event event) |
private void |
expectAlias() |
private void |
expectBlockMapping() |
private void |
expectBlockSequence() |
private void |
expectFlowMapping() |
private void |
expectFlowSequence() |
private void |
expectNode(boolean root,
boolean mapping,
boolean simpleKey) |
private void |
expectScalar() |
(package private) void |
flushStream() |
private void |
increaseIndent(boolean flow,
boolean indentless) |
private boolean |
isFoldedOrLiteral(Event event) |
private boolean |
needEvents(java.util.Iterator<Event> iter,
int count) |
private boolean |
needMoreEvents() |
(package private) static java.lang.String |
prepareAnchor(java.lang.String anchor) |
private java.lang.String |
prepareTag(java.lang.String tag) |
private java.lang.String |
prepareTagHandle(java.lang.String handle) |
private java.lang.String |
prepareTagPrefix(java.lang.String prefix) |
private java.lang.String |
prepareVersion(DumperOptions.Version version) |
private void |
processAnchor(java.lang.String indicator) |
private void |
processScalar() |
private void |
processTag() |
private void |
writeBlockComment() |
private boolean |
writeCommentLines(java.util.List<CommentLine> commentLines) |
private void |
writeDoubleQuoted(java.lang.String text,
boolean split) |
(package private) void |
writeFolded(java.lang.String text,
boolean split) |
(package private) void |
writeIndent() |
(package private) void |
writeIndicator(java.lang.String indicator,
boolean needWhitespace,
boolean whitespace,
boolean indentation) |
private boolean |
writeInlineComments() |
private void |
writeLineBreak(java.lang.String data) |
(package private) void |
writeLiteral(java.lang.String text) |
(package private) void |
writePlain(java.lang.String text,
boolean split) |
private void |
writeSingleQuoted(java.lang.String text,
boolean split) |
(package private) void |
writeStreamEnd() |
(package private) void |
writeStreamStart() |
(package private) void |
writeTagDirective(java.lang.String handleText,
java.lang.String prefixText) |
(package private) void |
writeVersionDirective(java.lang.String versionText) |
private void |
writeWhitespace(int length) |
public static final int MIN_INDENT
public static final int MAX_INDENT
private static final char[] SPACE
private static final java.util.regex.Pattern SPACES_PATTERN
private static final java.util.Set<java.lang.Character> INVALID_ANCHOR
private static final java.util.Map<java.lang.Character,java.lang.String> ESCAPE_REPLACEMENTS
private static final java.util.Map<java.lang.String,java.lang.String> DEFAULT_TAG_PREFIXES
private final java.io.Writer stream
private final ArrayStack<EmitterState> states
private EmitterState state
private final java.util.Queue<Event> events
private Event event
private final ArrayStack<java.lang.Integer> indents
private java.lang.Integer indent
private int flowLevel
private boolean rootContext
private boolean mappingContext
private boolean simpleKeyContext
private int column
private boolean whitespace
private boolean indention
private boolean openEnded
private final java.lang.Boolean canonical
private final java.lang.Boolean prettyFlow
private final boolean allowUnicode
private int bestIndent
private final int indicatorIndent
private final boolean indentWithIndicator
private int bestWidth
private final char[] bestLineBreak
private final boolean splitLines
private final int maxSimpleKeyLength
private final boolean emitComments
private java.util.Map<java.lang.String,java.lang.String> tagPrefixes
private java.lang.String preparedAnchor
private java.lang.String preparedTag
private ScalarAnalysis analysis
private DumperOptions.ScalarStyle style
private final CommentEventsCollector blockCommentsCollector
private final CommentEventsCollector inlineCommentsCollector
private static final java.util.regex.Pattern HANDLE_FORMAT
public Emitter(java.io.Writer stream, DumperOptions opts)
public void emit(Event event) throws java.io.IOException
private boolean needMoreEvents()
private boolean needEvents(java.util.Iterator<Event> iter, int count)
private void increaseIndent(boolean flow, boolean indentless)
private void expectNode(boolean root, boolean mapping, boolean simpleKey) throws java.io.IOException
java.io.IOException
private void expectAlias() throws java.io.IOException
java.io.IOException
private void expectScalar() throws java.io.IOException
java.io.IOException
private void expectFlowSequence() throws java.io.IOException
java.io.IOException
private void expectFlowMapping() throws java.io.IOException
java.io.IOException
private void expectBlockSequence() throws java.io.IOException
java.io.IOException
private void expectBlockMapping() throws java.io.IOException
java.io.IOException
private boolean isFoldedOrLiteral(Event event)
private boolean checkEmptySequence()
private boolean checkEmptyMapping()
private boolean checkEmptyDocument()
private boolean checkSimpleKey()
private void processAnchor(java.lang.String indicator) throws java.io.IOException
java.io.IOException
private void processTag() throws java.io.IOException
java.io.IOException
private DumperOptions.ScalarStyle chooseScalarStyle()
private void processScalar() throws java.io.IOException
java.io.IOException
private java.lang.String prepareVersion(DumperOptions.Version version)
private java.lang.String prepareTagHandle(java.lang.String handle)
private java.lang.String prepareTagPrefix(java.lang.String prefix)
private java.lang.String prepareTag(java.lang.String tag)
static java.lang.String prepareAnchor(java.lang.String anchor)
private ScalarAnalysis analyzeScalar(java.lang.String scalar)
void flushStream() throws java.io.IOException
java.io.IOException
void writeStreamStart()
void writeStreamEnd() throws java.io.IOException
java.io.IOException
void writeIndicator(java.lang.String indicator, boolean needWhitespace, boolean whitespace, boolean indentation) throws java.io.IOException
java.io.IOException
void writeIndent() throws java.io.IOException
java.io.IOException
private void writeWhitespace(int length) throws java.io.IOException
java.io.IOException
private void writeLineBreak(java.lang.String data) throws java.io.IOException
java.io.IOException
void writeVersionDirective(java.lang.String versionText) throws java.io.IOException
java.io.IOException
void writeTagDirective(java.lang.String handleText, java.lang.String prefixText) throws java.io.IOException
java.io.IOException
private void writeSingleQuoted(java.lang.String text, boolean split) throws java.io.IOException
java.io.IOException
private void writeDoubleQuoted(java.lang.String text, boolean split) throws java.io.IOException
java.io.IOException
private boolean writeCommentLines(java.util.List<CommentLine> commentLines) throws java.io.IOException
java.io.IOException
private void writeBlockComment() throws java.io.IOException
java.io.IOException
private boolean writeInlineComments() throws java.io.IOException
java.io.IOException
private java.lang.String determineBlockHints(java.lang.String text)
void writeFolded(java.lang.String text, boolean split) throws java.io.IOException
java.io.IOException
void writeLiteral(java.lang.String text) throws java.io.IOException
java.io.IOException
void writePlain(java.lang.String text, boolean split) throws java.io.IOException
java.io.IOException