Class 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
     
    • 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
      • DEFAULT_TAG_PREFIXES

        private static final java.util.Map<java.lang.String,​java.lang.String> DEFAULT_TAG_PREFIXES
      • 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
      • scalarStyle

        private java.util.Optional<ScalarStyle> scalarStyle
      • HANDLE_FORMAT

        private static final java.util.regex.Pattern HANDLE_FORMAT
    • Constructor Detail

      • Emitter

        public Emitter​(DumpSettings opts,
                       StreamDataWriter stream)
        Create
        Parameters:
        opts - - configuration options
        stream - - output stream
    • Method Detail

      • emit

        public void emit​(Event event)
        Description copied from interface: Emitable
        Serialise event to bytes
        Specified by:
        emit in interface Emitable
        Parameters:
        event - - the source
      • 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()
      • 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)