/** * */ package net.i2geo.comped.dao; import java.util.List; import net.i2geo.comped.model.ConcreteCompetency; import net.i2geo.comped.model.Topic; import org.appfuse.dao.GenericDao; /** * @author Martin Homik * */ public interface GenericTopicDao<T extends Topic> extends GenericDao<T, Long> { /** * Retrieves a topic by the name part of the uri. Note, uri contains only the name part. * @param uri * @return */ public T findByUri(String uri); /** * Find the last 'number' newly created topics. * @param number * @return topics */ public List<T> findByLastCreated(int number); /** * Find the last 'number' modified topics. * @param number * @return */ public List<T> findByLastModified(int number); /** * * @param token * @param language * @return */ public List<T> findByNameExact(String token, String language); /** * * @param token * @param language * @param number * @return */ public List<T> findByNameExact(String token, String language, int number); /** * * @param token * @param language * @return */ public List<T> findByNameLike(String token, String language); /** * * @param token * @param language * @param number * @return */ public List<T> findByNameLike(String token, String language, int number); /** * * @param token * @param language * @param like * @param number * @return */ public List<T> findByName(String token, String language, boolean like, int number); /** * Find concrete competencies that are linked to requested abstract/concrete topic. * * @param topic * @return */ public List<ConcreteCompetency> findLinkedConcreteCompetency(T topic); }