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: * This file creation date: 20/05/2004 - 15:37:25
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.PrivateMessage;
047: import net.jforum.entities.User;
048:
049: /**
050: * @author Rafael Steil
051: * @version $Id: PrivateMessageDAO.java,v 1.8 2007/08/01 22:30:04 rafaelsteil Exp $
052: */
053: public interface PrivateMessageDAO {
054: /**
055: * Send a new <code>PrivateMessage</code>
056: *
057: * @param pm The pm to add
058: */
059: public void send(PrivateMessage pm);
060:
061: /**
062: * Deletes a collection of private messages.
063: * Each instance should at least have the private message
064: * id and the owner user id.
065: *
066: * @param pm PrivateMessage[]
067: * @param userId
068: */
069: public void delete(PrivateMessage[] pm, int userId);
070:
071: /**
072: * Update the type of some private message.
073: * You should pass as argument a <code>PrivateMessage</code> instance
074: * with the pm's id and the new message status. There is no need to
075: * fill the other members.
076: *
077: * @param pm The instance to update
078: */
079: public void updateType(PrivateMessage pm);
080:
081: /**
082: * Selects all messages from the user's inbox.
083: *
084: * @param user The user to fetch the messages
085: * @return A <code>List</code> with all messages found. Each
086: * entry is a <code>PrivateMessage</code> entry.
087: */
088: public List selectFromInbox(User user);
089:
090: /**
091: * Selects all messages from the user's sent box.
092: *
093: * @param user The user to fetch the messages
094: * @return A <code>List</code> with all messages found. Each
095: * entry is a <code>PrivateMessage</code> entry.
096: */
097: public List selectFromSent(User user);
098:
099: /**
100: * Gets a <code>PrivateMessage</code> by its id.
101: *
102: * @param pm A <code>PrivateMessage</code> instance containing the pm's id
103: * to retrieve
104: * @return The pm contents
105: */
106: public PrivateMessage selectById(PrivateMessage pm);
107: }
|