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 classEmitter.ExpectBlockMappingKeyprivate classEmitter.ExpectBlockMappingSimpleValueprivate classEmitter.ExpectBlockMappingValueprivate classEmitter.ExpectBlockSequenceItemprivate classEmitter.ExpectDocumentEndprivate classEmitter.ExpectDocumentRootprivate classEmitter.ExpectDocumentStartprivate classEmitter.ExpectFirstBlockMappingKeyprivate classEmitter.ExpectFirstBlockSequenceItemprivate classEmitter.ExpectFirstDocumentStartprivate classEmitter.ExpectFirstFlowMappingKeyprivate classEmitter.ExpectFirstFlowSequenceItemprivate classEmitter.ExpectFlowMappingKeyprivate classEmitter.ExpectFlowMappingSimpleValueprivate classEmitter.ExpectFlowMappingValueprivate classEmitter.ExpectFlowSequenceItemprivate classEmitter.ExpectNothingprivate classEmitter.ExpectStreamStart
-
Field Summary
Fields Modifier and Type Field Description private booleanallowUnicodeprivate ScalarAnalysisanalysisprivate intbestIndentprivate java.lang.StringbestLineBreakprivate intbestWidthprivate CommentEventsCollectorblockCommentsCollectorprivate java.lang.Booleancanonicalprivate intcolumnprivate static java.util.Map<java.lang.String,java.lang.String>DEFAULT_TAG_PREFIXESprivate booleanemitCommentsprivate static java.util.Map<java.lang.Character,java.lang.String>ESCAPE_REPLACEMENTSprivate Eventeventprivate java.util.Queue<Event>eventsprivate intflowLevelprivate static java.util.regex.PatternHANDLE_FORMATprivate java.lang.Integerindentprivate booleanindentionprivate ArrayStack<java.lang.Integer>indentsprivate booleanindentWithIndicatorprivate intindicatorIndentprivate CommentEventsCollectorinlineCommentsCollectorprivate booleanmappingContextstatic intMAX_INDENTindent should not be more than 10 spacesprivate intmaxSimpleKeyLengthstatic intMIN_INDENTindent cannot be zero spacesprivate java.lang.BooleanmultiLineFlowprivate booleanopenEndedprivate java.util.Optional<Anchor>preparedAnchorprivate java.lang.StringpreparedTagprivate booleanrootContextprivate java.util.Optional<ScalarStyle>scalarStyleprivate booleansimpleKeyContextprivate static java.lang.StringSPACEprivate booleansplitLinesprivate EmitterStatestateprivate ArrayStack<EmitterState>statesprivate StreamDataWriterstreamprivate java.util.Map<java.lang.String,java.lang.String>tagPrefixesprivate booleanwhitespace
-
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 ScalarAnalysisanalyzeScalar(java.lang.String scalar)private booleancheckEmptyMapping()private booleancheckEmptySequence()private booleancheckSimpleKey()private java.util.Optional<ScalarStyle>chooseScalarStyle(ScalarEvent ev)private java.lang.StringdetermineBlockHints(java.lang.String text)voidemit(Event event)Serialise event to bytesprivate voidexpectAlias()private voidexpectBlockMapping()private voidexpectBlockSequence()private voidexpectFlowMapping()private voidexpectFlowSequence()private voidexpectNode(boolean root, boolean mapping, boolean simpleKey)private voidexpectScalar()(package private) voidflushStream()private voidhandleNodeEvent(Event.ID id)private voidincreaseIndent(boolean isFlow, boolean indentless)private booleanisFoldedOrLiteral(Event event)private booleanneedEvents(java.util.Iterator<Event> iter, int count)private booleanneedMoreEvents()private java.lang.StringprepareTag(java.lang.String tag)private java.lang.StringprepareTagHandle(java.lang.String handle)private java.lang.StringprepareTagPrefix(java.lang.String prefix)private java.lang.StringprepareVersion(SpecVersion version)private voidprocessAnchor(java.lang.String indicator)private voidprocessScalar()private voidprocessTag()private voidwriteBlockComment()private booleanwriteCommentLines(java.util.List<CommentLine> commentLines)private voidwriteDoubleQuoted(java.lang.String text, boolean split)(package private) voidwriteFolded(java.lang.String text, boolean split)(package private) voidwriteIndent()(package private) voidwriteIndicator(java.lang.String indicator, boolean needWhitespace, boolean whitespace, boolean indentation)private booleanwriteInlineComments()private voidwriteLineBreak(java.lang.String data)(package private) voidwriteLiteral(java.lang.String text)(package private) voidwritePlain(java.lang.String text, boolean split)private voidwriteSingleQuoted(java.lang.String text, boolean split)(package private) voidwriteStreamEnd()(package private) voidwriteStreamStart()(package private) voidwriteTagDirective(java.lang.String handleText, java.lang.String prefixText)(package private) voidwriteVersionDirective(java.lang.String versionText)private voidwriteWhitespace(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:EmitableSerialise 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)
-
-