alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

jforum example source code file (User.java)

This example jforum source code file (User.java) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - jforum tags/keywords

arraylist, date, date, hashmap, io, karmastatus, list, map, object, object, serializable, string, string, text, user, user, util

The jforum User.java source code

/*
 * 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 17, 2003 / 10:25:04 PM
 * The JForum Project
 * http://www.jforum.net 
 * 
 * $Id: User.java,v 1.22 2008/03/14 02:56:08 andowson Exp $
 */
package net.jforum.entities;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.jforum.SessionFacade;
import net.jforum.util.preferences.ConfigKeys;
import net.jforum.util.preferences.SystemGlobals;

/**
 * Represents a single user in the system.
 * An user is every person which uses the forum. Well,
 * every registered user. Anonymous users does not have
 * a specific ID, for example. This class contains all information
 * about some user configuration options and preferences.
 * 
 * @author Rafael Steil
 */
public class User implements Serializable
{
	private int id;
	private int themeId;
	private int level;
	private int totalPosts;
	private boolean attachSignatureEnabled = true;
	private int rankId = 1;
	private boolean htmlEnabled = true;
	private boolean bbCodeEnabled = true;
	private boolean smiliesEnabled = true;
	private boolean avatarEnabled = true;
	private boolean privateMessagesEnabled = true;
	private boolean viewOnlineEnabled = true;
	private boolean notifyPrivateMessagesEnabled = true;
	private boolean notifyOnMessagesEnabled = true;
	private boolean notifyAlways;
	private boolean notifyText;
	private String username;
	private String password;
	private Date lastVisit;
	private Date registrationDate;
	private String avatar;
	private boolean isExternalAvatar;
	private String email;
	private String icq;
	private String webSite;
	private String from;
	private String signature;
	private String aim;
	private String yim;
	private String msnm; 
	private String occupation;
	private String interests;
	private String biography;
	private String gender;
	private String timeZone;
	private String lang;
	private String dateFormat;
	private boolean viewEmailEnabled = true;
	private List groupsList;
	private int privateMessagesCount;
	private KarmaStatus karma;
	private int active;
	private String activationKey;
	private int deleted;
	private String firstName;
	private String lastName;
	private Map extra = new HashMap();
	
	public User(int userId)
	{
		this.id = userId;
	}
	
	/**
	 * Default Constructor
	 */
	public User() 
	{
		this.groupsList = new ArrayList(); 
	}
	
	public void addExtra(String name, Object value)
	{
		this.extra.put(name, value);
	}
	
	public Object getExtra(String name)
	{
		return this.extra.get(name);
	}
	
	public void setFirstName(String name)
	{
		this.firstName = name;
	}
	
	public String getFirstName()
	{
		return this.firstName;
	}
	
	public void setLastName(String name)
	{
		this.lastName = name;
	}
	
	public String getLastName()
	{
		return this.lastName;
	}
	
	public String getName()
	{
		return this.firstName + " " + this.lastName;
	}
	
	public boolean isDeleted() {
		return this.deleted == 1;
	}	
	
	public void setDeleted(int deleted){
		this.deleted = deleted;
	}	
	
	/**
	 * Gets the AIM identification
	 * 
	 * @return String with the AIM ID
	 */
	public String getAim() {
		return this.aim;
	}

	/**
	 * Gets the avatar of the user
	 * 
	 * @return String with the avatar
	 */
	public String getAvatar() {
		return this.avatar;
	}

	/**
	 * Checks if avatar is enabled
	 * 
	 * @return boolean value
	 */
	public boolean isAvatarEnabled() {
		return this.avatarEnabled;
	}

	/**
	 * Checks if BB code is enabled
	 * 
	 * @return boolean value
	 */
	public boolean isBbCodeEnabled() {
		return this.bbCodeEnabled;
	}

	/**
	 * Gets the format to represent dates and time
	 * 
	 * @return String with the format
	 */
	public String getDateFormat() {
		return this.dateFormat;
	}

	/**
	 * Gets the user email
	 * 
	 * @return String with the email
	 */
	public String getEmail() {
		return this.email;
	}

	/**
	 * Gets the user location ( where he lives )
	 * 
	 * @return String with the location
	 */
	public String getFrom() {
		return this.from;
	}

	/**
	 * Gets the user gender
	 * 
	 * @return String value. Possible values are <code>M or F
	 */
	public String getGender() {
		return this.gender;
	}

	/**
	 * Checks if HTML code is enabled by default in user messages
	 * 
	 * @return boolean value
	 */
	public boolean isHtmlEnabled() {
		return this.htmlEnabled;
	}

