Package org.snakeyaml.engine.v2.emitter
Class Emitter
- java.lang.Object
-
- org.snakeyaml.engine.v2.emitter.Emitter
-
- All Implemented Interfaces:
Emitable
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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 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
-
Field Summary
Fields Modifier and Type Field Description private boolean
allowUnicode
private ScalarAnalysis
analysis
private int
bestIndent
private java.lang.String
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 boolean
mappingContext
static int
MAX_INDENT
indent should not be more than 10 spacesprivate int
maxSimpleKeyLength
static int
MIN_INDENT
indent cannot be zero spacesprivate java.lang.Boolean
multiLineFlow
private boolean
openEnded
private java.util.Optional<Anchor>
preparedAnchor
private java.lang.String
preparedTag
private boolean
rootContext
private java.util.Optional<ScalarStyle>
scalarStyle
private boolean
simpleKeyContext
private static java.lang.String
SPACE
private boolean
splitLines
private EmitterState
state
private ArrayStack<EmitterState>
states
private StreamDataWriter
stream
private java.util.Map<java.lang.String,java.lang.String>
tagPrefixes
private boolean
whitespace
-
Constructor Summary
Constructors Constructor Description Emitter(DumpSettings opts, StreamDataWriter stream)
Create
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private ScalarAnalysis
analyzeScalar(java.lang.String scalar)
private boolean
checkEmptyMapping()
private boolean
checkEmptySequence()
private boolean
checkSimpleKey()
private java.util.Optional<ScalarStyle>
chooseScalarStyle(ScalarEvent ev)
private java.lang.String
determineBlockHints(java.lang.String text)
void
emit(Event event)
Serialise event to bytesprivate 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
handleNodeEvent(Event.ID id)
private void
increaseIndent(boolean isFlow, boolean indentless)
private boolean
isFoldedOrLiteral(Event event)
private boolean
needEvents(java.util.Iterator<Event> iter, int count)
private boolean
needMoreEvents()
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(SpecVersion 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)
-
-
-
Field Detail
-
ESCAPE_REPLACEMENTS
private static final java.util.Map<java.lang.Character,java.lang.String> ESCAPE_REPLACEMENTS
-
MIN_INDENT
public static final int MIN_INDENT
indent cannot be zero spaces- See Also:
- Constant Field Values
-
MAX_INDENT
public static final int MAX_INDENT
indent should not be more than 10 spaces- See Also:
- Constant Field Values
-
SPACE
private static final java.lang.String SPACE
- See Also:
- Constant Field Values
-
DEFAULT_TAG_PREFIXES
private static final java.util.Map<java.lang.String,java.lang.String> DEFAULT_TAG_PREFIXES
-
stream
private final StreamDataWriter stream
-
states
private final ArrayStack<EmitterState> states
-
state
private EmitterState state
-
events
private final java.util.Queue<Event> events
-
event
private Event event
-
indents
private final ArrayStack<java.lang.Integer> indents
-
indent
private java.lang.Integer indent
-
flowLevel
private int flowLevel
-
rootContext
private boolean rootContext
-
mappingContext
private boolean mappingContext
-
simpleKeyContext
private boolean simpleKeyContext
-
column
private int column
-
whitespace
private boolean whitespace
-
indention
private boolean indention
-
openEnded
private boolean openEnded
-
canonical
private final java.lang.Boolean canonical
-
multiLineFlow
private final java.lang.Boolean multiLineFlow
-
allowUnicode
private final boolean allowUnicode
-
bestIndent
private int bestIndent
-
indicatorIndent
private final int indicatorIndent
-
indentWithIndicator
private final boolean indentWithIndicator
-
bestWidth
private int bestWidth
-
bestLineBreak
private final java.lang.String bestLineBreak
-
splitLines
private final boolean splitLines
-
maxSimpleKeyLength
private final int maxSimpleKeyLength
-
emitComments
private final boolean emitComments
-
tagPrefixes
private java.util.Map<java.lang.String,java.lang.String> tagPrefixes
-
preparedAnchor
private java.util.Optional<Anchor> preparedAnchor
-
preparedTag
private java.lang.String preparedTag
-
analysis
private ScalarAnalysis analysis
-
scalarStyle
private java.util.Optional<ScalarStyle> scalarStyle
-
blockCommentsCollector
private final CommentEventsCollector blockCommentsCollector
-
inlineCommentsCollector
private final CommentEventsCollector inlineCommentsCollector
-
HANDLE_FORMAT
private static final java.util.regex.Pattern HANDLE_FORMAT
-
-
Constructor Detail
-
Emitter
public Emitter(DumpSettings opts, StreamDataWriter stream)
Create- Parameters:
opts
- - configuration optionsstream
- - output stream
-
-
Method Detail
-
emit
public void emit(Event event)
Description copied from interface:Emitable
Serialise event to bytes
-
needMoreEvents
private boolean needMoreEvents()
-
needEvents
private boolean needEvents(java.util.Iterator<Event> iter, int count)
-
increaseIndent
private void increaseIndent(boolean isFlow, boolean indentless)
-
expectNode
private void expectNode(boolean root, boolean mapping, boolean simpleKey)
-
handleNodeEvent
private void handleNodeEvent(Event.ID id)
-
expectAlias
private void expectAlias()
-
expectScalar
private void expectScalar()
-
expectFlowSequence
private void expectFlowSequence()
-
expectFlowMapping
private void expectFlowMapping()
-
expectBlockSequence
private void expectBlockSequence()
-
expectBlockMapping
private void expectBlockMapping()
-
isFoldedOrLiteral
private boolean isFoldedOrLiteral(Event event)
-
checkEmptySequence
private boolean checkEmptySequence()
-
checkEmptyMapping
private boolean checkEmptyMapping()
-
checkSimpleKey
private boolean checkSimpleKey()
-
processAnchor
private void processAnchor(java.lang.String indicator)
-
processTag
private void processTag()
-
chooseScalarStyle
private java.util.Optional<ScalarStyle> chooseScalarStyle(ScalarEvent ev)
-
processScalar
private void processScalar()
-
prepareVersion
private java.lang.String prepareVersion(SpecVersion version)
-
prepareTagHandle
private java.lang.String prepareTagHandle(java.lang.String handle)
-
prepareTagPrefix
private java.lang.String prepareTagPrefix(java.lang.String prefix)
-
prepareTag
private java.lang.String prepareTag(java.lang.String tag)
-
analyzeScalar
private ScalarAnalysis analyzeScalar(java.lang.String scalar)
-
flushStream
void flushStream()
-
writeStreamStart
void writeStreamStart()
-
writeStreamEnd
void writeStreamEnd()
-
writeIndicator
void writeIndicator(java.lang.String indicator, boolean needWhitespace, boolean whitespace, boolean indentation)
-
writeIndent
void writeIndent()
-
writeWhitespace
private void writeWhitespace(int length)
-
writeLineBreak
private void writeLineBreak(java.lang.String data)
-
writeVersionDirective
void writeVersionDirective(java.lang.String versionText)
-
writeTagDirective
void writeTagDirective(java.lang.String handleText, java.lang.String prefixText)
-
writeSingleQuoted
private void writeSingleQuoted(java.lang.String text, boolean split)
-
writeDoubleQuoted
private void writeDoubleQuoted(java.lang.String text, boolean split)
-
writeCommentLines
private boolean writeCommentLines(java.util.List<CommentLine> commentLines)
-
writeBlockComment
private void writeBlockComment()
-
writeInlineComments
private boolean writeInlineComments()
-
determineBlockHints
private java.lang.String determineBlockHints(java.lang.String text)
-
writeFolded
void writeFolded(java.lang.String text, boolean split)
-
writeLiteral
void writeLiteral(java.lang.String text)
-
writePlain
void writePlain(java.lang.String text, boolean split)
-
-