<%@ jet package="cruise.data.impl.dao.generic.impl" class="GenericFakeDAO" skeleton="../skeleton/IGenerator.skeleton" %> package dao.generic.impl; import java.lang.reflect.ParameterizedType; import java.util.ArrayList; import java.util.Collections; import java.util.List; import dao.generic.GenericDAO; import dao.session.Session; public abstract class GenericFakeDAO implements GenericDAO{ private Class persistentClass; @SuppressWarnings("unchecked") public GenericFakeDAO() { this.persistentClass = (Class) ((ParameterizedType) getClass() .getGenericSuperclass()).getActualTypeArguments()[0]; } public Class getPersistentClass() { return persistentClass; } @SuppressWarnings("unchecked") public T findById(PK id) { T entity; entity = (T) Session.getInstance().getObjectRepository().getTable(getPersistentClass()).get(id); return entity; } @SuppressWarnings("unchecked") public List findAll() { return Collections.unmodifiableList(new ArrayList(Session.getInstance().getObjectRepository().getTable(getPersistentClass()).values())); } @SuppressWarnings("unchecked") public List findAll(Class clazz) { List filteredCollection = new ArrayList(); for (T obj : new ArrayList(Session.getInstance().getObjectRepository().getTable(getPersistentClass()).values()) ) { if (clazz.isInstance(obj)) { filteredCollection.add(obj); } } return Collections.unmodifiableList(filteredCollection); //return Collections.unmodifiableList(new ArrayList(Session.getInstance().getObjectRepository().getTable(getPersistentClass()).values())); } public List findByInstance(T exampleInstance) { return null; } public T save(T entity, PK pk) { Session.getInstance().getObjectRepository().save(getPersistentClass(), pk, entity); return entity; } public void delete(PK pk) { Session.getInstance().getObjectRepository().delete(getPersistentClass(), pk); System.gc(); } }