/********************************************************************************** * $URL: https://source.sakaiproject.org/svn/rwiki/trunk/rwiki-api/api/src/java/uk/ac/cam/caret/sakai/rwiki/service/api/dao/RWikiCurrentObjectDao.java $ * $Id: RWikiCurrentObjectDao.java 9108 2006-05-08 14:30:57Z ian@caret.cam.ac.uk $ *********************************************************************************** * * Copyright (c) 2003, 2004, 2005, 2006 The Sakai Foundation. * * Licensed under the Educational Community License, Version 1.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.opensource.org/licenses/ecl1.php * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * **********************************************************************************/ package uk.ac.cam.caret.sakai.rwiki.service.api.dao; import java.util.Date; import java.util.List; import uk.ac.cam.caret.sakai.rwiki.service.api.model.RWikiCurrentObject; import uk.ac.cam.caret.sakai.rwiki.service.api.model.RWikiHistoryObject; import uk.ac.cam.caret.sakai.rwiki.service.api.model.RWikiObject; // FIXME: Service public interface RWikiCurrentObjectDao extends RWikiObjectDao { /** * Finds an RWikiObject which matches the given name and realm exactly * * @param name * The globalised name of the object * @param realm * The realm of control of the object * @return the rwikiObject */ RWikiCurrentObject findByGlobalName(String name); /** * Find a page by search, user and realm * * @param criteria * @param user * @param realm * @return */ List findByGlobalNameAndContents(String criteria, String user, String realm); /** * Update an RWikiCurrentObject * * @param rwo */ void update(RWikiCurrentObject rwo, RWikiHistoryObject rwho); /** * Create a new Current Object * * @param name * @param realm * @return */ RWikiCurrentObject createRWikiObject(String name, String realm); /** * Find current objects that have changed since * * @param since * @param realm * @return */ List findChangedSince(Date since, String realm); /** * Find pages references this one * * @param name * @return */ List findReferencingPages(String name); /** * Get the current oject base on a child (or the curent object) * * @param reference * @return */ RWikiCurrentObject getRWikiCurrentObject(RWikiObject reference); /** * Does the global name exist * * @param name * @return */ boolean exists(String name); /** * Count the number of pages in a group/realm * * @param group * @return */ int getPageCount(String group); /** * Find a list of subpages based on the parent page name * * @param globalParentPageName * @return */ List findRWikiSubPages(String globalParentPageName); /** * Finds the last comment on the supplied page name, if not comment has been * made, it will return null. * * @param globalParentPageName * @return */ RWikiObject findLastRWikiSubPage(String globalParentPageName); /** * Find all the pages with names starting with the supplied name cahnged * since the date givem ordered by the most recent. * * @param time * changes after this date * @param user * the user * @param basepath * pages starting with this name * @return */ List findAllChangedSince(Date time, String basepath); /** * get a list of all pages in the database, used for search * * @return */ List findAllPageNames(); }