/* * Copyright 2013 GiavaCms.org. * * Licensed under the Eclipse Public License version 1.0, available at * http://www.eclipse.org/legal/epl-v10.html */ package org.giavacms.common.repository; import java.util.List; import org.giavacms.common.model.Search; /** * @author fiorenzo pizza * * @param <T> */ public interface Repository<T> { /** * @return */ public List<T> getAllList(); /** * @param search * @param startRow * @param pageSize * @return */ public List<T> getList(Search<T> search, int startRow, int pageSize); /** * @param search * @return */ public int getListSize(Search<T> search); /** * Find by primary key * * @param key * @return */ public T find(Object key); /** * Fetch by primary key * * @param key * @return */ public T fetch(Object key); /** * create * * @param domainClass * @return */ public T create(Class<T> domainClass); /** * Make an instance persistent. * <p> * * @param object * @return */ public T persist(T object); /** * @param object * @return */ public boolean update(T object); /** * @param key * @return */ public boolean delete(Object key); }