Author: fdesbois Date: 2010-12-29 17:32:38 +0100 (Wed, 29 Dec 2010) New Revision: 447 Url: http://nuiton.org/repositories/revision/sandbox/447 Log: Use better implementation instead of using reflect for classes Modified: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAOImpl.java jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAOImpl.java Modified: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAOImpl.java =================================================================== --- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAOImpl.java 2010-12-29 16:18:26 UTC (rev 446) +++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/BaseDAOImpl.java 2010-12-29 16:32:38 UTC (rev 447) @@ -3,7 +3,6 @@ import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.TypedQuery; -import java.lang.reflect.ParameterizedType; import java.util.List; import org.apache.commons.logging.Log; @@ -75,24 +74,17 @@ /** * Constructor to be called by siblings. + * + * @param interfaceClass Class of the entity interface + * @param entityClass Class of the entity + * */ - public BaseDAOImpl() { - initClasses(); + protected BaseDAOImpl(Class<C> interfaceClass, Class<E> entityClass) { + this.interfaceClass = interfaceClass; + this.entityClass = entityClass; saveStrategy = SaveStrategy.DEFAULT; } - @SuppressWarnings({"unchecked"}) - private void initClasses() throws ClassCastException { - ParameterizedType genericSuperclass = (ParameterizedType) getClass().getGenericSuperclass(); - entityClass = (Class<E>) genericSuperclass.getActualTypeArguments()[1]; - interfaceClass = (Class<C>) genericSuperclass.getActualTypeArguments()[0]; - if (logger.isTraceEnabled()) { - logger.trace("Initialize classes for DAO " + getClass().getName() + - " :: entityClass = " + entityClass.getName() + - " _ interfaceClass = " + interfaceClass.getName()); - } - } - public EntityManager getEntityManager() { return entityManager; } Modified: jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAOImpl.java =================================================================== --- jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAOImpl.java 2010-12-29 16:18:26 UTC (rev 446) +++ jpa2-validation/trunk/jsr317-jpa2/src/main/java/org/nuiton/sandbox/jsr317/jpa2/persistence/CustomerDAOImpl.java 2010-12-29 16:32:38 UTC (rev 447) @@ -17,6 +17,10 @@ @Repository public class CustomerDAOImpl extends BaseDAOImpl<Customer, CustomerImpl> implements CustomerDAO { + public CustomerDAOImpl() { + super(Customer.class, CustomerImpl.class); + } + @Override public Address newInstanceAddress() { return new AddressImpl();
participants (1)
-
fdesbois@users.nuiton.org