	/**
	 * Gets the ICQ UIM
	 * 
	 * @return String with the UIN
	 */
	public String getIcq() {
		return this.icq;
	}

	/**
	 * Gets the user id
	 * 
	 * @return int value with the id
	 */
	public int getId() {
		return this.id;
	}

	/**
	 * Gets the user interests
	 * 
	 * @return String literal
	 */
	public String getInterests() {
		return this.interests;
	}

	/**
	 * Gets the user language
	 * 
	 * @return String value with the language chosen
	 */
	public String getLang() {
		return this.lang;
	}

	/**
	 * Gets the last visit time the user was in the forum
	 * 
	 * @return long value representing the time
	 */
	public Date getLastVisit() {
		return this.lastVisit;
	}

	/**
	 * Gets the user leve
	 * 
	 * @return int value with the level
	 */
	public int getLevel() {
		return this.level;
	}

	/**
	 * Checks if notification of new private messages is enabled
	 * 
	 * @return boolean value
	 */
	public boolean isNotifyPrivateMessagesEnabled() {
		return this.notifyPrivateMessagesEnabled;
	}

	/**
	 * Gets the OCC 
	 * 
	 * @return String
	 */
	public String getOccupation() {
		return this.occupation;
	}

	/**
	 * Gets the user password
	 * 
	 * @return String with the password ( in plain/text )
	 */
	public String getPassword() {
		return this.password;
	}

	/**
	 * Checks if user permits other people to sent private messages to him
	 * 
	 * @return boolean value
	 */
	public boolean isPrivateMessagesEnabled() {
		return this.privateMessagesEnabled;
	}

	/**
	 * Gets the ranking ID of the user
	 * 
	 * @return int
	 */
	public int getRankId() {
		return this.rankId;
	}

	/**
	 * Gets the registration date of the user
	 * 
	 * @return String value with the registration date
	 */
	public String getRegistrationDate() 
	{
		SimpleDateFormat df = new SimpleDateFormat(SystemGlobals.getValue(ConfigKeys.DATE_TIME_FORMAT));

		return df.format(this.registrationDate);
	}

	/**
	 * Gets the user signature
	 * 
	 * @return String literal with the signature
	 */
	public String getSignature() {
		return this.signature;
	}

	/**
	 * Checks if smilies are enabled
	 * 
	 * @return boolean value
	 */
	public boolean isSmiliesEnabled() {
		return this.smiliesEnabled;
	}
	
	/**
	 * Gets the id of the theme chosen by the user
	 * 
	 * @return int value with the theme ID
	 */
	public int getThemeId() {
		return this.themeId;
	}

	/**
	 * Gets the timezone
	 * 
	 * @return String value with the timezone
	 */
	public String getTimeZone() {
		return this.timeZone;
	}

	/**
	 * Gets the total number of messages posted by the user
	 * 
	 * @return int value with the total of messages
	 */
	public int getTotalPosts() {
		return this.totalPosts;
	}

	/**
	 * Gets the username
	 * 
	 * @return String with the username
	 */
	public String getUsername() {
		return this.username;
	}

	/**
	 * Checks if the user permits other people to see he online
	 * 
	 * @return boolean value
	 */
	public boolean isViewOnlineEnabled() {
		return this.viewOnlineEnabled;
	}

	/**
	 * Gets the user website address
	 * 
	 * @return String with the URL
	 */
	public String getWebSite() {
		return this.webSite;
	}

	/**
	 * Gets the Yahoo messenger ID
	 * 
	 * @return String with the ID
	 */
	public String getYim() {
		return this.yim;
	}

	/**
	 * Is the user's email authenticated?
	 * 
	 * @return integer 1 if true
	 */	
	public boolean isActive(){
		return this.active == 1;
	}
	
	/**
	 * Gets the Yahoo messenger ID
	 * 
	 * @return String with the activation key that is created during user registration
	 */	
	public String getActivationKey(){
		return this.activationKey;
	}
	
	/**
	 * Sets the aim.
	 * 
	 * @param aim The aim ID to set
	 */
	public void setAim(String aim) {
		this.aim = aim;
	}

	/**
	 * Sets the avatar.
	 * 
	 * @param avatar The avatar to set
	 */
	public void setAvatar(String avatar) {
		this.avatar = avatar;
		
		if (avatar != null && avatar.toLowerCase().startsWith("http://")) {
			this.isExternalAvatar = true;
		}
	}

