/* * Copyright 2006-2010 Daniel Henninger. All rights reserved. * * This software is published under the terms of the GNU Public License (GPL), * a copy of which is included in this distribution. */ package net.sf.kraken.protocols.xmpp.packet; import net.sf.kraken.util.StringUtils; import java.util.Date; import java.util.ArrayList; import java.util.List; /** * See: http://code.google.com/apis/talk/jep_extensions/gmail.html * * @author mecevit * @author Daniel Henninger */ public class GoogleMailThread { private Long threadId; private Integer numParticipants; private Integer numMessages; private Date date; private String url; private List<GoogleMailSender> senders; private List<String> labels; private String subject; private String snippit; public GoogleMailThread(Long threadId, Integer numParticipants, Integer numMessages, Date date, String url, ArrayList<GoogleMailSender> senders, ArrayList<String> labels, String subject, String snippit) { this.setThreadId(threadId); this.setNumParticipants(numParticipants); this.setNumMessages(numMessages); this.setDate(date); this.setUrl(url); this.setSenders(senders); this.setLabels(labels); this.setSubject(subject); this.setSnippit(snippit); } public Long getThreadId() { return threadId; } public void setThreadId(Long threadId) { this.threadId = threadId; } public Integer getNumParticipants() { return numParticipants; } public void setNumParticipants(Integer numParticipants) { this.numParticipants = numParticipants; } public Integer getNumMessages() { return numMessages; } public void setNumMessages(Integer numMessages) { this.numMessages = numMessages; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public List<GoogleMailSender> getSenders() { return senders; } public void setSenders(List<GoogleMailSender> senders) { this.senders = senders; } public List<String> getLabels() { return labels; } public void setLabels(List<String> labels) { this.labels = labels; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getSnippit() { return snippit; } public void setSnippit(String snippit) { this.snippit = snippit; } public String toXML() { StringBuffer buf = new StringBuffer(); buf.append("<mail-thread-info"); if (threadId != null) { buf.append(" tid=\"").append(threadId).append("\""); } if (numParticipants != null) { buf.append(" participation=\"").append(numParticipants).append("\""); } if (numMessages != null) { buf.append(" messages=\"").append(numMessages).append("\""); } if (date != null) { buf.append(" date=\"").append(date.getTime()).append("\""); } if (url != null) { buf.append(" url=\"").append(url).append("\""); } buf.append(">"); buf.append("<senders>"); for (GoogleMailSender sender : senders) { buf.append(sender.toXML()); } buf.append("</senders>"); buf.append("<labels>").append(StringUtils.join(labels, "|")).append("</labels>"); buf.append("<subject>").append(subject).append("</subject>"); buf.append("<snippit>").append(snippit).append("</snippit>"); buf.append("</mail-thread-info>"); return buf.toString(); } }