Home
Categories
Dictionary
Download
Project Details
Changes Log
Tutorials
FAQ
License

AbstractConfiguration2 class



The AbstractConfiguration2 class is a default implementation of the Configuration2 interface which stores the properties in a Map. This class is abstract but it has no abstract methods. The following protected methods can be used to define the supported properties:

Example

Basic example

   public class ConcreteConfiguration extends AbstractConfiguration2 {
     private static ConcreteConfiguration conf = null;

     protected ConcreteConfiguration2Impl() {
       addProperty("propBool", Boolean.TYPE, false);
       addProperty("propInt", Integer.class, 1);
       addProperty("propFile", File.class, null);
     }
      
     public static ConcreteConfiguration getInstance() {
       if (conf == null) {
         conf = new ConcreteConfiguration();      
     }      
       return conf;
     } 
   }

Example with custom property setters

   public class ConcreteConfiguration extends AbstractConfiguration2 {
     private static ConcreteConfiguration conf = null;

     protected ConcreteConfiguration2Impl() {
       addProperty("propBool", Boolean.TYPE, false);
       addProperty("propInt", Integer.class, 1);
       addProperty("propList", List.class, null, true);
     }
      
     protected void setCustomPropertyValue(String key, Object value) {
       if (key.equals("propList")) {
         propertiesValues.get("propList").setValue(value);
       }
     }

     protected Object getCustomPropertyValue(String key) {
       if (key.equals("propList")) {
         return propertiesValues.get("propList").getValue();
       } else {
         return null;
       }
     }      
      
     public static ConcreteConfiguration getInstance() {
       if (conf == null) {
         conf = new ConcreteConfiguration();      
       }      
       return conf;
     } 
   }

See also


Categories: conf | javafx | swing

Copyright 2006-2023 Herve Girod. All Rights Reserved. Documentation and source under the LGPL v2 and Apache 2.0 licences