	/**
	 * Indicates if the avatar points to an external URL
	 * @return <code>true if the avatar is some external image
	 */
	public boolean isExternalAvatar() {
		return this.isExternalAvatar;
	}

	/**
	 * Sets avatar status
	 * 
	 * @param avatarEnabled <code>true or false
	 */
	public void setAvatarEnabled(boolean avatarEnabled) {
		this.avatarEnabled = avatarEnabled;
	}

	/**
	 * Sets the status for BB codes
	 * 
	 * @param bbCodeEnabled <code>true or false
	 */
	public void setBbCodeEnabled(boolean bbCodeEnabled) {
		this.bbCodeEnabled = bbCodeEnabled;
	}

	/**
	 * Sets the date format.
	 * 
	 * @param dateFormat The date format to set
	 */
	public void setDateFormat(String dateFormat) {
		this.dateFormat = dateFormat;
	}

	/**
	 * Sets the email.
	 * 
	 * @param email The email to set
	 */
	public void setEmail(String email) {
		this.email = email;
	}

	/**
	 * Sets the user location ( where he lives )
	 * 
	 * @param from The location
	 */
	public void setFrom(String from) {
		this.from = from;
	}

	/**
	 * Sets the gender.
	 * 
	 * @param gender The gender to set. Possible values must be <code>M or F
	 */
	public void setGender(String gender) {
		this.gender = gender;
	}

	/**
	 * Enable or not HTML code into the messages
	 * 
	 * @param htmlEnabled <code>true or false
	 */
	public void setHtmlEnabled(boolean htmlEnabled) {
		this.htmlEnabled = htmlEnabled;
	}

	/**
	 * Sets the icq UIN
	 * 
	 * @param icq The icq to set
	 */
	public void setIcq(String icq) {
		this.icq = icq;
	}

	/**
	 * Sets the user id.
	 * 
	 * @param id The user id to set
	 */
	public void setId(int id) {
		this.id = id;
	}

	/**
	 * Sets the interests.
	 * 
	 * @param interests The interests to set
	 */
	public void setInterests(String interests) {
		this.interests = interests;
	}

	/**
	 * Sets the language.
	 * 
	 * @param lang The lang to set
	 */
	public void setLang(String lang) {
		this.lang = lang;
	}

	/**
	 * Sets the last visit time
	 * 
	 * @param lastVisit Last visit time, represented as a long value
	 */
	public void setLastVisit(Date lastVisit) {
		this.lastVisit = lastVisit;
	}

	/**
	 * Sets the level.
	 * 
	 * @param level The level to set
	 */
	public void setLevel(int level) {
		this.level = level;
	}

	/**
	 * Sets the status for notification of new private messages
	 * 
	 * @param notifyPrivateMessagesEnabled <code>true or false
	 */
	public void setNotifyPrivateMessagesEnabled(boolean notifyPrivateMessagesEnabled) {
		this.notifyPrivateMessagesEnabled = notifyPrivateMessagesEnabled;
	}

	/**
	 * Sets the occ.
	 * 
	 * @param occ The occ to set
	 */
	public void setOccupation(String occupation) {
		this.occupation = occupation;
	}

	/**
	 * Sets the password.
	 * 
	 * @param password The password to set
	 */
	public void setPassword(String password) {
		this.password = password;
	}

	/**
	 * Enable or not private messages to the user
	 * 
	 * @param privateMessagesEnabled <code>true or false
	 */
	public void setPrivateMessagesEnabled(boolean privateMessagesEnabled) {
		this.privateMessagesEnabled = privateMessagesEnabled;
	}

	/**
	 * Sets the ranking id
	 * 
	 * @param rankId The id of the ranking
	 */
	public void setRankId(int rankId) {
		this.rankId = rankId;
	}

	/**
	 * Sets the registration date.
	 * 
	 * @param registrationDate The registration date to set
	 */
	public void setRegistrationDate(Date registrationDate) {
		this.registrationDate = registrationDate;
	}

	/**
	 * Sets the signature.
	 * 
	 * @param signature The signature to set
	 */
	public void setSignature(String signature) {
		this.signature = signature;
	}

	/**
	 * Enable or not smilies in messages
	 * 
	 * @param smilesEnabled <code>true or false
	 */
	public void setSmiliesEnabled(boolean smilesEnabled) {
		this.smiliesEnabled = smilesEnabled;
	}

	/**
	 * Sets the theme id
	 * 
	 * @param themeId The theme Id to set
	 */
	public void setThemeId(int themeId) {
		this.themeId = themeId;
	}

