Class Composer


  • public class Composer
    extends java.lang.Object
    Creates a node graph from parser events.

    Corresponds to the 'Compose' step as described in chapter 3.1 of the YAML Specification.

    • Field Detail

      • parser

        protected final Parser parser
      • resolver

        private final Resolver resolver
      • anchors

        private final java.util.Map<java.lang.String,​Node> anchors
      • recursiveNodes

        private final java.util.Set<Node> recursiveNodes
      • nonScalarAliasesCount

        private int nonScalarAliasesCount
      • nestingDepth

        private int nestingDepth
      • nestingDepthLimit

        private final int nestingDepthLimit
    • Method Detail

      • checkNode

        public boolean checkNode()
        Checks if further documents are available.
        Returns:
        true if there is at least one more document.
      • getNode

        public Node getNode()
        Reads and composes the next document.
        Returns:
        The root node of the document or null if no more documents are available.
      • getSingleNode

        public Node getSingleNode()
        Reads a document from a source that contains only one document.

        If the stream contains more than one document an exception is thrown.

        Returns:
        The root node of the document or null if no document is available.
      • composeNode

        private Node composeNode​(Node parent)
      • composeScalarNode

        protected Node composeScalarNode​(java.lang.String anchor,
                                         java.util.List<CommentLine> blockComments)
      • composeSequenceNode

        protected Node composeSequenceNode​(java.lang.String anchor)
      • composeMappingNode

        protected Node composeMappingNode​(java.lang.String anchor)
      • composeMappingChildren

        protected void composeMappingChildren​(java.util.List<NodeTuple> children,
                                              MappingNode node)
      • increaseNestingDepth

        private void increaseNestingDepth()
        Increase nesting depth and fail when it exceeds the denied limit
      • decreaseNestingDepth

        private void decreaseNestingDepth()
        Indicate that the collection is finished and the nesting is decreased