/* Jug Management is a web application conceived to manage user groups or * communities focused on a certain domain of knowledge, whose members are * constantly sharing information and participating in social and educational * events. Copyright (C) 2011 Ceara Java User Group - CEJUG. * * This application is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by the * Free Software Foundation; either version 2.1 of the License, or (at your * option) any later version. * * This application 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 Lesser General Public * License for more details. * * There is a full copy of the GNU Lesser General Public License along with * this library. Look for the file license.txt at the root level. If you do not * find it, write to the Free Software Foundation, Inc., 59 Temple Place, * Suite 330, Boston, MA 02111-1307 USA. * */ package org.cejug.yougi.event.entity; import java.io.Serializable; import java.util.Date; import java.util.List; import javax.persistence.*; import org.cejug.yougi.entity.Identified; /** * * @author Hildeberto Mendonca - http://www.hildeberto.com */ @Entity @Table(name = "event_session") public class EventSession implements Serializable, Identified { private static final long serialVersionUID = 1L; @Id private String id; @ManyToOne @JoinColumn(name="event", nullable=false) private Event event; @Column(nullable=false) private String title; @Column(name="abstract") private String abstr; private String topics; @Column(name = "session_date") @Temporal(TemporalType.DATE) private Date sessionDate; @Column(name = "start_time") @Temporal(TemporalType.TIME) private Date startTime; @Column(name = "end_time") @Temporal(TemporalType.TIME) private Date endTime; private String room; @OneToMany(mappedBy="session", fetch= FetchType.EAGER) private List<Speaker> speakers; public EventSession() { } public EventSession(String id) { this.id = id; } @Override public String getId() { return id; } @Override public void setId(String id) { this.id = id; } public Event getEvent() { return event; } public void setEvent(Event event) { this.event = event; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAbstract() { return abstr; } public void setAbstract(String abstr) { this.abstr = abstr; } public String getTopics() { return topics; } public void setTopics(String topics) { this.topics = topics; } public Date getSessionDate() { return sessionDate; } public void setSessionDate(Date sessionDate) { this.sessionDate = sessionDate; } public Date getStartTime() { return startTime; } public void setStartTime(Date startTime) { this.startTime = startTime; } public Date getEndTime() { return endTime; } public void setEndTime(Date endTime) { this.endTime = endTime; } public String getRoom() { return room; } public void setRoom(String room) { this.room = room; } /** * @return At least one speaker that is alocated in this event session to * give a speech. */ public List<Speaker> getSpeakers() { return speakers; } public String getSpeakersName() { if(speakers == null || speakers.isEmpty()) { return ""; } StringBuilder speakersName = new StringBuilder(); String separator = ""; for(Speaker speaker: speakers) { speakersName.append(separator); speakersName.append(speaker.toString()); separator = ", "; } return speakersName.toString(); } public void setSpeakers(List<Speaker> speakers) { this.speakers = speakers; } @Override public int hashCode() { int hash = 0; hash += (id != null ? id.hashCode() : 0); return hash; } @Override public boolean equals(Object object) { // TODO: Warning - this method won't work in the case the id fields are not set if (!(object instanceof EventSession)) { return false; } EventSession other = (EventSession) object; if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { return false; } return true; } @Override public String toString() { return this.title; } }