List<UserParameter> list = new ArrayList(user.getParameters().values());
Map<String, UserParameter> map = new HashMap();
for (Module module : getModuleManager().getModules()) {
for (UserParameterTemplate ut : module.getUserParameters(user).values()) {
UserParameter parameter = ut.createUserParameter();
log.debug(parameter.getKey());
map.put(parameter.getKey(), parameter);
}
}
log.debug("module parameter count: " + map.size());
log.debug("current user parameter count: " + list.size());
// delete unused parameters from user
for (UserParameter parameter : list) {
UserParameter p = map.get(parameter.getKey());
if (p == null) {
log.debug("remove parameter from user: " + parameter.getKey());
user.getParameters().remove(parameter.getKey());
} else {
map.remove(parameter.getKey());