| 
 |   | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object
  |
  +--java.util.Dictionary
        |
        +--java.util.Hashtable
              |
              +--java.util.Properties
                    |
                    +--sunlabs.brazil.properties.PropertiesList
A 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.
Dictionary, 
Hashtable, 
Properties, 
Serialized Form| Field Summary | |
| static boolean | debugSet trueto turn on debug output. | 
| Constructor Summary | |
| PropertiesList()Constructs a new PropertiesListobject that wraps
 an empty newPropertiesobject. | |
| PropertiesList(Dictionary dict)Constructs a new PropertiesListobject that wraps
 the inputDictionary. | |
| PropertiesList(Dictionary dict,
               boolean searchNextFirst)Constructs a new PropertiesListobject that wraps
 the inputDictionary. | |
| Method Summary | |
|  void | addAfter(PropertiesList cursor)Adds this PropertiesListobject into
 a linked list following the object referenced by
 thecursorparameter. | 
|  void | addBefore(PropertiesList cursor)Adds this PropertiesListobject into
 a linked list preceding the object referenced by
 thecursorparameter. | 
|  void | clear()Invokes the same method on the wrapped Hashtableobject. | 
|  Object | clone()Invokes the same method on the wrapped Hashtableobject. | 
|  boolean | contains(Object value)Invokes the same method on the wrapped Hashtableobject. | 
|  boolean | containsKey(Object key)Invokes the same method on the wrapped Hashtableobject. | 
|  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 Dictionaryobject. | 
|  Set | entrySet()Invokes the same method on the wrapped Hashtableobject. | 
|  boolean | equals(Object o)Invokes the same method on the wrapped Hashtableobject. | 
|  Object | get(Object key)Invokes the same method on the wrapped Dictionaryobject. | 
|  PropertiesList | getHead()Returns the PropertiesListobject that is the first object
 on the list of which this object is a member. | 
|  PropertiesList | getNext()Returns the PropertiesListobject that succedes this
 object on the list of which this object is a member. | 
|  PropertiesList | getPrior()Returns the PropertiesListobject that precedes this
 object on the list of which this object is a member. | 
|  String | getProperty(String key)Looks up keyin 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 Dictionaryobject wrapped by thisPropertiesList. | 
|  int | hashCode()Invokes the same method on the wrapped Hashtableobject. | 
|  boolean | isEmpty()Invokes the same method on the wrapped Dictionaryobject. | 
|  boolean | isTransient()Sub-classes of PropertiesList can override this to mark themselves "transient", in which case addAfterwill skip this list. | 
|  Enumeration | keys()Invokes the same method on the wrapped Dictionaryobject. | 
|  Set | keySet()Invokes the same method on the wrapped Hashtableobject. | 
|  void | list(PrintStream out)Invokes the same method on the wrapped Propertiesobject. | 
|  void | list(PrintWriter out)Invokes the same method on the wrapped Propertiesobject. | 
|  void | load(InputStream in)Invokes the same method on the wrapped Propertiesobject. | 
|  Enumeration | propertyNames()Invokes the same method on the wrapped Propertiesobject. | 
|  Enumeration | propertyNames(String pattern)Returns an Enumerationof property names that
 match aglobpattern. | 
|  Object | put(Object key,
    Object value)Invokes the same method on the wrapped Dictionaryobject. | 
|  void | putAll(Map t)Invokes the same method on the wrapped Hashtableobject. | 
|  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 Dictionaryobject. | 
|  void | save(OutputStream out,
     String header)Invokes the same method on the wrapped Propertiesobject. | 
|  Object | setProperty(String key,
            String value)Invokes the same method on the wrapped Propertiesobject
 if it exists. | 
|  int | size()Invokes the same method on the wrapped Dictionaryobject. | 
|  void | store(OutputStream out,
      String header)Invokes the same method on the wrapped Propertiesobject. | 
|  String | toString()Returns a Stringcontaining theSystem.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 Hashtableobject. | 
|  PropertiesList | wraps(Dictionary d)Find the first PropertiesListobject on the list of which
 this object is a member that wraps theDictionaryparameter. | 
| Methods inherited from class java.util.Hashtable | 
| containsValue | 
| Methods inherited from class java.lang.Object | 
| getClass, notify, notifyAll, wait, wait, wait | 
| Field Detail | 
public static boolean debug
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.
| Constructor Detail | 
public PropertiesList()
PropertiesList object that wraps
 an empty new Properties object.
