restructuring; broke out Query, cleaned up Mailbox
[org.ibex.mail.git] / src / org / ibex / mail / Message.java
index 5ee6864..9e2105b 100644 (file)
@@ -11,14 +11,22 @@ import java.io.*;
 // 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());