package com.renaghan.notes2cloud; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.HashSet; import java.util.Set; /** * meta data for a notes mail message * * @author prenagha */ public class NotesMailMeta { private static final Set<String> EXCLUDE = new HashSet<String>(); static { EXCLUDE.add("210"); EXCLUDE.add("11"); EXCLUDE.add("212"); EXCLUDE.add("196"); EXCLUDE.add("205"); EXCLUDE.add("194"); EXCLUDE.add("200"); EXCLUDE.add("202"); EXCLUDE.add("198"); EXCLUDE.add("123"); EXCLUDE.add("157"); EXCLUDE.add("195"); EXCLUDE.add("197"); } private final String id; private final String type; private final Calendar date; private final String subject; public NotesMailMeta(String id, String type, Calendar date, String subject) { this.id = id; this.type = type; this.date = date; this.subject = subject; } public String getId() { return id; } public String getType() { return type; } public Calendar getDate() { return date; } public String getSubject() { return subject; } public String getFileName() { return String.valueOf(date.getTimeInMillis()) + "-" + id + "-notes"; } public String getIMAPFileName() { return getFileName() + ":2,S"; } public boolean isExport() { return type != null && !EXCLUDE.contains(type); } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; NotesMailMeta that = (NotesMailMeta) o; return id.equals(that.id); } @Override public int hashCode() { return id.hashCode(); } @Override public String toString() { final StringBuilder sb = new StringBuilder(); sb.append("Msg"); sb.append("{"); sb.append(new SimpleDateFormat("yyyyMMdd HH:mm:ss").format(date.getTime())); sb.append(" type=").append(type); sb.append(", ").append(subject); sb.append(", ").append(id); sb.append('}'); return sb.toString(); } }