package no.java.incogito.dto; import fj.data.Option; import static no.java.incogito.dto.DtoUtil.toList; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; import javax.xml.datatype.XMLGregorianCalendar; import java.util.ArrayList; import java.util.List; /** * @author <a href="mailto:trygvis@java.no">Trygve Laugstøl</a> * @version $Id$ */ @XmlRootElement(name = "session") public class SessionXml { @XmlType(name = "type") @XmlEnum(String.class) public enum FormatXml { Presentation, Quickie, BoF } public String selfUri; public String sessionHtmlUrl; public String id; public FormatXml format; public String title; public String bodyHtml; public LevelXml level; public String room; public XMLGregorianCalendar start; public XMLGregorianCalendar end; public List<SpeakerXml> speakers = new ArrayList<SpeakerXml>(); public List<LabelXml> labels = new ArrayList<LabelXml>(); public SessionXml() { } public SessionXml(String selfUri, String sessionHtmlUrl, FormatXml format, String id, String title, Option<String> bodyHtml, Option<LevelXml> level, Option<String> room, Option<XMLGregorianCalendar> start, Option<XMLGregorianCalendar> end, Iterable<SpeakerXml> speakers, Iterable<LabelXml> labels) { this.selfUri = selfUri; this.sessionHtmlUrl = sessionHtmlUrl; this.id = id; this.format = format; this.title = title; this.bodyHtml = bodyHtml.orSome((String) null); this.level = level.orSome((LevelXml) null); this.room = room.orSome((String) null); this.start = start.orSome((XMLGregorianCalendar) null); this.end = end.orSome((XMLGregorianCalendar) null); this.speakers = toList(speakers); this.labels = toList(labels); } public String getSelfUri() { return selfUri; } public String getSessionHtmlUrl() { return sessionHtmlUrl; } public String getId() { return id; } public FormatXml getFormat() { return format; } public String getTitle() { return title; } public String getBodyHtml() { return bodyHtml; } public LevelXml getLevel() { return level; } public String getRoom() { return room; } public XMLGregorianCalendar getStart() { return start; } public XMLGregorianCalendar getEnd() { return end; } public List<SpeakerXml> getSpeakers() { return speakers; } public List<LabelXml> getLabels() { return labels; } }