Uploaded image for project: 'Commons Configuration'
  1. Commons Configuration
  2. CONFIGURATION-248

Safeguard config source abstraction by using HierarchicalConfiguration as supertype for all configs

    XMLWordPrintableJSON

Details

    • Wish
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.3
    • 2.x
    • None
    • None
    • -

    Description

      I hope I get this right:
      When I have a CompositeConfiguration, the nice thing about it is that I don't have to care in which file or file type a config entry has been defined. Now when part of my CompositeConfiguration has a hierarchical structure and I need the API provided by HierarchicalConfiguration, I lose the aforementioned abstraction: I need to cast a specific part of my CompositeConfiguration to HierarchicalConfiguration. This is a major design problem!

      It would be better to leverage the Composite Pattern here: derive all configuration classes from HierarchicalConfiguration. Put differently, move the HierarchicalConfiguration API to Configuration. Even if a config is not hierarchically structured, methods for hierarchical access will be present, but that's a minor drawback which is intrinsic to the Composite Pattern. This also happens when you are modelling a tree structure and you have a common supertype "Node" which has a method "getSubNodes()" which will also be present in leaf node instances (in this case, "getSubNodes()" would return null etc.).

      Attachments

        Activity

          People

            Unassigned Unassigned
            dennis Dennis Kuehn
            Votes:
            1 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: