package com.proudcase.persistence; import com.google.code.morphia.annotations.*; import com.proudcase.constants.EPrivileges; import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Objects; import org.bson.types.ObjectId; /** * Copyright © 03.07.2013 Michel Vocks * This file is part of proudcase. * proudcase is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * proudcase is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with proudcase. If not, see <http://www.gnu.org/licenses/>. /** * @Author: Michel Vocks * * @Date: 03.07.2013 * * @Encoding: UTF-8 */ @Entity public class UserBean implements Serializable { @Id private ObjectId id; @Reference private ImageBean avatar; @Indexed private List<ObjectId> friendRelations; @Indexed private String username; private String password; private String firstname; private String lastname; private EPrivileges userPrivs; private ObjectId rememberLogin; private Locale preferredLanguage; private String displayname; private Date birthdate; private String homepageurl; private String icqnumber; private String aimname; private String msnname; private String skypename; private String jobname; private String interestedin; private String livingplace; private String companyname; private Date lastlogin; private long personalrating; private boolean locked; private ObjectId registrationcode; private boolean activated; public UserBean() { this.birthdate = new Date(); this.lastlogin = new Date(); this.preferredLanguage = Locale.ENGLISH; this.locked = false; this.activated = false; this.registrationcode = new ObjectId(); this.friendRelations = new ArrayList<>(); userPrivs = EPrivileges.user; } @PrePersist void prePersist() { // update last login lastlogin = new Date(); } @Override public String toString() { String nameToDisplay = null; // firstname and lastname available? if (firstname != null && firstname.length() > 0 && lastname != null && lastname.length() > 0) { nameToDisplay = firstname + " " + lastname; } // display name has second highest priority if (displayname != null && displayname.length() > 0 && nameToDisplay == null) { nameToDisplay = displayname; } // company has last priority if (companyname != null && companyname.length() > 0 && nameToDisplay == null) { nameToDisplay = companyname; } // something wrong here :0 if (nameToDisplay == null) { nameToDisplay = "Anonymus"; } // return the name return nameToDisplay; } @Override public int hashCode() { int hash = 3; hash = 71 * hash + Objects.hashCode(this.id); return hash; } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final UserBean other = (UserBean) obj; return Objects.equals(this.id, other.id); } public ObjectId getId() { return id; } public void setId(ObjectId id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public ObjectId getRememberLogin() { return rememberLogin; } public void setRememberLogin(ObjectId rememberLogin) { this.rememberLogin = rememberLogin; } public String getFirstname() { return firstname; } public void setFirstname(String firstname) { this.firstname = firstname; } public String getLastname() { return lastname; } public void setLastname(String lastname) { this.lastname = lastname; } public String getAimname() { return aimname; } public void setAimname(String aimname) { this.aimname = aimname; } public Date getBirthdate() { return birthdate; } public void setBirthdate(Date birthdate) { this.birthdate = birthdate; } public String getCompanyname() { return companyname; } public void setCompanyname(String companyname) { this.companyname = companyname; } public String getDisplayname() { return displayname; } public void setDisplayname(String displayname) { this.displayname = displayname; } public String getHomepageurl() { return homepageurl; } public void setHomepageurl(String homepageurl) { this.homepageurl = homepageurl; } public String getIcqnumber() { return icqnumber; } public void setIcqnumber(String icqnumber) { this.icqnumber = icqnumber; } public ImageBean getAvatar() { return avatar; } public void setAvatar(ImageBean avatar) { this.avatar = avatar; } public String getInterestedin() { return interestedin; } public void setInterestedin(String interestedin) { this.interestedin = interestedin; } public String getJobname() { return jobname; } public void setJobname(String jobname) { this.jobname = jobname; } public String getLivingplace() { return livingplace; } public void setLivingplace(String livingplace) { this.livingplace = livingplace; } public String getMsnname() { return msnname; } public void setMsnname(String msnname) { this.msnname = msnname; } public String getSkypename() { return skypename; } public void setSkypename(String skypename) { this.skypename = skypename; } public Date getLastlogin() { return lastlogin; } public void setLastlogin(Date lastlogin) { this.lastlogin = lastlogin; } public List<ObjectId> getFriendRelations() { return friendRelations; } public void setFriendRelations(List<ObjectId> friendRelations) { this.friendRelations = friendRelations; } public Locale getPreferredLanguage() { return preferredLanguage; } public void setPreferredLanguage(Locale preferredLanguage) { this.preferredLanguage = preferredLanguage; } public long getPersonalrating() { return personalrating; } public void setPersonalrating(long personalrating) { this.personalrating = personalrating; } public void increasePersonalRating(int pointsToIncrease) { this.personalrating += pointsToIncrease; } public boolean isLocked() { return locked; } public void setLocked(boolean locked) { this.locked = locked; } public ObjectId getRegistrationcode() { return registrationcode; } public void setRegistrationcode(ObjectId registrationcode) { this.registrationcode = registrationcode; } public EPrivileges getUserPrivs() { return userPrivs; } public void setUserPrivs(EPrivileges userPrivs) { this.userPrivs = userPrivs; } public boolean isActivated() { return activated; } public void setActivated(boolean activated) { this.activated = activated; } }