Class TypedProperties

    • Constructor Detail

      • TypedProperties

        public TypedProperties()
        Creates an empty property list with no default values.
      • TypedProperties

        public TypedProperties​(Properties defaults)
        Creates an empty property list with the specified defaults.
        Parameters:
        defaults - the defaults.
    • Method Detail

      • load

        public void load​(String fileName)
                  throws FileNotFoundException,
                         IOException
        Reads a property list (key and element pairs) from the file with the given file name.
        Parameters:
        fileName - the file name. Not null.
        Throws:
        FileNotFoundException - if the file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading.
        IOException - if an error occurred when reading from the input stream created from the file with the given name.
      • load

        public void load​(Class clazz,
                         String resourceName)
                  throws IOException
        Reads a property list (key and element pairs) from the given file which is interpreted as a resource of the given class. The difference between a normal file and a resource file is the way in which the file is located: with a normal file, the filename is taken literally to load the file from the file system, whereas with a resource file, the given name is used to ask the class loader of the given class to load the file (see java.lang.Class.getResourceAsStream() and java.lang.ClassLoader.getSystemResourceAsStream()).
        Parameters:
        clazz - the class with which the resource identified by resourceName is taken to be associated with (java.lang.Class.getResourceAsStream() on this Class object is used to load the resource). If clazz is null, the resource is considered to be a system resource, and java.lang.ClassLoader.getSystemResourceAsStream() is used to load the resource.
        resourceName - the name of the resource from which to load the properties. It is a precondition that the resource with this name exists (regardless whether it is interpreted as a system resource or a class resource), otherwise an IllegalArgumentException is thrown.
        Throws:
        IOException - if an error occurred when reading from the input stream created from the given resource.
        See Also:
        Class, ClassLoader
      • getPropertyAsInteger

        public Integer getPropertyAsInteger​(String key)
                                     throws NumberFormatException
        Searches for the property with the specified key in this property list. If the key is not found in this property list, the default property list, and its defaults, recursively, are then checked. The method returns null if the property is not found. If the property is found its value is parsed as an integer and returned. If parsing the value fails, a NumberFormatException is thrown.
        Parameters:
        key - the property key.
        Returns:
        the integer value of the property with the given key or null if the given key is not associated with a property.
        Throws:
        NumberFormatException - if the property associated with the given key does not have an integer value.
      • getPropertyAsLong

        public Long getPropertyAsLong​(String key)
                               throws NumberFormatException
        Searches for the property with the specified key in this property list. If the key is not found in this property list, the default property list, and its defaults, recursively, are then checked. The method returns null if the property is not found. If the property is found its value is parsed as a long and returned. If parsing the value fails, a NumberFormatException is thrown.
        Parameters:
        key - the property key.
        Returns:
        the long value of the property with the given key or null if the given key is not associated with a property.
        Throws:
        NumberFormatException - if the property associated with the given key does not have an integer value.
      • getPropertyAsDouble

        public Double getPropertyAsDouble​(String key)
                                   throws NumberFormatException
        Searches for the property with the specified key in this property list. If the key is not found in this property list, the default property list, and its defaults, recursively, are then checked. The method returns null if the property is not found. If the property is found its value is parsed as a double and returned. If parsing the value fails, a NumberFormatException is thrown.
        Parameters:
        key - the property key.
        Returns:
        the double value of the property with the given key or null if the given key is not associated with a property.
        Throws:
        NumberFormatException - if the property associated with the given key does not have an integer value.
      • getPropertyAsBoolean

        public Boolean getPropertyAsBoolean​(String key)
                                     throws RuntimeException
        Searches for the property with the specified key in this property list. If the key is not found in this property list, the default property list, and its defaults, recursively, are then checked. The method returns null if the property is not found. If the property is found its value is parsed as an boolean and returned. If parsing the value fails, a RuntimeException is thrown.

        If the property value is equal, ignoring case, to the string "true" or "yes" then the boolean value returned from this method is true. If the property value is equal, ignoring case, to the string "false" or "no" then the boolean value returned from this method is false.

        Parameters:
        key - the property key.
        Returns:
        the boolean value of the property with the given key or null if the given key is not associated with a property.
        Throws:
        RuntimeException - if the property associated with the given key does not have an integer value.
      • getPropertyAsStringList

        public List getPropertyAsStringList​(String key,
                                            String delims)
        Searches for the property with the specified key in this property list. If the key is not found in this property list, the default property list, and its defaults, recursively, are then checked. The method returns null if the property is not found. If the property is found its value is parsed as a list of strings and returned as a List object that contains only String objects. Parsing the property value as a list of strings can not fail and so this method does not throw an exception.

        The property value is interpreted as String objects (tokens) separated by one or more (consecutive) separator characters taken from the delims string. Any of these characters separates the tokens and can hence not be part of any token! The tokens identified in this way are put into a List in the order in which they appear in the property value. White space at the beginning and end of each token are removed before storing the token as an element of the list (this includes white space at the beginning and end of the complete property value)! Empty strings are also never added to the list, i.e. if after removal of white space from a token a token is the empty string, it is not stored in the list! All this results in a very natural conversion of the property value into a list of strings: only "real" (non-white-space, non-white-space-bounded, non-delimiter-containing) sub-strings from the property value are put as string elements into the list.

        Parameters:
        key - the property key.
        delims - the string of allowed delimiter characters (not null and not empty).
        Returns:
        the List of strings for the property with the given key or null if the given key is not associated with a property. An empty list is returned if a property with the given key exists but its value is empty or consists only of white space.
      • getPropertyAsStringList

        public List getPropertyAsStringList​(String key)
        just like getPropertyAsStringList(String key, String delims) but uses ',' (comma), ';' (semicolon) and '\t' (tab) as the possible delimiters.