package org.gwtoolbox.bean.rebind.validation.config;
import com.google.gwt.core.ext.typeinfo.JClassType;
import org.gwtoolbox.bean.client.validation.config.Groups;
import org.gwtoolbox.bean.client.validation.messages.ValidationMessages;
import java.util.*;
/**
* @author Uri Boness
*/
public class BeanValidationConfig {
private Map<Class, Set<Class>> groupSetBySuperGroup = new HashMap<Class, Set<Class>>();
private Class<? extends ValidationMessages> messagesClass;
private String messagesClassHolderClassName;
public void addConfiguration(JClassType configClass) {
if (configClass.isAnnotationPresent(Groups.class)) {
Groups groupClasses = configClass.getAnnotation(Groups.class);
for (Class group : groupClasses.value()) {
Set<Class> groupSet = new HashSet<Class>(Arrays.asList(group.getInterfaces()));
groupSetBySuperGroup.put(group, groupSet);
}
}
}
public Set<Class> getGroupSet(Class superGroup) {
return groupSetBySuperGroup.get(superGroup);
}
public Set<Class> getSuperGroups() {
return groupSetBySuperGroup.keySet();
}
public void setMessagesClass(Class<? extends ValidationMessages> messagesClass) {
this.messagesClass = messagesClass;
}
public Class<? extends ValidationMessages> getMessagesClass() {
return messagesClass;
}
public Map<Class, Set<Class>> getGroupSetBySuperGroup() {
return groupSetBySuperGroup;
}
public void setGroupSetBySuperGroup(Map<Class, Set<Class>> groupSetBySuperGroup) {
this.groupSetBySuperGroup = groupSetBySuperGroup;
}
public String getMessagesClassHolderClassName() {
return messagesClassHolderClassName;
}
public void setMessagesClassHolderClassName(String messagesClassHolderClassName) {
this.messagesClassHolderClassName = messagesClassHolderClassName;
}
}