package com.googlecode.tawus.internal.services; import org.apache.tapestry5.ioc.ObjectLocator; import com.googlecode.tawus.services.EntityDAO; import com.googlecode.tawus.services.EntityDAOLocator; import com.googlecode.tawus.services.EntityServiceMapper; public class EntityDAOLocatorImpl implements EntityDAOLocator { private ObjectLocator locator; private EntityServiceMapper entityServiceMapper; public EntityDAOLocatorImpl(ObjectLocator locator, EntityServiceMapper entityServiceMapper) { this.locator = locator; this.entityServiceMapper = entityServiceMapper; } @SuppressWarnings("unchecked") public <T> EntityDAO<T> get(Class<T> entityClass) { try { return locator.getService(entityServiceMapper.getServiceId(entityClass), EntityDAO.class); } catch(Exception ex) { throw new RuntimeException("No service configured for entity class " + entityClass.getCanonicalName()); } } }