Class LoaderOptions

java.lang.Object
org.yaml.snakeyaml.LoaderOptions

public class LoaderOptions extends Object
  • Field Details

    • allowDuplicateKeys

      private boolean allowDuplicateKeys
    • wrappedToRootException

      private boolean wrappedToRootException
    • maxAliasesForCollections

      private int maxAliasesForCollections
    • allowRecursiveKeys

      private boolean allowRecursiveKeys
    • processComments

      private boolean processComments
    • enumCaseSensitive

      private boolean enumCaseSensitive
    • nestingDepthLimit

      private int nestingDepthLimit
    • codePointLimit

      private int codePointLimit
  • Constructor Details

    • LoaderOptions

      public LoaderOptions()
  • Method Details

    • isAllowDuplicateKeys

      public final boolean isAllowDuplicateKeys()
    • setAllowDuplicateKeys

      public void setAllowDuplicateKeys(boolean allowDuplicateKeys)
      Allow/Reject duplicate map keys in the YAML file. Default is to allow. YAML 1.1 is slightly vague around duplicate entries in the YAML file. The best reference is 3.2.1.3. Nodes Comparison where it hints that a duplicate map key is an error. For future reference, YAML spec 1.2 is clear. The keys MUST be unique. 1.3. Relation to JSON
      Parameters:
      allowDuplicateKeys - false to reject duplicate mapping keys
    • isWrappedToRootException

      public final boolean isWrappedToRootException()
    • setWrappedToRootException

      public void setWrappedToRootException(boolean wrappedToRootException)
      Wrap runtime exception to YAMLException during parsing or leave them as they are Default is to leave original exceptions
      Parameters:
      wrappedToRootException - - true to convert runtime exception to YAMLException
    • getMaxAliasesForCollections

      public final int getMaxAliasesForCollections()
    • setMaxAliasesForCollections

      public void setMaxAliasesForCollections(int maxAliasesForCollections)
      Restrict the amount of aliases for collections (sequences and mappings) to avoid https://en.wikipedia.org/wiki/Billion_laughs_attack
      Parameters:
      maxAliasesForCollections - set max allowed value (50 by default)
    • setAllowRecursiveKeys

      public void setAllowRecursiveKeys(boolean allowRecursiveKeys)
      Allow recursive keys for mappings. By default, it is not allowed. This setting only prevents the case when the key is the value. If the key is only a part of the value (the value is a sequence or a mapping) then this case is not recognized and always allowed.
      Parameters:
      allowRecursiveKeys - - false to disable recursive keys
    • getAllowRecursiveKeys

      public final boolean getAllowRecursiveKeys()
    • setProcessComments

      public LoaderOptions setProcessComments(boolean processComments)
      Set the comment processing. By default, comments are ignored.
      Parameters:
      processComments - true to process; false to ignore
    • isProcessComments

      public final boolean isProcessComments()
    • isEnumCaseSensitive

      public final boolean isEnumCaseSensitive()
    • setEnumCaseSensitive

      public void setEnumCaseSensitive(boolean enumCaseSensitive)
      Disables or enables case sensitivity during construct enum constant from string value Default is false.
      Parameters:
      enumCaseSensitive - - true to set enum case sensitive, false the reverse
    • getNestingDepthLimit

      public final int getNestingDepthLimit()
    • setNestingDepthLimit

      public void setNestingDepthLimit(int nestingDepthLimit)
      Set max depth of nested collections. When the limit is exceeded an exception is thrown. Aliases/Anchors are not counted. This is to prevent a DoS attack
      Parameters:
      nestingDepthLimit - - depth to be accepted (50 by default)
    • getCodePointLimit

      public final int getCodePointLimit()
    • setCodePointLimit

      public void setCodePointLimit(int codePointLimit)
      The max amount of code points in the input YAML document. Please be aware that byte limit depends on the encoding.
      Parameters:
      codePointLimit - - the max allowed size of the YAML data