sunlabs.brazil.properties
public class PropertiesList extends Properties
PropertiesList instance is intended to be an element of
a doubly linked list consisting of other PropertiesList
instances. Each PropertiesList instance "wraps" a
Dictionary object. A PropertiesList is a
subclass of Properties and therefore provides the same
API, including the methods and fields of Dictionary and
Hashtable. The PropertiesList class
overrides all methods of the Properties API and delegates
the method evaluation to the wrapped Properties object.
The linked list of PropertiesList objects is constructed
by Request for each incoming request. That is, there is
a unique PropertiesList linked list for each request.
The head of the initial list constructed by request is
Request.props and the tail of the two element list is
Request.serverProps. The former wraps an empty
Properties object, while the latter wraps
Server.props. Other PropertiesList objects
can be added, and removed, from this initial list as required.
Given a reference to a PropertiesList object on the
linked list (e.g. request.props), one typically "looks
up" the value associated with a name using the
getProperty method, which delegates to the wrapped
Properties.getProperty method. If the result is
null, meaning the name/value pair is not stored in the
wrapped Properties object, the request is "forwarded" to
the next object on the linked list, and so on until either the
name/value pair is found (and the value is returned) or the end of the
list is reached (and null is returned).
It may be desirable for the name/value lookup to be delayed until
after the lookup request has been passed on to subsequent objects on
the list. This can be done by using the two parameter constructor and
setting the second, boolean, parameter to true. Then the
getProperty request is forwarded to the next object in
the list rather than delegated to the wrapped Properties
object. If the result of the forwarded request is null,
the request is then passed to the wrapped Properties
object and it's result is returned.
Version: 2.8
See Also: java.util.Dictionary java.util.Hashtable java.util.Properties
| Field Summary | |
|---|---|
| static boolean | debug
Set true to turn on debug output. |
| Constructor Summary | |
|---|---|
| PropertiesList()
Constructs a new PropertiesList object that wraps
an empty new Properties object. | |
| PropertiesList(Dictionary dict)
Constructs a new PropertiesList object that wraps
the input Dictionary.
| |
| PropertiesList(Dictionary dict, boolean searchNextFirst)
Constructs a new PropertiesList object that wraps
the input Dictionary. | |
| Method Summary | |
|---|---|
| void | addAfter(PropertiesList cursor)
Adds this PropertiesList object into
a linked list following the object referenced by
the cursor parameter. |
| void | addBefore(PropertiesList cursor)
Adds this PropertiesList object into
a linked list preceding the object referenced by
the cursor parameter. |
| void | clear()
Invokes the same method on the wrapped Hashtable object. |
| Object | clone()
Invokes the same method on the wrapped Hashtable object. |
| boolean | contains(Object value)
Invokes the same method on the wrapped Hashtable object. |
| boolean | containsKey(Object key)
Invokes the same method on the wrapped Hashtable object. |
| void | dump(boolean full, String msg)
Starting with this object, print the contents of this and
succeeding objects that are on the same list as this object
is.
|
| Enumeration | elements()
Invokes the same method on the wrapped Dictionary object. |
| Set | entrySet()
Invokes the same method on the wrapped Hashtable object. |
| boolean | equals(Object o)
Invokes the same method on the wrapped Hashtable object. |
| Object | get(Object key)
Invokes the same method on the wrapped Dictionary object. |
| PropertiesList | getHead()
Returns the PropertiesList object that is the first object
on the list of which this object is a member. |
| PropertiesList | getNext()
Returns the PropertiesList object that succedes this
object on the list of which this object is a member.
|
| PropertiesList | getPrior()
Returns the PropertiesList object that precedes this
object on the list of which this object is a member.
|
| String | getProperty(String key)
Looks up key in the wrapped object. |
| String | getProperty(String key, String defaultValue)
Uses getProperty(String) to look up the value associated
with the key. |
| Dictionary | getWrapped()
Returns the Dictionary object wrapped by this
PropertiesList. |
| int | hashCode()
Invokes the same method on the wrapped Hashtable object. |
| boolean | isEmpty()
Invokes the same method on the wrapped Dictionary object. |
| boolean | isTransient()
Sub-classes of PropertiesList can override this to mark
themselves "transient", in which case addAfter
will skip this list. |
| Enumeration | keys()
Invokes the same method on the wrapped Dictionary object. |
| Set | keySet()
Invokes the same method on the wrapped Hashtable object. |
| void | list(PrintStream out)
Invokes the same method on the wrapped Properties object. |
| void | list(PrintWriter out)
Invokes the same method on the wrapped Properties object. |
| void | load(InputStream in)
Invokes the same method on the wrapped Properties object. |
| Enumeration | propertyNames()
Invokes the same method on the wrapped Properties object. |
| Enumeration | propertyNames(String pattern)
Returns an Enumeration of property names that
match a glob pattern.
|
| Object | put(Object key, Object value)
Invokes the same method on the wrapped Dictionary object. |
| void | putAll(Map t)
Invokes the same method on the wrapped Hashtable object. |
| boolean | remove()
Remove this object from the list in which it's a member.
|
| Object | remove(Object key)
Invokes the same method on the wrapped Dictionary object. |
| boolean | removeProperty(String key, boolean all)
Remove a property from a a chain of properties lists.
if "all" is specified, then remove all the keys and values from
all property lists in the chain instead of just the first one found. |
| boolean | removeProperty(String key)
Remove the key and its associated value from the first properties
object in the chain that contains this key. |
| void | save(OutputStream out, String header)
Invokes the same method on the wrapped Properties object. |
| Object | setProperty(String key, String value)
Invokes the same method on the wrapped Properties object
if it exists. |
| int | size()
Invokes the same method on the wrapped Dictionary object. |
| void | store(OutputStream out, String header)
Invokes the same method on the wrapped Properties object. |
| String | toString()
Returns a String containing the
System.identityHashCodes of this object, the wrapped
object, and the preceding and succeding objects on the list of
which this object is a member. |
| Collection | values()
Invokes the same method on the wrapped Hashtable object. |
| PropertiesList | wraps(Dictionary d)
Find the first PropertiesList object on the list of which
this object is a member that wraps the Dictionary
parameter.
|
true to turn on debug output. It's alot
of output and probably of use only to the author. Note,
if server.props contains the name debugProps
this variable will be set true by Server.PropertiesList object that wraps
an empty new Properties object.PropertiesList object that wraps
the input Dictionary.
Parameters: dict The Dictionary object wrapped
by this PropertiesList.
PropertiesList object that wraps
the input Dictionary. If the boolean parameter
is set true, the wrapped Dictionary
is searched after subsequent PropertiesList
objects in the linked list are searched, and only if the
result of that search was null.
Parameters: dict The Dictionary object wrapped
by this PropertiesList.
searchNextFirst If true all the following
objects in the list are searched before
this one.
PropertiesList object into
a linked list following the object referenced by
the cursor parameter. The result is
a list that could look like:
request.props -> cursor -> this -> serverProps
Any transient properties lists's are skipped over before this one is inserted into the list
Parameters: cursor The list object that will precede this object.
PropertiesList object into
a linked list preceding the object referenced by
the cursor parameter. The result is
a list that could look like:
request.props -> this -> cursor -> serverProps
Parameters: cursor The list object that will succede this object.
Hashtable object.Hashtable object.Hashtable object.Hashtable object.Parameters: full If true also print the contents of the
wrapped Dictionary object.
msg If not null, add this message to the
header line.
Dictionary object.Hashtable object.Hashtable object.Dictionary object.PropertiesList object that is the first object
on the list of which this object is a member. Note that the first
object may be this object.
Returns: A PropertiesList object.
PropertiesList object that succedes this
object on the list of which this object is a member.
Returns: A PropertiesList object or
null.
PropertiesList object that precedes this
object on the list of which this object is a member.
Returns: A PropertiesList object or
null.
key in the wrapped object. If the result is
null
the request is forwarded to the succeeding object in the list
of which this object is a member. If the search order was changed
by constructing this object with the two parameter constructor, the
request is first forwarded and then, if the result of the
forwarded request is null, the key is looked
up in the wrapped Properties object.
Parameters: key The key whose value is sought.
Returns: The value or null.
getProperty(String) to look up the value associated
with the key. If the result is null, returns the default
value.
Parameters: key The key whose value is sought. defaultValue The default value.
Returns: The value or null.
Dictionary object wrapped by this
PropertiesList.Hashtable object.Dictionary object.addAfter
will skip this list.Dictionary object.Hashtable object.Properties object.Properties object.Properties object.Properties object.Enumeration of property names that
match a glob pattern.
Parameters: pattern The glob pattern to match.
Returns: An Enumeration containing
matching property names, if any.
Dictionary object.Hashtable object.Returns: true.
Dictionary object.Parameters: key The key whose value is to be removed all remove all matching keys.
Returns: true, if at least one key/value pair was removed.
Returns: true, if the key was removed.
Properties object.Properties object
if it exists. Otherwise invokes put on the wrapped
Dictionary object.Dictionary object.Properties object.String containing the
System.identityHashCodes of this object, the wrapped
object, and the preceding and succeding objects on the list of
which this object is a member. Additionally, if debug
is true, the result of invoking toString
on the wrapped Dictionary is appended.
Returns: String representation of this object.
Hashtable object.PropertiesList object on the list of which
this object is a member that wraps the Dictionary
parameter.
Parameters: d The Dictionary that is compared with the
wrapped Dictionary's for a match.
Returns: PropertiesList object that wraps the
input parameter, otherwise null.