setterconfiguration now by default does not add all the setters.
[utils] / system / general / src / main / java / org / wamblee / system / adapters / SetterConfiguration.java
index b2ab5f6d7044745182393717b2809d3a5b5c018b..649e008fae1f7f1ff0f17eff1b0c3923cd906db9 100644 (file)
@@ -52,7 +52,7 @@ public class SetterConfiguration {
        private Map<Method, ParameterValues> _setters;
 
        /**
-        * Constructs the setter configuration. By default all setters are added.
+        * Constructs the setter configuration. By default no setters are added. 
         * 
         * @param aClass
         *            Class which is being configured.
@@ -60,27 +60,30 @@ public class SetterConfiguration {
        public SetterConfiguration(Class aClass) {
                _class = aClass;
                _publicOnly = true;
-               initSetters();
+               _setters = new HashMap<Method, ParameterValues>();
        }
 
-       private void initSetters() {
-               _setters = new HashMap<Method, ParameterValues>();
+       /**
+        * Makes sure that all available setters are used. 
+        */
+       public SetterConfiguration initAllSetters() {
+           _setters.clear();
                for (Method method: getAllSetters(_class, _publicOnly) ) { 
                        _setters.put(method, createParameterValues(method));
                }
+               return this; 
        }
 
        /**
         * Called to set whether non-public setters are also used. By default only
-        * public setters are used. This resets all changes made and selects all
-        * public setters if non-public is false and all setters if it is true.
+        * public setters are used. The currently selected setters remain chosen.  
         * 
         * @param aIsNonPublic
         *            Non public flag.
         */
-       public void setNonPublic(boolean aIsNonPublic) {
+       public SetterConfiguration setNonPublic(boolean aIsNonPublic) {
                _publicOnly = !aIsNonPublic;
-               initSetters();
+               return this; 
        }
 
        /**
@@ -201,7 +204,7 @@ public class SetterConfiguration {
         * 
         * @return List of all setters.
         */
-       private static List<Method> getAllSetters(Class aClass,
+       public static List<Method> getAllSetters(Class aClass,
                        boolean aPublicOnly) {
                List<Method> result = new ArrayList<Method>();
                for (Method method : getAllMethods(aClass)) {