/*
* Copyright (c) JForum Team
* All rights reserved.
*
* Redistribution and use in source and binary forms,
* with or without modification, are permitted provided
* that the following conditions are met:
*
* 1) Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
* 2) Redistributions in binary form must reproduce the
* above copyright notice, this list of conditions and
* the following disclaimer in the documentation and/or
* other materials provided with the distribution.
* 3) Neither the name of "Rafael Steil" nor
* the names of its contributors may be used to endorse
* or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
* IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
*
* This file creating date: Feb 23, 2003 / 12:25:04 PM
* The JForum Project
* http://www.jforum.net
*/
package net.jforum.entities;
import java.io.Serializable;
import java.util.List;
import net.jforum.repository.ForumRepository;
/**
* Represents a specific forum.
*
* @author Rafael Steil
* @version $Id: Forum.java,v 1.13 2007/07/28 14:17:09 rafaelsteil Exp $
*/
public class Forum implements Serializable
{
private int id;
private int idCategories;
private String name;
private String description;
private int order;
private int totalTopics;
private int totalPosts;
private int lastPostId;
private boolean moderated;
private boolean unread;
private LastPostInfo lpi;
public Forum() { }
public Forum(int forumId) {
this.id = forumId;
}
public Forum(Forum f)
{
this.description = f.getDescription();
this.id = f.getId();
this.idCategories = f.getCategoryId();
this.lastPostId = f.getLastPostId();
this.moderated = f.isModerated();
this.name = f.getName();
this.order = f.getOrder();
this.totalPosts = f.getTotalPosts();
this.totalTopics = f.getTotalTopics();
this.unread = f.getUnread();
this.lpi = f.getLastPostInfo();
}
public void setLastPostInfo(LastPostInfo lpi) {
this.lpi = lpi;
}
public LastPostInfo getLastPostInfo() {
return this.lpi;
}
public List getModeratorList()
{
return ForumRepository.getModeratorList(this.id);
}
/**
* Gets the forum's description
*
* @return String with the description
*/
public String getDescription() {
return this.description;
}
/**
* Gets the forum's ID
*
* @return int value representing the ID
*/
public int getId() {
return this.id;
}
/**
* Gets the category which the forum belongs to
*
* @return int value representing the ID of the category
*/
public int getCategoryId() {
return this.idCategories;
}
public void setCategoryId(int categoryId){
this.idCategories=categoryId;
}
/**
* Gets the ID of the last post
*
* @return int value representing the ID of the post
*/
public int getLastPostId() {
return this.lastPostId;
}
/**
* Checks if is a moderated forum
*
* @return boolean value. <code>true</code> if the forum is moderated, <code>false</code> if not.
*/
public boolean isModerated() {
return this.moderated;
}
/**
* Gets the name of the forum
*
* @return String with the name
*/
public String getName() {
return this.name;
}
/**
* Gets the order
*
* @return int value representing the order of the forum
*/
public int getOrder() {
return this.order;
}
/**
* Gets the total number of topics posted in the forum
*
* @return int value with the total number of the topics
*/
public int getTotalTopics() {
return this.totalTopics;
}
public boolean getUnread() {
return this.unread;
}
/**
* Sets the description.
*
* @param description The description to set
*/
public void setDescription(String description) {
this.description = description;
}
/**
* Sets the id.
*
* @param id The id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* Sets the category id
*
* @param idCategories The ID of the category to set to the forum
*/
public void setIdCategories(int idCategories) {
this.idCategories = idCategories;
}
/**
* Sets the ID of the last post
*
* @param lastPostId The post id
*/
public void setLastPostId(int lastPostId) {
this.lastPostId = lastPostId;
}
/**
* Sets the moderated flag to the forum
*
* @param moderated <code>true</code> or <code>false</code>
*/
public void setModerated(boolean moderated) {
this.moderated = moderated;
}
/**
* Sets the name of the forum
*
* @param name The name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* Sets the order.
*
* @param order The order to set
*/
public void setOrder(int order) {
this.order = order;
}
public void setUnread(boolean status) {
this.unread = status;
}
/**
* Sets the total number of topics
*
* @param totalTopics int value with the total number of topics
*/
public void setTotalTopics(int totalTopics) {
this.totalTopics = totalTopics;
}
public int getTotalPosts() {
return this.totalPosts;
}
public void setTotalPosts(int totalPosts) {
this.totalPosts = totalPosts;
}
/**
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object o)
{
return ((o instanceof Forum) && (((Forum)o).getId() == this.id));
}
/**
* @see java.lang.Object#hashCode()
*/
public int hashCode()
{
return this.id;
}
/**
* @see Object#toString()
*/
public String toString() {
return "Forum{" +
"id=" + id +
", idCategories=" + idCategories +
", name='" + name + '\'' +
", description='" + description + '\'' +
", order=" + order +
", totalTopics=" + totalTopics +
", totalPosts=" + totalPosts +
", lastPostId=" + lastPostId +
", moderated=" + moderated +
", unread=" + unread +
", lpi=" + lpi +
'}';
}
}