package com.eswaraj.domain.validator; import java.util.HashMap; import java.util.Map; import org.springframework.data.neo4j.config.Neo4jConfiguration; import org.springframework.data.neo4j.lifecycle.BeforeSaveEvent; import org.springframework.stereotype.Component; @Component public class ValidationManager extends Neo4jConfiguration { //@SuppressWarnings("rawtypes") Map<Class, BaseValidator> validators = new HashMap<Class, BaseValidator>(); public <T> void registerValidator(Class<T> type, BaseValidator<T> baseValidator){ //System.out.println("registerValidator = "+baseValidator+", "+baseValidator.getClass()); validators.put(type, baseValidator); } public <T> void validateBeforeSave(BeforeSaveEvent<T> beforeSaveEvent){ //System.out.println("ValidationManager.BeforeSaveEvent "+beforeSaveEvent.getEntity()); BaseValidator validator = validators.get(beforeSaveEvent.getEntity().getClass()); //System.out.println("validator = "+validator); if(validator != null){ validator.validateBeforeSave(beforeSaveEvent.getEntity()); } } }