public class Parameters
extends java.lang.Object
implements java.io.Serializable
Parameters
class represents a set of key-value
pairs.
The Parameters
object provides a mechanism to obtain
values based on a String
name. There are convenience
methods that allow you to use defaults if the value does not exist,
as well as obtain the value in any of the same formats that are in
the Configuration
interface.
While there are similarities between the Parameters
object and the java.util.Properties object, there are some
important semantic differences. First, Parameters
are
read-only. Second, Parameters
are easily
derived from Configuration
objects. Lastly, the
Parameters
object is derived from XML fragments that
look like this:
<parameter name="param-name" value="param-value" />
Note: this class is not thread safe by default. If you require thread safety please synchronize write access to this class to prevent potential data corruption.
Modifier and Type | Field and Description |
---|---|
static Parameters |
EMPTY_PARAMETERS
Empty Parameters object
|
Constructor and Description |
---|
Parameters() |
Modifier and Type | Method and Description |
---|---|
protected void |
checkWriteable()
Checks is this
Parameters object is writeable. |
static Parameters |
fromConfiguration(Configuration configuration)
Create a
Parameters object from a Configuration
object. |
static Parameters |
fromConfiguration(Configuration configuration,
java.lang.String elementName)
Create a
Parameters object from a Configuration
object using the supplied element name. |
static Parameters |
fromProperties(java.util.Properties properties)
Create a
Parameters object from a Properties
object. |
java.lang.String[] |
getNames()
Retrieve an array of all parameter names.
|
java.lang.String |
getParameter(java.lang.String name)
Retrieve the
String value of the specified parameter. |
java.lang.String |
getParameter(java.lang.String name,
java.lang.String defaultValue)
Retrieve the
String value of the specified parameter. |
boolean |
getParameterAsBoolean(java.lang.String name)
Retrieve the
boolean value of the specified parameter. |
boolean |
getParameterAsBoolean(java.lang.String name,
boolean defaultValue)
Retrieve the
boolean value of the specified parameter. |
float |
getParameterAsFloat(java.lang.String name)
Retrieve the
float value of the specified parameter. |
float |
getParameterAsFloat(java.lang.String name,
float defaultValue)
Retrieve the
float value of the specified parameter. |
int |
getParameterAsInteger(java.lang.String name)
Retrieve the
int value of the specified parameter. |
int |
getParameterAsInteger(java.lang.String name,
int defaultValue)
Retrieve the
int value of the specified parameter. |
long |
getParameterAsLong(java.lang.String name)
Retrieve the
long value of the specified parameter. |
long |
getParameterAsLong(java.lang.String name,
long defaultValue)
Retrieve the
long value of the specified parameter. |
java.util.Iterator |
getParameterNames()
Deprecated.
Use getNames() instead
|
boolean |
isParameter(java.lang.String name)
Test if the specified parameter can be retrieved.
|
void |
makeReadOnly()
Make this Parameters read-only so that it will throw a
IllegalStateException if someone tries to
modify it. |
Parameters |
merge(Parameters other)
Merge parameters from another
Parameters instance
into this. |
void |
removeParameter(java.lang.String name)
Remove a parameter from the parameters object
|
java.lang.String |
setParameter(java.lang.String name,
java.lang.String value)
Set the
String value of a specified parameter. |
static java.util.Properties |
toProperties(Parameters params)
Creates a
java.util.Properties object from an Avalon
Parameters object. |
public static final Parameters EMPTY_PARAMETERS
public java.lang.String setParameter(java.lang.String name, java.lang.String value) throws java.lang.IllegalStateException
String
value of a specified parameter.
If the specified value is null the parameter is removed.name
- a String
valuevalue
- a String
valuejava.lang.IllegalStateException
- if the Parameters object is read-onlypublic void removeParameter(java.lang.String name)
name
- a String
valuepublic java.util.Iterator getParameterNames()
Iterator
view of all parameter names.public java.lang.String[] getNames()
public boolean isParameter(java.lang.String name)
name
- the parameter namepublic java.lang.String getParameter(java.lang.String name) throws ParameterException
String
value of the specified parameter.
If the specified parameter cannot be found, an exception is thrown.name
- the name of parameterParameterException
- if the specified parameter cannot be foundpublic java.lang.String getParameter(java.lang.String name, java.lang.String defaultValue)
String
value of the specified parameter.
If the specified parameter cannot be found, defaultValue
is returned.name
- the name of parameterdefaultValue
- the default value, returned if parameter does not exist
or parameter's name is nullpublic int getParameterAsInteger(java.lang.String name) throws ParameterException
int
value of the specified parameter.
If the specified parameter cannot be found, an exception is thrown.
Hexadecimal numbers begin with 0x, Octal numbers begin with 0o and binary
numbers begin with 0b, all other values are assumed to be decimal.name
- the name of parameterParameterException
- if the specified parameter cannot be found
or is not an Integer valuepublic int getParameterAsInteger(java.lang.String name, int defaultValue)
int
value of the specified parameter.
If the specified parameter cannot be found, defaultValue
is returned.
Hexadecimal numbers begin with 0x, Octal numbers begin with 0o and binary
numbers begin with 0b, all other values are assumed to be decimal.name
- the name of parameterdefaultValue
- value returned if parameter does not exist or is of wrong typepublic long getParameterAsLong(java.lang.String name) throws ParameterException
long
value of the specified parameter.
If the specified parameter cannot be found, an exception is thrown.
Hexadecimal numbers begin with 0x, Octal numbers begin with 0o and binary
numbers begin with 0b, all other values are assumed to be decimal.name
- the name of parameterParameterException
- if the specified parameter cannot be found
or is not a Long value.public long getParameterAsLong(java.lang.String name, long defaultValue)
long
value of the specified parameter.
If the specified parameter cannot be found, defaultValue
is returned.
Hexadecimal numbers begin with 0x, Octal numbers begin with 0o and binary
numbers begin with 0b, all other values are assumed to be decimal.name
- the name of parameterdefaultValue
- value returned if parameter does not exist or is of wrong typepublic float getParameterAsFloat(java.lang.String name) throws ParameterException
float
value of the specified parameter.
If the specified parameter cannot be found, an exception is thrown.name
- the parameter nameParameterException
- if the specified parameter cannot be found
or is not a Float valuepublic float getParameterAsFloat(java.lang.String name, float defaultValue)
float
value of the specified parameter.
If the specified parameter cannot be found, defaultValue
is returned.name
- the parameter namedefaultValue
- the default value if parameter does not exist or is of wrong typepublic boolean getParameterAsBoolean(java.lang.String name) throws ParameterException
boolean
value of the specified parameter.
If the specified parameter cannot be found, an exception is thrown.name
- the parameter nameParameterException
- if an error occursParameterException
public boolean getParameterAsBoolean(java.lang.String name, boolean defaultValue)
boolean
value of the specified parameter.
If the specified parameter cannot be found, defaultValue
is returned.name
- the parameter namedefaultValue
- the default value if parameter does not exist or is of wrong typepublic Parameters merge(Parameters other)
Parameters
instance
into this.other
- the other ParametersParameters
instance.public void makeReadOnly()
IllegalStateException
if someone tries to
modify it.protected final void checkWriteable() throws java.lang.IllegalStateException
Parameters
object is writeable.java.lang.IllegalStateException
- if this Parameters
object is read-onlypublic static Parameters fromConfiguration(Configuration configuration) throws ConfigurationException
Parameters
object from a Configuration
object. This acts exactly like the following method call:
Parameters.fromConfiguration(configuration, "parameter");
configuration
- the ConfigurationParameters
instance.ConfigurationException
- if an error occurspublic static Parameters fromConfiguration(Configuration configuration, java.lang.String elementName) throws ConfigurationException
Parameters
object from a Configuration
object using the supplied element name.configuration
- the ConfigurationelementName
- the element name for the parametersParameters
instance.ConfigurationException
- if an error occurspublic static Parameters fromProperties(java.util.Properties properties)
Parameters
object from a Properties
object.properties
- the PropertiesParameters
instance.public static java.util.Properties toProperties(Parameters params)
java.util.Properties
object from an Avalon
Parameters object.params
- a Parameters
instanceProperties
instance