Class PropertyValues


  • public class PropertyValues
    extends java.lang.Object
    A utility for converting objects into strings and strings into objects for storage in logging configurations.
    Author:
    James R. Perkins
    • Constructor Summary

      Constructors 
      Constructor Description
      PropertyValues()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void escapeKey​(java.lang.StringBuilder sb, java.lang.String key)
      Escapes a maps key value for serialization to a string.
      static void escapeValue​(java.lang.StringBuilder sb, java.lang.String value)
      Escapes a maps value for serialization to a string.
      static <K extends java.lang.Enum<K>>
      java.lang.String
      mapToString​(java.util.EnumMap<K,​java.lang.String> map)
      Converts a map into a string that can be parsed by stringToMap(String).
      static <K> java.lang.String mapToString​(java.util.Map<K,​java.lang.String> map)
      Converts a map into a string that can be parsed by stringToMap(String).
      static <E extends java.lang.Enum<E>>
      java.util.EnumMap<E,​java.lang.String>
      stringToEnumMap​(java.lang.Class<E> enumType, java.lang.String s)
      Parses a string of key/value pairs into an enum map.
      static <E extends java.lang.Enum<E>>
      java.util.EnumMap<E,​java.lang.String>
      stringToEnumMap​(java.lang.Class<E> enumType, java.lang.String s, boolean convertKeyCase)
      Parses a string of key/value pairs into an enum map.
      static java.util.Map<java.lang.String,​java.lang.String> stringToMap​(java.lang.String s)
      Parses a string of key/value pairs into a map.
      • Methods inherited from class java.lang.Object

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

      • PropertyValues

        public PropertyValues()
    • Method Detail

      • stringToMap

        public static java.util.Map<java.lang.String,​java.lang.String> stringToMap​(java.lang.String s)
        Parses a string of key/value pairs into a map.

        The key/value pairs are separated by a comma (,). The key and value are separated by an equals (=).

        If a key contains a \ or an = it must be escaped by a preceding \. Example: key\==value,\\key=value.

        If a value contains a \ or a , it must be escaped by a preceding \. Example: key=part1\,part2,key2=value\\other.

        If the value for a key is empty there is no trailing = after a key the will be null.

        Parameters:
        s - the string to parse
        Returns:
        a map of the key value pairs or an empty map if the string is null or empty
      • stringToEnumMap

        public static <E extends java.lang.Enum<E>> java.util.EnumMap<E,​java.lang.String> stringToEnumMap​(java.lang.Class<E> enumType,
                                                                                                                java.lang.String s)
        Parses a string of key/value pairs into an enum map.

        The key/value pairs are separated by a comma (,). The key and value are separated by an equals (=). The key must be a valid enum value. For convenience the case of each character will be converted to uppercase and any dashes (-) will be converted to underscores (_).

        If a value contains a \ or a , it must be escaped by a preceding \. Example: key=part1\,part2,key2=value\\other.

        If the value for a key is empty there is no trailing = after a key the value will be null.

        Parameters:
        enumType - the enum type
        s - the string to parse
        Returns:
        a map of the key value pairs or an empty map if the string is null or empty
      • stringToEnumMap

        public static <E extends java.lang.Enum<E>> java.util.EnumMap<E,​java.lang.String> stringToEnumMap​(java.lang.Class<E> enumType,
                                                                                                                java.lang.String s,
                                                                                                                boolean convertKeyCase)
        Parses a string of key/value pairs into an enum map.

        The key/value pairs are separated by a comma (,). The key and value are separated by an equals (=). The key must be a valid enum value. For convenience any dashes (-) will be converted to underscores (_). If convertKeyCase is set to true the case will also be converted to uppercase for each key character.

        If a value contains a \ or a , it must be escaped by a preceding \. Example: key=part1\,part2,key2=value\\other.

        If the value for a key is empty there is no trailing = after a key the value will be null.

        Parameters:
        enumType - the enum type
        s - the string to parse
        convertKeyCase - true if the each character from the key should be converted to uppercase, otherwise false to keep the case as is
        Returns:
        a map of the key value pairs or an empty map if the string is null or empty
      • mapToString

        public static <K> java.lang.String mapToString​(java.util.Map<K,​java.lang.String> map)
        Converts a map into a string that can be parsed by stringToMap(String). Note that if this is an EnumMap the mapToString(EnumMap) will be used and the key will be the enum name.
        Type Parameters:
        K - the type of the key
        Parameters:
        map - the map to convert to a string
        Returns:
        a string value for that map that can be used for configuration properties
        See Also:
        escapeKey(StringBuilder, String), escapeValue(StringBuilder, String)
      • mapToString

        public static <K extends java.lang.Enum<K>> java.lang.String mapToString​(java.util.EnumMap<K,​java.lang.String> map)
        Converts a map into a string that can be parsed by stringToMap(String). The kwy will be the enum name.
        Type Parameters:
        K - the type of the key
        Parameters:
        map - the map to convert to a string
        Returns:
        a string value for that map that can be used for configuration properties
        See Also:
        escapeKey(StringBuilder, String), escapeValue(StringBuilder, String)
      • escapeKey

        public static void escapeKey​(java.lang.StringBuilder sb,
                                     java.lang.String key)
        Escapes a maps key value for serialization to a string. If the key contains a \ or an = it will be escaped by a preceding \. Example: key\= or \\key.
        Parameters:
        sb - the string builder to append the escaped key to
        key - the key
      • escapeValue

        public static void escapeValue​(java.lang.StringBuilder sb,
                                       java.lang.String value)
        Escapes a maps value for serialization to a string. If a value contains a \ or a , it will be escaped by a preceding \. Example: part1\,part2 or value\\other.
        Parameters:
        sb - the string builder to append the escaped value to
        value - the value