/* * Copyright (C) 2008-2017, Juick * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program 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 Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ package com.juick; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import org.apache.commons.lang3.builder.ToStringBuilder; import javax.annotation.Nonnull; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Objects; /** * @author Ugnich Anton */ @XmlRootElement(name = "user", namespace = "http://juick.com/user") @XmlAccessorType() public class User { private int uid; private String name; private Object avatar; private String fullName; private int messagesCount; private String authHash; private boolean banned; private String credentials; private String lang; private List tokens; private List read; private List readers; private List unread; public User() { tokens = new ArrayList<>(); } @Override public boolean equals(Object obj) { return obj == this || (obj instanceof User && ((User) obj).getUid() == this.getUid()); } @Override public int hashCode() { return Objects.hash(uid); } @Override public String toString() { return new ToStringBuilder(this) .append("uid", uid) .append("name", name) .append("fullName", fullName) .append("messagesCount", messagesCount) .append("lang", lang) .append("banned", banned) .toString(); } @JsonProperty("uid") @XmlAttribute(name = "uid") public int getUid() { return uid; } public void setUid(int uid) { this.uid = uid; } @JsonProperty("uname") @XmlAttribute(name = "uname") public String getName() { return name; } public void setName(String name) { this.name = name; } @JsonProperty("fullname") @XmlTransient public String getFullName() { return fullName; } public void setFullName(String fullName) { this.fullName = fullName; } @XmlTransient @JsonIgnore public String getAuthHash() { return authHash; } public void setAuthHash(String authHash) { this.authHash = authHash; } @JsonProperty("unreadCount") @XmlTransient public Integer getUnreadCount() { return messagesCount; } public void setUnreadCount(Integer count) { this.messagesCount = count; } @XmlTransient public boolean isBanned() { return banned; } public void setBanned(boolean banned) { this.banned = banned; } public Object getAvatar() { return avatar; } public void setAvatar(Object avatar) { this.avatar = avatar; } @XmlTransient @JsonIgnore public String getCredentials() { return credentials; } public void setCredentials(String credentials) { this.credentials = credentials; } public String getLang() { return lang; } public void setLang(String lang) { this.lang = lang; } @XmlTransient public int getMessagesCount() { return messagesCount; } public void setMessagesCount(int messagesCount) { this.messagesCount = messagesCount; } @XmlTransient @JsonIgnore public boolean isAnonymous() { return false; } @Nonnull public List getTokens() { return tokens; } public void setTokens(List tokens) { this.tokens = tokens; } public List getRead() { return read; } public List getReaders() { return readers; } public void setRead(List read) { this.read = read; } public void setReaders(List readers) { this.readers = readers; } public List getUnread() { return unread; } public void setUnread(List unread) { this.unread = unread; } }