	/**
	 * Sets the Timezone.
	 * 
	 * @param timeZone The Timezone to set
	 */
	public void setTimeZone(String timeZone) {
		this.timeZone = timeZone;
	}

	/**
	 * Sets the total number of posts by the user
	 * 
	 * @param totalPosts int value with the total of messages posted by the user
	 */
	public void setTotalPosts(int totalPosts) {
		this.totalPosts = totalPosts;
	}

	/**
	 * Sets the username.
	 * 
	 * @param username The username to set
	 */
	public void setUsername(String username) {
		this.username = username;
	}

	/**
	 * Sets the viewOnlineEnabled.
	 * @param viewOnlineEnabled The viewOnlineEnabled to set
	 */
	public void setViewOnlineEnabled(boolean viewOnlineEnabled) {
		this.viewOnlineEnabled = viewOnlineEnabled;
	}

	/**
	 * Sets the webSite.
	 * 
	 * @param webSite The webSite to set
	 */
	public void setWebSite(String webSite) {
		this.webSite = webSite;
	}

	/**
	 * Sets the Yahoo messenger ID
	 * 
	 * @param yim The yim to set
	 */
	public void setYim(String yim) {
		this.yim = yim;
	}

	/**
	 * @return
	 */
	public String getMsnm() {
		return this.msnm;
	}

	/**
	 * @param string
	 */
	public void setMsnm(String string) {
		this.msnm = string;
	}

	/**
	 * @return
	 */
	public boolean isNotifyOnMessagesEnabled() {
		return this.notifyOnMessagesEnabled;
	}

	/**
	 * @param b
	 */
	public void setNotifyOnMessagesEnabled(boolean b) {
		this.notifyOnMessagesEnabled = b;
	}

	/**
	 * @return
	 */
	public boolean isViewEmailEnabled() {
		return this.viewEmailEnabled;
	}

	/**
	 * @param b
	 */
	public void setViewEmailEnabled(boolean b) {
		this.viewEmailEnabled = b;
	}

	/**
	 * @return
	 */
	public boolean getAttachSignatureEnabled() {
		return this.attachSignatureEnabled;
	}

	/**
	 * @param b
	 */
	public void setAttachSignatureEnabled(boolean b) {
		this.attachSignatureEnabled = b;
	}

	/**
	 * @return
	 */
	public List getGroupsList() {
		return this.groupsList;
	}

	/**
	 * @return Returns the privateMessagesCount.
	 */
	public int getPrivateMessagesCount()
	{
		return this.privateMessagesCount;
	}
	/**
	 * @param privateMessagesCount The privateMessagesCount to set.
	 */
	public void setPrivateMessagesCount(int privateMessagesCount)
	{
		this.privateMessagesCount = privateMessagesCount;
	}
	/**
	 * @return Returns the hasPrivateMessages.
	 */
	public boolean hasPrivateMessages()
	{
		return this.privateMessagesCount > 0;
	}
	
	/**
	 * Set when user authenticates his email after user registration
	*/
	public void setActive(int active){
		this.active = active;
	}
	
	public void setActivationKey(String activationKey){
		this.activationKey = activationKey;
	}
	
	public void setKarma(KarmaStatus karma)
	{
		this.karma = karma;
	}
	
	public KarmaStatus getKarma()
	{
		return this.karma;
	}
	
	/**
	 * Is the user online?
	 * 
	 * @return true if user is in Session
	 */	
	public boolean isOnline()
	{
		return (SessionFacade.isUserInSession(this.id) != null);
	}

	/**
	 * Gets the user's biography
	 * @return the user biography
	 */
	public String getBiography() {
		return biography;
	}

	/**
	 * Sets the user's biography
	 * @param biography the user's biography
	 */
	public void setBiography(String biography) {
		this.biography = biography;
	}

	/**
	 * @return the notifyAlways
	 */
	public boolean notifyAlways()
	{
		return this.notifyAlways;
	}

	/**
	 * @return the notifyText
	 */
	public boolean notifyText()
	{
		return this.notifyText;
	}

	/**
	 * @param notifyAlways the notifyAlways to set
	 */
	public void setNotifyAlways(boolean notifyAlways)
	{
		this.notifyAlways = notifyAlways;
	}

	/**
	 * @param notifyText the notifyText to set
	 */
	public void setNotifyText(boolean notifyText)
	{
		this.notifyText = notifyText;
	}
}

Other jforum examples (source code examples)

Here is a short list of links related to this jforum User.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.