// folded headers: can insert CRLF anywhere that whitespace appears (before the whitespace)
// date/time parsing: see spec, 3.3
-// FEATURE: MIME RFC2045, 2046, 2049
// FEATURE: PGP-signature-parsing
// FEATURE: mailing list header parsing
// FEATURE: delivery status notification (and the sneaky variety)
// FEATURE: threading as in http://www.jwz.org/doc/threading.html
+// FEATURE: lazy body
+/**
+ * [immutable] This class encapsulates a message "floating in the
+ * ether": RFC2822 data but no storage-specific flags or other
+ * metadata.
+ */
public class Message extends JSReflection {
+ public static interface Visitor { public abstract void visit(Message m); }
+
+ // FIXME make this immutable
private static class CaseInsensitiveHash extends Hashtable {
public Object get(Object o) {
if (o instanceof String) return super.get(((String)o).toLowerCase());