Class TypedProperties
- java.lang.Object
-
- java.util.Dictionary<K,V>
-
- java.util.Hashtable<Object,Object>
-
- java.util.Properties
-
- org.biojava.utils.TypedProperties
-
- All Implemented Interfaces:
Serializable
,Cloneable
,Map<Object,Object>
public class TypedProperties extends Properties
a sub-class of java.util.Properties that provides the same constructors, adds two convenient load methods to load the properties from files and, most importantly, adds getPropertyAsXXX() methods to get a property as an object of type XXX.- Author:
- Gerald Loeffler for the IMP
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_DELIMITERS
the default string of delimiter characters used by getAsStringList()-
Fields inherited from class java.util.Properties
defaults
-
-
Constructor Summary
Constructors Constructor Description TypedProperties()
Creates an empty property list with no default values.TypedProperties(Properties defaults)
Creates an empty property list with the specified defaults.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
clone()
boolean
equals(Object o)
Boolean
getPropertyAsBoolean(String key)
Searches for the property with the specified key in this property list.Double
getPropertyAsDouble(String key)
Searches for the property with the specified key in this property list.Integer
getPropertyAsInteger(String key)
Searches for the property with the specified key in this property list.Long
getPropertyAsLong(String key)
Searches for the property with the specified key in this property list.List
getPropertyAsStringList(String key)
just like getPropertyAsStringList(String key, String delims) but uses ',' (comma), ';' (semicolon) and '\t' (tab) as the possible delimiters.List
getPropertyAsStringList(String key, String delims)
Searches for the property with the specified key in this property list.int
hashCode()
void
load(Class clazz, String resourceName)
Reads a property list (key and element pairs) from the given file which is interpreted as a resource of the given class.void
load(String fileName)
Reads a property list (key and element pairs) from the file with the given file name.String
toString()
-
Methods inherited from class java.util.Properties
clear, compute, computeIfAbsent, computeIfPresent, contains, containsKey, containsValue, elements, entrySet, forEach, get, getOrDefault, getProperty, getProperty, isEmpty, keys, keySet, list, list, load, load, loadFromXML, merge, propertyNames, put, putAll, putIfAbsent, rehash, remove, remove, replace, replace, replaceAll, save, setProperty, size, store, store, storeToXML, storeToXML, storeToXML, stringPropertyNames, values
-
-
-
-
Field Detail
-
DEFAULT_DELIMITERS
public static final String DEFAULT_DELIMITERS
the default string of delimiter characters used by getAsStringList()- See Also:
- Constant Field Values
-
-
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.
-
toString
public String toString()
- Overrides:
toString
in classProperties
-
hashCode
public int hashCode()
-
clone
public Object clone()
- Overrides:
clone
in classProperties
-
-