Class Node

java.lang.Object
org.snakeyaml.engine.v2.nodes.Node
Direct Known Subclasses:
AnchorNode, CollectionNode, ScalarNode

public abstract class Node extends Object
Base class for all nodes.

The nodes form the node-graph described in the YAML Specification.

While loading, the node graph is usually created by the Composer.

  • Field Details

  • Constructor Details

    • Node

      public Node(Tag tag, Optional<Mark> startMark, Optional<Mark> endMark)
      Create Node to be parsed
      Parameters:
      tag - - the tag
      startMark - - start mark when available
      endMark - - end mark when available
  • Method Details

    • getTag

      public Tag getTag()
      Tag of this node.

      Every node has a tag assigned. The tag is either local or global.

      Returns:
      Tag of this node.
    • setTag

      public void setTag(Tag tag)
    • getEndMark

      public Optional<Mark> getEndMark()
    • getNodeType

      public abstract NodeType getNodeType()
      Returns:
      scalar, sequence, mapping
    • getStartMark

      public Optional<Mark> getStartMark()
    • equals

      public final boolean equals(Object obj)
      Node is only equal to itself
      Overrides:
      equals in class Object
    • isRecursive

      public boolean isRecursive()
      Indicates if this node must be constructed in two steps.

      Two-step construction is required whenever a node is a child (direct or indirect) of it self. That is, if a recursive structure is build using anchors and aliases.

      Set by Composer, used during the construction process.

      Only relevant during loading.

      Returns:
      true if the node is self referenced.
    • setRecursive

      public void setRecursive(boolean recursive)
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • getAnchor

      public Optional<Anchor> getAnchor()
      Get the anchor if it was defined for this Node
      Returns:
      the Anchor if available
      See Also:
    • setAnchor

      public void setAnchor(Optional<Anchor> anchor)
      Set the anchor for this Node
      Parameters:
      anchor - - the Anchor for this Node
      See Also:
    • setProperty

      public Object setProperty(String key, Object value)
      Define a custom runtime property. It is not used by Engine but may be used by other tools.
      Parameters:
      key - - the key for the custom property
      value - - the value for the custom property
      Returns:
      the previous value for the provided key if it was defined
    • getProperty

      public Object getProperty(String key)
      Get the custom runtime property.
      Parameters:
      key - - the key of the runtime property
      Returns:
      the value if it was specified
    • getInLineComments

      public List<CommentLine> getInLineComments()
      The ordered list of in-line comments. The first of which appears at the end of the line respresent by this node. The rest are in the following lines, indented per the Spec to indicate they are continuation of the inline comment.
      Returns:
      the comment line list.
    • setInLineComments

      public void setInLineComments(List<CommentLine> inLineComments)
    • getBlockComments

      public List<CommentLine> getBlockComments()
      The ordered list of blank lines and block comments (full line) that appear before this node.
      Returns:
      the comment line list.
    • setBlockComments

      public void setBlockComments(List<CommentLine> blockComments)
    • getEndComments

      public List<CommentLine> getEndComments()
      The ordered list of blank lines and block comments (full line) that appear AFTER this node.

      NOTE: these comment should occur only in the last node in a document, when walking the node tree "in order"

      Returns:
      the comment line list.
    • setEndComments

      public void setEndComments(List<CommentLine> endComments)