log.info("Loaded validations for ActionBean ", beanClass.getName(), ":", fieldValidations);
StringBuilder builder = new StringBuilder(128); for (Map.Entry<String,Validate> entry : fieldValidations.entrySet()) { if (builder.length() > 0) builder.append(", "); builder.append(entry.getKey()); builder.append("->"); builder.append(ReflectUtil.toString(entry.getValue())); }  log.debug("Loaded validations for ActionBean ", beanClass.getSimpleName(), ": ", builder.length() > 0 ? builder : "<none>");
    public void init(Configuration configuration) throws Exception {        this.configuration = configuration;        Set<Class<? extends ActionBean>> beanClasses = ActionClassCache.getInstance().getActionBeanClasses();        this.validations = new HashMap<Class<? extends ActionBean>, Map<String,Validate>>();        this.validationEventMap = new HashMap<Validate,Set<String>>();        for (Class<? extends ActionBean> beanClass : beanClasses) {            Map<String, Validate> fieldValidations = new HashMap<String, Validate>();            processClassAnnotations(beanClass, fieldValidations);            this.validations.put(beanClass, fieldValidations);            // Go through and put the list of events for this validation into            // a quicker to access structure            for (Validate info : fieldValidations.values()) {                Set<String> events = null;                if (info.on().length == 0) {                    events = Collections.emptySet();                }                else {                    events = new HashSet<String>();                    for (String event : info.on()) {                        events.add(event);                    }                }                this.validationEventMap.put(info, events);            }            log.info("Loaded validations for ActionBean ", beanClass.getName(), ":",                     fieldValidations);        }    }