public PropertiesList(Dictionary dict)
PropertiesList object that wraps
 the input Dictionary.
dict - The Dictionary object wrapped
                    by this PropertiesList.
public PropertiesList(Dictionary dict,
                      boolean searchNextFirst)
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.
dict - The Dictionary object wrapped
                         by this PropertiesList.searchNextFirst - If true all the following
                         objects in the list are searched before
                         this one.| Method Detail | 
public Dictionary getWrapped()
Dictionary object wrapped by this
 PropertiesList.
public void addAfter(PropertiesList cursor)
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
cursor - The list object that will precede this object.public void addBefore(PropertiesList cursor)
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
cursor - The list object that will succede this object.public boolean remove()
true.public PropertiesList getNext()
PropertiesList object that succedes this
 object on the list of which this object is a member.
PropertiesList object or 
                    null.public PropertiesList getPrior()
PropertiesList object that precedes this
 object on the list of which this object is a member.
PropertiesList object or
                    null.public PropertiesList getHead()
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.
PropertiesList object.public PropertiesList wraps(Dictionary d)
PropertiesList object on the list of which
 this object is a member that wraps the Dictionary
 parameter.
d - The Dictionary that is compared with the
                    wrapped Dictionary's for a match.
PropertiesList object that wraps the
                    input parameter, otherwise null.
public void dump(boolean full,
                 String msg)
full - If true also print the contents of the
                    wrapped Dictionary object.msg - If not null, add this message to the 
                    header line.public Enumeration elements()
Dictionary object.
elements in class Hashtablepublic Object get(Object key)
Dictionary object.
get in interface Mapget in class Hashtablepublic boolean isEmpty()
Dictionary object.
isEmpty in interface MapisEmpty in class Hashtablepublic Enumeration keys()
Dictionary object.
keys in class Hashtable
public Object put(Object key,
                  Object value)
Dictionary object.
put in interface Mapput in class Hashtablepublic Object remove(Object key)
Dictionary object.
remove in interface Mapremove in class Hashtablepublic int size()
Dictionary object.
size in interface Mapsize in class Hashtablepublic void clear()
Hashtable object.
clear in interface Mapclear in class Hashtablepublic Object clone()
Hashtable object.
clone in class Hashtablepublic boolean contains(Object value)
Hashtable object.
contains in class Hashtablepublic boolean containsKey(Object key)
Hashtable object.
containsKey in interface MapcontainsKey in class Hashtablepublic Set entrySet()
Hashtable object.
entrySet in interface MapentrySet in class Hashtablepublic boolean equals(Object o)
Hashtable object.
equals in interface Mapequals in class Hashtablepublic int hashCode()
Hashtable object.
hashCode in interface MaphashCode in class Hashtablepublic Set keySet()
Hashtable object.
keySet in interface MapkeySet in class Hashtablepublic void putAll(Map t)
Hashtable object.
putAll in interface MapputAll in class Hashtablepublic Collection values()
Hashtable object.
values in interface Mapvalues in class Hashtablepublic String toString()
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.
toString in class HashtableString representation of this object.public String getProperty(String key)
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.
getProperty in class Propertieskey - The key whose value is sought.
null.
public String getProperty(String key,
                          String defaultValue)
getProperty(String) to look up the value associated
 with the key.  If the result is null, returns the default
 value.
getProperty in class Propertieskey - The key whose value is sought.defaultValue - The default value.
null.public void list(PrintStream out)
Properties object.
list in class Propertiespublic void list(PrintWriter out)
Properties object.
list in class Properties
public void load(InputStream in)
          throws IOException
Properties object.
load in class PropertiesIOExceptionpublic Enumeration propertyNames()
Properties object.
propertyNames in class Properties
public void save(OutputStream out,
                 String header)
Properties object.
save in class Properties
public Object setProperty(String key,
                          String value)
Properties object
 if it exists.  Otherwise invokes put on the wrapped
 Dictionary object.
setProperty in class Properties
public void store(OutputStream out,
                  String header)
           throws IOException
Properties object.
store in class PropertiesIOExceptionpublic Enumeration propertyNames(String pattern)
Enumeration of property names that
 match a glob pattern.
pattern - The glob pattern to match.
Enumeration containing
                    matching property names, if any.public boolean isTransient()
addAfter
 will skip this list.
| 
 | Version 2.1, Generated 12/30/04 Copyright (c) 2001-2004, Sun Microsystems. | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||