Class HierarchicalConfiguration

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.Properties configuration
      The instance configuration properties.
      private Configuration parentConfiguration
      The parent configuration (null if this is the root configuration).
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object clone()
      Returns a clone of this instance.
      private void collectPropertyKeys​(java.lang.String prefix, Configuration config, java.util.TreeSet collector)
      Collects property keys from this and all parent report configurations, which start with the given prefix.
      protected void configurationLoaded()
      A callback method to reconnect this configuration with the global configuration after deserialization.
      java.util.Iterator findPropertyKeys​(java.lang.String prefix)
      Searches all property keys that start with a given prefix.
      java.util.Enumeration getConfigProperties()
      Returns all defined configuration properties for the report.
      java.lang.String getConfigProperty​(java.lang.String key)
      Returns the configuration property with the specified key.
      java.lang.String getConfigProperty​(java.lang.String key, java.lang.String defaultValue)
      Returns the configuration property with the specified key (or the specified default value if there is no such property).
      protected java.util.Properties getConfiguration()
      Returns the collection of properties for the configuration.
      protected Configuration getParentConfig()
      Returns the parent configuration.
      void insertConfiguration​(HierarchicalConfiguration config)
      The new configuartion will be inserted into the list of report configuration, so that this configuration has the given report configuration instance as parent.
      boolean isLocallyDefined​(java.lang.String key)
      Checks, whether the given key is localy defined in this instance or whether the key's value is inherited.
      protected boolean isParentSaved()
      Checks, whether the parent configuration can be serialized.
      private boolean isRootConfig()
      Returns true if this object has no parent.
      private void readObject​(java.io.ObjectInputStream in)
      Helper method for serialization.
      void setConfigProperty​(java.lang.String key, java.lang.String value)
      Sets a configuration property.
      protected void setParentConfig​(Configuration config)
      Set the parent configuration.
      private void writeObject​(java.io.ObjectOutputStream out)
      Helper method for serialization.
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • configuration

        private java.util.Properties configuration
        The instance configuration properties.
      • parentConfiguration

        private transient Configuration parentConfiguration
        The parent configuration (null if this is the root configuration).
    • Constructor Detail

      • HierarchicalConfiguration

        public HierarchicalConfiguration()
        Creates a new configuration.
      • HierarchicalConfiguration

        public HierarchicalConfiguration​(Configuration parentConfiguration)
        Creates a new configuration.
        Parameters:
        parentConfiguration - the parent configuration.
    • Method Detail

      • getConfigProperty

        public java.lang.String getConfigProperty​(java.lang.String key)
        Returns the configuration property with the specified key.
        Specified by:
        getConfigProperty in interface Configuration
        Parameters:
        key - the property key.
        Returns:
        the property value.
      • getConfigProperty

        public java.lang.String getConfigProperty​(java.lang.String key,
                                                  java.lang.String defaultValue)
        Returns the configuration property with the specified key (or the specified default value if there is no such property).

        If the property is not defined in this configuration, the code will lookup the property in the parent configuration.

        Specified by:
        getConfigProperty in interface Configuration
        Parameters:
        key - the property key.
        defaultValue - the default value.
        Returns:
        the property value.
      • setConfigProperty

        public void setConfigProperty​(java.lang.String key,
                                      java.lang.String value)
        Sets a configuration property.
        Specified by:
        setConfigProperty in interface ModifiableConfiguration
        Parameters:
        key - the property key.
        value - the property value.
      • isRootConfig

        private boolean isRootConfig()
        Returns true if this object has no parent.
        Returns:
        true, if this report is the root configuration, false otherwise.
      • isLocallyDefined

        public boolean isLocallyDefined​(java.lang.String key)
        Checks, whether the given key is localy defined in this instance or whether the key's value is inherited.
        Parameters:
        key - the key that should be checked.
        Returns:
        true, if the key is defined locally, false otherwise.
      • getConfiguration

        protected java.util.Properties getConfiguration()
        Returns the collection of properties for the configuration.
        Returns:
        the properties.
      • insertConfiguration

        public void insertConfiguration​(HierarchicalConfiguration config)
        The new configuartion will be inserted into the list of report configuration, so that this configuration has the given report configuration instance as parent.
        Parameters:
        config - the new report configuration.
      • setParentConfig

        protected void setParentConfig​(Configuration config)
        Set the parent configuration. The parent configuration is queried, if the requested configuration values was not found in this report configuration.
        Parameters:
        config - the parent configuration.
      • getParentConfig

        protected Configuration getParentConfig()
        Returns the parent configuration. The parent configuration is queried, if the requested configuration values was not found in this report configuration.
        Returns:
        the parent configuration.
      • getConfigProperties

        public java.util.Enumeration getConfigProperties()
        Returns all defined configuration properties for the report. The enumeration contains all keys of the changed properties, properties set from files or the system properties are not included.
        Specified by:
        getConfigProperties in interface Configuration
        Specified by:
        getConfigProperties in interface ModifiableConfiguration
        Returns:
        all defined configuration properties for the report.
      • findPropertyKeys

        public java.util.Iterator findPropertyKeys​(java.lang.String prefix)
        Searches all property keys that start with a given prefix.
        Specified by:
        findPropertyKeys in interface Configuration
        Specified by:
        findPropertyKeys in interface ModifiableConfiguration
        Parameters:
        prefix - the prefix that all selected property keys should share
        Returns:
        the properties as iterator.
      • collectPropertyKeys

        private void collectPropertyKeys​(java.lang.String prefix,
                                         Configuration config,
                                         java.util.TreeSet collector)
        Collects property keys from this and all parent report configurations, which start with the given prefix.
        Parameters:
        prefix - the prefix, that selects the property keys.
        config - the currently processed report configuration.
        collector - the target list, that should receive all valid keys.
      • isParentSaved

        protected boolean isParentSaved()
        Checks, whether the parent configuration can be serialized. Usually the global configuration is not serialized and should return false here.
        Returns:
        true, if the parent config can be serialized, false otherwise.
      • configurationLoaded

        protected void configurationLoaded()
        A callback method to reconnect this configuration with the global configuration after deserialization.
      • writeObject

        private void writeObject​(java.io.ObjectOutputStream out)
                          throws java.io.IOException
        Helper method for serialization.
        Parameters:
        out - the output stream where to write the object.
        Throws:
        java.io.IOException - if errors occur while writing the stream.
      • readObject

        private void readObject​(java.io.ObjectInputStream in)
                         throws java.io.IOException,
                                java.lang.ClassNotFoundException
        Helper method for serialization.
        Parameters:
        in - the input stream from where to read the serialized object.
        Throws:
        java.io.IOException - when reading the stream fails.
        java.lang.ClassNotFoundException - if a class definition for a serialized object could not be found.
      • clone

        public java.lang.Object clone()
                               throws java.lang.CloneNotSupportedException
        Returns a clone of this instance.
        Specified by:
        clone in interface Configuration
        Specified by:
        clone in interface PublicCloneable
        Overrides:
        clone in class java.lang.Object
        Returns:
        A clone.
        Throws:
        java.lang.CloneNotSupportedException - if there is a problem cloning.