/********************************************************************************** * $URL: https://source.sakaiproject.org/svn/rwiki/trunk/rwiki-api/api/src/java/uk/ac/cam/caret/sakai/rwiki/service/api/model/RWikiObject.java $ * $Id: RWikiObject.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.model; import java.util.Date; /** * The base object for a Wiki page, id, name, realm, permissions, revision, * version, owner */ // FIXME: Service public interface RWikiObject extends Comparable { /** * Access the unique id. * * @return The unique id. */ String getId(); /** * Set the ID, ONLY do this if you really know you must. * * @return */ void setId(String id); /** * Access the object's version time stamp. * * @return The object's version time stamp. */ Date getVersion(); /** * Set the "version" * * @param version * The new "version". */ void setVersion(Date version); /** * Access "name". * * @return "name". */ String getName(); /** * Set the "name". * * @param name * The new "name". */ void setName(String name); /** * Access "rank". * * @return "rank". */ String getRealm(); /** * Set the "rank". * * @param rank * The new "rank". */ void setRealm(String rank); /** * Access "serial number". * * @return "serial number". */ String getContent(); /** * a list of referenced pages seperated by :: * * @return */ String getReferenced(); /** * a list of referenced pages seperated by :: */ void setReferenced(String referenced); /** * Set the "serial number". * * @param sn * The new "serial number". */ void setContent(String sn); /** * The user that last edited this record * * @param user */ void setUser(String user); /** * @return The user that last edited this record * @return */ String getUser(); /** * The user that owns this record */ void setOwner(String owner); /** * @return The user that owns this record */ String getOwner(); /** * Can the user read the page * * @return */ boolean getOwnerRead(); /** * set what the owner can do to the page, requires admin for the user * * @param userRead */ void setOwnerRead(boolean ownerRead); /** * can the user edit the page * * @return */ boolean getOwnerWrite(); /** * set the user edit permission * * @param userWrite */ void setOwnerWrite(boolean ownerWrite); /** * can the user admin the page (set other permissions) * * @return */ boolean getOwnerAdmin(); /** * Can the user set admin permissions, (set other permissions, including * this one, potential lock out so we need a higher level admin ) * * @param userAdmin */ void setOwnerAdmin(boolean ownerAdmin); /** * can the group read the page * * @return */ boolean getGroupRead(); /** * set the group permission * * @param groupRead */ void setGroupRead(boolean groupRead); /** * can the group edit the page * * @return */ boolean getGroupWrite(); /** * set the group edit * * @param groupWrite */ void setGroupWrite(boolean groupWrite); /** * can the group admin the page (set other permissions) * * @return */ boolean getGroupAdmin(); /** * set the group admin permissoins * * @param groupAdmin */ void setGroupAdmin(boolean groupAdmin); /** * Can the public read the page * * @return */ boolean getPublicRead(); /** * set the public read permissions * * @param publicRead */ void setPublicRead(boolean publicRead); /** * can the public edit the page * * @return */ boolean getPublicWrite(); /** * set the public edit permissions * * @param publicWrite */ void setPublicWrite(boolean publicWrite); /** * @return Returns the revision number */ Integer getRevision(); /** * */ void setRevision(Integer revision); /** * Copy a RWikiObject into an existing RWiki Object This will copy the * contents and settings of the RWiki Object into the supplied RWikiObject. * The ID and the User will not be changed, everything else will be coppied. * NB. THE GLOBAL NAME, AND REALM WILL NOT BE COPIED, and should be changed * by the calling method. */ void copyTo(RWikiObject rwo); /** * Copies everything * * @param rwo */ void copyAllTo(RWikiObject rwo); // /** // * Update content of the RWikiObject, taking care of history // * @return false if newContent is the same as the current content // */ // iebdelete boolean updateContent(String newContent); // iebdelete RWikiHistoryObject getRevision(int revisionNumber); // iebdelete int getNumberOfRevisions(); /** * Update permissions, the permission array must be of length 8 */ void setPermissions(RWikiPermissions permissions); /** * get an object containing the current state of the permissions, this MUST * be pushed back into the DAO for the changes to take effect. Changing the * contents of RWikiPermissions is not sufficient. * * @return */ RWikiPermissions getPermissions(); /** * The id of the rwiki object which this is a version of * * @param rwikiobjectid */ void setRwikiobjectid(String rwikiobjectid); /** * The parent rwiki object * * @return */ String getRwikiobjectid(); /** * get the hash * * @return */ String getSha1(); /** * set the hash. * * @param sha1 */ void setSha1(String sha1); /** * @return */ String getSource(); } /******************************************************************************* * $Header$ ******************************************************************************/