/* * Copyright (c) JForum Team. All rights reserved. * * The software in this package is published under the terms of the LGPL * license a copy of which has been included with this distribution in the * license.txt file. * * The JForum Project * http://www.jforum.net */ package net.jforum.entities; import java.io.Serializable; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.SequenceGenerator; import javax.persistence.Table; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import br.com.caelum.vraptor.ioc.Component; import br.com.caelum.vraptor.ioc.PrototypeScoped; /** * @author Bill */ @Entity @Table(name = "jforum_avatar") @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) @Component @PrototypeScoped public class Avatar implements Serializable { @Id @SequenceGenerator(name = "sequence", sequenceName = "jforum_avatar_seq") @GeneratedValue(strategy = GenerationType.AUTO, generator = "sequence") @Column(name = "id") private int id; @Column(name = "file_name") private String fileName; @Column(name = "avatar_type", updatable = false) @Enumerated(EnumType.STRING) private AvatarType avatarType = AvatarType.AVATAR_GALLERY; @Column(name = "width") private int width; @Column(name = "height") private int height; @OneToMany(mappedBy = "avatar", fetch = FetchType.LAZY) private Set<User> users; public Set<User> getUsers() { return users; } public void setUsers(Set<User> users) { this.users = users; } public User getUploadedBy(){ if (avatarType == AvatarType.AVATAR_UPLOAD && users != null && users.size( ) == 1) { return users.iterator().next(); } return null; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public Integer getWidth() { return width; } public void setWidth(Integer width) { this.width = width; } public Integer getHeight() { return height; } public void setHeight(Integer height) { this.height = height; } public AvatarType getAvatarType() { return avatarType; } public void setAvatarType(AvatarType avatarType) { this.avatarType = avatarType; } @Override public String toString() { return fileName; } @Override public int hashCode() { return Integer.valueOf(this.id).hashCode(); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } Avatar other = (Avatar) obj; if (id != other.id) { return false; } return true; } }