package persistency.exposed.json;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import javax.swing.text.DateFormatter;
import persistency.entities.Session;
import persistency.entities.Speaker;
import persistency.exposed.SpeakerExposed;
/**
* Entity implementation class for Entity: Session
*
*/
public class SessionJson {
private int id;
private String name;
private String description;
private String secretWord;
private boolean isSelected = false;
private int startTime;
private int duration;
private String room;
private List<String> tags = new ArrayList<String>();
private String searchTerms;
private String startTimeString;
private int userRating = 0;
private int sessionRating = 0;
private int totalRating = 0;
private int timesRated = 0;
private List<SpeakerJson> speakers;
private int views = 0;
private String date;
private String track;
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String Name) {
this.name = Name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public List<SpeakerJson> getSpeakers() {
return speakers;
}
public void setSpeakers(List<SpeakerJson> speakers) {
this.speakers = speakers;
}
public int getStartTime() {
return startTime;
}
public void setStartTime(int startTime) {
this.startTime = startTime;
}
public int getDuration() {
return duration;
}
public void setDuration(int duration) {
this.duration = duration;
}
public String getRoom() {
return room;
}
public void setRoom(String room) {
this.room = room;
}
public List<String> getTags() {
return tags;
}
public void setTags(List<String> tags) {
this.tags = tags;
}
public boolean isSelected() {
return isSelected;
}
public void setSelected(boolean isSelected) {
this.isSelected = isSelected;
}
public int getViews() {
return views;
}
public void setViews(int views) {
this.views = views;
}
public int getUserRating() {
return userRating;
}
public void setUserRating(int userRating) {
this.userRating = userRating;
}
public int getSessionRating() {
return sessionRating;
}
public void setSessionRating(int sessionRating) {
this.sessionRating = sessionRating;
}
public int getTotalRating() {
return totalRating;
}
public void setTotalRating(int totalRating) {
this.totalRating = totalRating;
}
public int getTimesRating() {
return timesRated;
}
public void setTimesRating(int timesRating) {
this.timesRated = timesRating;
}
public void addToTotalRating(int rate) {
this.totalRating += rate;
timesRated++;
}
public String getSecretWord() {
return secretWord;
}
public void setSecretWord(String secretWord) {
this.secretWord = secretWord;
}
public String getSearchTerms() {
return searchTerms;
}
public void setSearchTerms(String searchTerms) {
this.searchTerms = searchTerms;
}
public String getStartTimeString() {
return startTimeString;
}
public void setStartTimeString(String startTimeString) {
this.startTimeString = startTimeString;
}
public Session toEntity() throws ParseException{
Session result = new Session();
result.setId(id);
result.setDescription(description);
result.setDuration(duration);
result.setName(name);
result.setRoom(room);
result.setStartTime(startTime);
result.setStartTimeString(startTimeString);
result.setTags(tags);
result.setSpeakers(computeSpeakers(speakers));
result.setTrack(getTrack());
result.setDate((new SimpleDateFormat("d.MM.yyyy")).parse(getDate()));
return result;
}
private List<Speaker> computeSpeakers(List<SpeakerJson> speakers2) {
List<Speaker> result = new ArrayList<Speaker>();
SpeakerExposed se = new SpeakerExposed();
for (SpeakerJson speakerJson : speakers2) {
if(speakerJson.getId().length() == 0){
continue;
}
Speaker userById = se.findUserById(speakerJson.getId());
if(userById != null){
result.add(userById);
}
}
return result;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getTrack() {
return track;
}
public void setTrack(String track) {
this.track = track;
}
}