Documentation of 'jcckit.util.FlatConfigData' Java class
FlatConfigData
jcckit.util

Class FlatConfigData

  • All Implemented Interfaces:
    ConfigData
    Direct Known Subclasses:
    AppletBasedConfigData, PropertiesBasedConfigData


    public abstract class FlatConfigData
    extends java.lang.Object
    implements ConfigData
    An implementation of ConfigData based on a flat representation of the hierachically organized key-value pairs. Concrete subclasses must implement the methods getValue(java.lang.String) and createConfigData(java.lang.String) in accordance with the Template Method pattern and Factory Method pattern, respectively.

    In a flat representation of hierachically organized key-value pairs all key-value pairs are stored in a single Hashtable. Its key is the full key of the configuration data (i.e. the key including its path).

    Example (using the notation for a .properties file):

      title = example
      symbolAttributes/className = jcckit.graphic.BasicDrawingAttributes
      symbolAttributes/fillColor = 0xcaffee
      symbolAttributes/lineColor = 0xff0000
      
    The following table shows the result of some method calls at a FlatConfigData instance prepared with this example:

    Method callResult
    get("title")example
    getNode("symbolAttributes").get("fillColor") 0xcaffee

    In addition FlatConfigData implements inheritance of key-value pairs. Basically a node in the tree of key-value pairs may extend another node in the tree. The extended node inherit all key-value pairs from the extending one including the key-value pairs of all descendants. The value of a inherited key-value pair may be overridden. Also new key-value pairs may be placed in the inherited node or anywhere in the subtree. Note, that the extending node has to be a node which is not a descendant of the extended node (otherwise a circulary chain of references occurs). As a consequence not more than 20 inheritance levels are allowed.

    The implementation of this kind of inheritance in a flat hashtable is done by an additional key-value pair of the form

        extending-node/ = extended-node/
      
    Example:
      A/a/priority = high
      A/a/alpha/hello = universe
      A/a/alpha/answer = 42
      A/b/1/ = A/a/
      A/b/1/alpha/hello = world
      A/b/1/alpha/question = 6 * 7
      
    The following table shows the result of various method calls applied at the node A/b/1/ of a FlatConfigData instance prepared with this example:

    Method callResultComment
    get("priority")highinherited
    getNode("alpha").get("hello") worldoverridden
    getNode("alpha").get("question") 6 * 7added
    getNode("alpha").get("answer") 42inherited
    • Constructor Summary

      Constructors 
      Constructor and Description
      FlatConfigData(java.lang.String path)
      Creates a new instance for the specified path.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      java.lang.String get(java.lang.String key)
      Returns the value associated with this key.
      java.lang.String getFullKey(java.lang.String key)
      Returns the full key.
      ConfigData getNode(java.lang.String key)
      Returns the ConfigData object associated with this key.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FlatConfigData

        public FlatConfigData(java.lang.String path)
        Creates a new instance for the specified path.
    • Method Detail

      • getFullKey

        public java.lang.String getFullKey(java.lang.String key)
        Returns the full key.
        Specified by:
        getFullKey in interface ConfigData
        Parameters:
        key - A (relative) key. null is not allowed.
        Returns:
        the path concatenated with key or key if the path is undefined.
      • get

        public java.lang.String get(java.lang.String key)
        Returns the value associated with this key.
        Specified by:
        get in interface ConfigData
        Parameters:
        key - The relative key. null is not allowed.
        Returns:
        the associated value. Will be null if no value exists for key.
      • getNode

        public ConfigData getNode(java.lang.String key)
        Returns the ConfigData object associated with this key.
        Specified by:
        getNode in interface ConfigData
        Parameters:
        key - The relative key.
        Returns:
        the associated value. Will never return null. Instead an empty ConfigData is returned.

DataMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.