@@ -0,0 +1,880 @@
+package com.github.aureliano.edocs.domain.dao;%0A%0Aimport java.util.Set;%0A%0Aimport com.github.aureliano.edocs.annotation.validation.apply.ConstraintViolation;%0Aimport com.github.aureliano.edocs.annotation.validation.apply.ObjectValidator;%0Aimport com.github.aureliano.edocs.common.exception.EDocsException;%0Aimport com.github.aureliano.edocs.common.persistence.IDao;%0A%0Apublic abstract class AbstractDao%3CT%3E implements IDao%3CT%3E %7B%0A%0A%09protected void validateConfiguration(T entity) %7B%0A%09%09Set%3CConstraintViolation%3E violations = ObjectValidator.instance().validate(entity);%0A%09%09if (violations.isEmpty()) %7B%0A%09%09%09return;%0A%09%09%7D%0A%09%09%0A%09%09StringBuilder builder = new StringBuilder(%22Entity validation failed to %22 + entity.getClass().getName());%0A%09%09for (ConstraintViolation violation : violations) %7B%0A%09%09%09builder.append(%22%5Cn - %22).append(violation.getMessage());%0A%09%09%7D%0A%09%09%0A%09%09throw new EDocsException(builder.toString());%0A%09%7D%0A%7D

Create abstract dao.