Class PropertyValues


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

      • PropertyValues

        public PropertyValues()
    • Method Detail

      • stringToMap

        public static Map<String,​String> stringToMap​(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 Enum<E>> EnumMap<E,​String> stringToEnumMap​(Class<E> enumType,
                                                                                  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 Enum<E>> EnumMap<E,​String> stringToEnumMap​(Class<E> enumType,
                                                                                  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
      • escapeKey

        public static void escapeKey​(StringBuilder sb,
                                     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​(StringBuilder sb,
                                       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