001: /*
002: * Copyright (c) JForum Team
003: * All rights reserved.
004: *
005: * Redistribution and use in source and binary forms,
006: * with or without modification, are permitted provided
007: * that the following conditions are met:
008: * 1) Redistributions of source code must retain the above
009: * copyright notice, this list of conditions and the
010: * following disclaimer.
011: * 2) Redistributions in binary form must reproduce the
012: * above copyright notice, this list of conditions and
013: * the following disclaimer in the documentation and/or
014: * other materials provided with the distribution.
015: * 3) Neither the name of "Rafael Steil" nor
016: * the names of its contributors may be used to endorse
017: * or promote products derived from this software without
018: * specific prior written permission.
019: *
020: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
021: * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
022: * EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
023: * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
024: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR
025: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
026: * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
027: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
028: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES
029: * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
030: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
031: * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
032: * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
033: * IN CONTRACT, STRICT LIABILITY, OR TORT
034: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
035: * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
036: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
037: *
038: * Created on Jan 16, 2005 12:30:52 PM
039: * The JForum Project
040: * http://www.jforum.net
041: */
042: package net.jforum.dao;
043:
044: import java.util.List;
045:
046: import net.jforum.entities.Bookmark;
047:
048: /**
049: * @author Rafael Steil
050: * @version $Id: BookmarkDAO.java,v 1.6 2006/08/23 02:13:35 rafaelsteil Exp $
051: */
052: public interface BookmarkDAO {
053: /**
054: * Adds a new bookmark.
055: *
056: * @param b The bookmark to add
057: */
058: public void add(Bookmark b);
059:
060: /**
061: * Updates a bookmark.
062: * Only the fields <i>publicVisible</i>, <i>title</i>
063: * and <i>description</i> are changed.
064: * All other fields remain with the same value.
065: *
066: * @param b The bookmark to update
067: */
068: public void update(Bookmark b);
069:
070: /**
071: * Removes a bookmark.
072: *
073: * @param bookmarkId The bookmark's id to remove
074: */
075: public void remove(int bookmarkId);
076:
077: /**
078: * Gets all bookmarks of a given type.
079: *
080: * @param userId The bookmark's owner
081: * @param relationType Any valid type declared in
082: * <code>net.jforum.entities.BookmarkType</code>
083: * @return A list with all results found. Each entry is
084: * a {@link net.jforum.entities.Bookmark} instance.
085: */
086: public List selectByUser(int userId, int relationType);
087:
088: /**
089: * Gets all bookmarks from some user.
090: *
091: * @param userId The bookmark's owner
092: * <code>net.jforum.entities.BookmarkType</code>
093: * @return A list with all results found. Each entry is
094: * a {@link net.jforum.entities.Bookmark} instance.
095: */
096: public List selectByUser(int userId);
097:
098: /**
099: * Gets a bookmark.
100: *
101: * @param bookmarkId The bookmark id
102: * @return A Bookmark instance or null if no entry found
103: */
104: public Bookmark selectById(int bookmarkId);
105:
106: /**
107: * Gets a bookmark for edition.
108: *
109: * @param relationId The relation's id
110: * @param relationType The relation type.
111: * @param userId The bookmark's owner
112: * @return A bookmark instance of <code>null</code> if
113: * the record cannot be found
114: */
115: public Bookmark selectForUpdate(int relationId, int relationType,
116: int userId);
117: }
|