Class BaseConstructor

java.lang.Object
org.yaml.snakeyaml.constructor.BaseConstructor
Direct Known Subclasses:
SafeConstructor

public abstract class BaseConstructor
extends java.lang.Object
  • Field Details

    • yamlClassConstructors

      protected final java.util.Map<NodeId,​Construct> yamlClassConstructors
      It maps the node kind to the the Construct implementation. When the runtime class is known then the implicit tag is ignored.
    • yamlConstructors

      protected final java.util.Map<Tag,​Construct> yamlConstructors
      It maps the (explicit or implicit) tag to the Construct implementation. It is used: 1) explicit tag - if present. 2) implicit tag - when the runtime class of the instance is unknown (the node has the Object.class)
    • yamlMultiConstructors

      protected final java.util.Map<java.lang.String,​Construct> yamlMultiConstructors
      It maps the (explicit or implicit) tag to the Construct implementation. It is used when no exact match found.
    • composer

      protected Composer composer
    • rootTag

      protected Tag rootTag
    • typeDefinitions

      protected final java.util.Map<java.lang.Class<? extends java.lang.Object>,​TypeDescription> typeDefinitions
    • typeTags

      protected final java.util.Map<Tag,​java.lang.Class<? extends java.lang.Object>> typeTags
    • loadingConfig

      protected LoaderOptions loadingConfig
  • Constructor Details

  • Method Details

    • setComposer

      public void setComposer​(Composer composer)
    • checkData

      public boolean checkData()
      Check if more documents available
      Returns:
      true when there are more YAML documents in the stream
    • getData

      public java.lang.Object getData() throws java.util.NoSuchElementException
      Construct and return the next document
      Returns:
      constructed instance
      Throws:
      java.util.NoSuchElementException
    • getSingleData

      public java.lang.Object getSingleData​(java.lang.Class<?> type)
      Ensure that the stream contains a single document and construct it
      Parameters:
      type - the class of the instance being created
      Returns:
      constructed instance
      Throws:
      ComposerException - in case there are more documents in the stream
    • constructDocument

      protected final java.lang.Object constructDocument​(Node node)
      Construct complete YAML document. Call the second step in case of recursive structures. At the end cleans all the state.
      Parameters:
      node - root Node
      Returns:
      Java instance
    • constructObject

      protected java.lang.Object constructObject​(Node node)
      Construct object from the specified Node. Return existing instance if the node is already constructed.
      Parameters:
      node - Node to be constructed
      Returns:
      Java instance
    • constructObjectNoCheck

      protected java.lang.Object constructObjectNoCheck​(Node node)
    • getConstructor

      protected Construct getConstructor​(Node node)
      Get the constructor to construct the Node. For implicit tags if the runtime class is known a dedicated Construct implementation is used. Otherwise the constructor is chosen by the tag.
      Parameters:
      node - Node to construct an instance from
      Returns:
      Construct implementation for the specified node
    • constructScalar

      protected java.lang.String constructScalar​(ScalarNode node)
    • createDefaultList

      protected java.util.List<java.lang.Object> createDefaultList​(int initSize)
    • createDefaultSet

      protected java.util.Set<java.lang.Object> createDefaultSet​(int initSize)
    • createDefaultMap

      protected java.util.Map<java.lang.Object,​java.lang.Object> createDefaultMap​(int initSize)
    • createArray

      protected java.lang.Object createArray​(java.lang.Class<?> type, int size)
    • finalizeConstruction

      protected java.lang.Object finalizeConstruction​(Node node, java.lang.Object data)
    • newInstance

      protected java.lang.Object newInstance​(Node node)
    • newInstance

      protected final java.lang.Object newInstance​(java.lang.Class<?> ancestor, Node node) throws java.lang.InstantiationException
      Throws:
      java.lang.InstantiationException
    • newInstance

      protected java.lang.Object newInstance​(java.lang.Class<?> ancestor, Node node, boolean tryDefault) throws java.lang.InstantiationException
      Throws:
      java.lang.InstantiationException
    • newSet

      protected java.util.Set<java.lang.Object> newSet​(CollectionNode<?> node)
    • newList

      protected java.util.List<java.lang.Object> newList​(SequenceNode node)
    • newMap

      protected java.util.Map<java.lang.Object,​java.lang.Object> newMap​(MappingNode node)
    • constructSequence

      protected java.util.List<? extends java.lang.Object> constructSequence​(SequenceNode node)
    • constructSet

      protected java.util.Set<? extends java.lang.Object> constructSet​(SequenceNode node)
    • constructArray

      protected java.lang.Object constructArray​(SequenceNode node)
    • constructSequenceStep2

      protected void constructSequenceStep2​(SequenceNode node, java.util.Collection<java.lang.Object> collection)
    • constructArrayStep2

      protected java.lang.Object constructArrayStep2​(SequenceNode node, java.lang.Object array)
    • constructSet

      protected java.util.Set<java.lang.Object> constructSet​(MappingNode node)
    • constructMapping

      protected java.util.Map<java.lang.Object,​java.lang.Object> constructMapping​(MappingNode node)
    • constructMapping2ndStep

      protected void constructMapping2ndStep​(MappingNode node, java.util.Map<java.lang.Object,​java.lang.Object> mapping)
    • postponeMapFilling

      protected void postponeMapFilling​(java.util.Map<java.lang.Object,​java.lang.Object> mapping, java.lang.Object key, java.lang.Object value)
    • constructSet2ndStep

      protected void constructSet2ndStep​(MappingNode node, java.util.Set<java.lang.Object> set)
    • postponeSetFilling

      protected void postponeSetFilling​(java.util.Set<java.lang.Object> set, java.lang.Object key)
    • setPropertyUtils

      public void setPropertyUtils​(PropertyUtils propertyUtils)
    • getPropertyUtils

      public final PropertyUtils getPropertyUtils()
    • addTypeDescription

      public TypeDescription addTypeDescription​(TypeDescription definition)
      Make YAML aware how to parse a custom Class. If there is no root Class assigned in constructor then the 'root' property of this definition is respected.
      Parameters:
      definition - to be added to the Constructor
      Returns:
      the previous value associated with definition, or null if there was no mapping for definition.
    • isExplicitPropertyUtils

      public final boolean isExplicitPropertyUtils()
    • isAllowDuplicateKeys

      public boolean isAllowDuplicateKeys()
    • setAllowDuplicateKeys

      public void setAllowDuplicateKeys​(boolean allowDuplicateKeys)
    • isWrappedToRootException

      public boolean isWrappedToRootException()
    • setWrappedToRootException

      public void setWrappedToRootException​(boolean wrappedToRootException)