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.
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;
}
/**
*
* @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)) {