Class StringQuotingChecker

  • All Implemented Interfaces:
    java.io.Serializable
    Direct Known Subclasses:
    StringQuotingChecker.Default

    public abstract class StringQuotingChecker
    extends java.lang.Object
    implements java.io.Serializable
    Helper class that defines API used by YAMLGenerator to check whether property names and String values need to be quoted or not. Also contains default logic implementation; may be sub-classed to provide alternate implementation.
    Since:
    2.12
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.util.Set<java.lang.String> RESERVED_KEYWORDS
      As per YAML null and boolean type specs, better retain quoting for some keys (property names) and values.
      private static long serialVersionUID  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected boolean _isReservedKeyword​(int firstChar, java.lang.String name)  
      protected boolean _looksLikeYAMLNumber​(int firstChar, java.lang.String name)  
      protected boolean followedOnlyByBlank​(java.lang.String inputStr, int offset)  
      protected boolean isBlank​(char value)  
      protected boolean isReservedKeyword​(java.lang.String value)
      Helper method that sub-classes may use to see if given String value is one of: YAML 1.1 keyword representing boolean YAML 1.1 keyword representing null value empty String (length 0) and returns true if so.
      protected boolean looksLikeYAMLNumber​(java.lang.String name)
      Helper method that sub-classes may use to see if given String value looks like a YAML 1.1 numeric value and would likely be considered a number when parsing unless quoting is used.
      protected boolean nameHasQuotableChar​(java.lang.String inputStr)
      Looks like we may get names with "funny characters" so.
      abstract boolean needToQuoteName​(java.lang.String name)
      Method called by YAMLGenerator to check whether given property name should be quoted: usually to prevent it from being read as non-String key (boolean or number)
      abstract boolean needToQuoteValue​(java.lang.String value)
      Method called by YAMLGenerator to check whether given String value should be quoted: usually to prevent it from being value of different type (boolean or number).
      protected boolean precededOnlyByBlank​(java.lang.String inputStr, int offset)  
      protected boolean valueHasQuotableChar​(java.lang.String inputStr)
      As per YAML Plain Styleunquoted strings are restricted to a reduced charset and must be quoted in case they contain one of the following characters or character combinations.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • RESERVED_KEYWORDS

        private static final java.util.Set<java.lang.String> RESERVED_KEYWORDS
        As per YAML null and boolean type specs, better retain quoting for some keys (property names) and values.
    • Constructor Detail

      • StringQuotingChecker

        public StringQuotingChecker()
    • Method Detail

      • needToQuoteName

        public abstract boolean needToQuoteName​(java.lang.String name)
        Method called by YAMLGenerator to check whether given property name should be quoted: usually to prevent it from being read as non-String key (boolean or number)
      • needToQuoteValue

        public abstract boolean needToQuoteValue​(java.lang.String value)
        Method called by YAMLGenerator to check whether given String value should be quoted: usually to prevent it from being value of different type (boolean or number).
      • isReservedKeyword

        protected boolean isReservedKeyword​(java.lang.String value)
        Helper method that sub-classes may use to see if given String value is one of:
        • YAML 1.1 keyword representing boolean
        • YAML 1.1 keyword representing null value
        • empty String (length 0)
        • and returns true if so.
        Parameters:
        value - String to check
        Returns:
        true if given value is a Boolean or Null representation (as per YAML 1.1 specification) or empty String
      • _isReservedKeyword

        protected boolean _isReservedKeyword​(int firstChar,
                                             java.lang.String name)
      • looksLikeYAMLNumber

        protected boolean looksLikeYAMLNumber​(java.lang.String name)
        Helper method that sub-classes may use to see if given String value looks like a YAML 1.1 numeric value and would likely be considered a number when parsing unless quoting is used.
      • _looksLikeYAMLNumber

        protected boolean _looksLikeYAMLNumber​(int firstChar,
                                               java.lang.String name)
      • valueHasQuotableChar

        protected boolean valueHasQuotableChar​(java.lang.String inputStr)
        As per YAML Plain Styleunquoted strings are restricted to a reduced charset and must be quoted in case they contain one of the following characters or character combinations.
      • precededOnlyByBlank

        protected boolean precededOnlyByBlank​(java.lang.String inputStr,
                                              int offset)
      • followedOnlyByBlank

        protected boolean followedOnlyByBlank​(java.lang.String inputStr,
                                              int offset)
      • isBlank

        protected boolean isBlank​(char value)
      • nameHasQuotableChar

        protected boolean nameHasQuotableChar​(java.lang.String inputStr)
        Looks like we may get names with "funny characters" so.
        Since:
        2.13.2