Class PropertyBag


  • public final class PropertyBag
    extends Object
    Encapsulates a read-only bag of properties, which can be accessed in a type-safe manner.

    The simplest way to obtain a required (i.e., the property must be in the bag, otherwise an exception is thrown) property value is getProperty(String, Class). If the property is not a required one, the getProperty(String, Class, Object) method can be used, which also takes a default value which is returned when the property is not present in the bag.

    • Method Detail

      • getProperty

        public <T> T getProperty​(String name,
                                 Class<T> type)
        Gets the value of a required property in a type-safe manner. If no property exists with the given name, IllegalArgumentException is thrown.
        Type Parameters:
        T - the type of the property.
        Parameters:
        name - the name of the property.
        type - the Class representing the type of the property.
        Returns:
        the value of the property in bag; null if the value of the property was null.
        Throws:
        IllegalArgumentException - if no property with the given name name exists in the bag.
        ClassCastException - if the property exists, but is not of the specified type.
      • getProperty

        public <T> T getProperty​(String name,
                                 Class<T> type,
                                 T def)
        Gets a property value, returning a default value when no property with the specified name exists in the bag.
        Type Parameters:
        T - the type of the property.
        Parameters:
        name - the name of the property.
        type - the Class representing the type of the property.
        def - the default value returned when no property with the specified name exists in the bag.
        Returns:
        the value of the property in bag or the default value; null if the value of the property was null.
        Throws:
        ClassCastException - if the property exists, but is not of the specified type.
      • getStringProperty

        public String getStringProperty​(String name)
        Gets a required property value known to be of string type. The method expects that the value is an instance of String. It does not attempt to call Object.toString() on the value.
        Parameters:
        name - the name of the property.
        Returns:
        the value of the property in bag; null if the value of the property was null.
        Throws:
        IllegalArgumentException - if no property with the given name exists in the bag.
        ClassCastException - if the property exists, but is not an instance of String.