package com.venky.swf.db.annotations.model.validations;
import java.lang.reflect.Proxy;
import com.venky.swf.db.model.Model;
import com.venky.swf.db.model.reflection.ModelReflector;
import com.venky.swf.db.table.ModelInvocationHandler;
import com.venky.swf.exceptions.MultiException;
public abstract class ModelValidator {
public ModelValidator(){
}
public <M extends Model> boolean isValid(M m , MultiException modelValidationException){
ModelInvocationHandler h = (ModelInvocationHandler)Proxy.getInvocationHandler(m);
return isValid(h.getReflector(),m, modelValidationException);
}
protected abstract <M extends Model> boolean isValid(ModelReflector<M> reflector, M m, MultiException modelValidationException);
}