reshuffling of file locations to make package structure flatter
[org.ibex.mail.git] / src / org / ibex / mail / Mailbox.java
similarity index 94%
rename from src/org/ibex/mail/target/Mailbox.java
rename to src/org/ibex/mail/Mailbox.java
index 8ad3c14..6905692 100644 (file)
@@ -2,7 +2,7 @@
 // Licensed under the Apache Public Source License 2.0 ("the License").
 // You may not use this file except in compliance with the License.
 
-package org.ibex.mail.target;
+package org.ibex.mail;
 import org.ibex.mail.*;
 import org.ibex.util.*;
 import org.ibex.mail.*;
@@ -30,6 +30,7 @@ public abstract class Mailbox extends JS.Obj implements Target {
     public abstract Mailbox.Iterator iterator(Query q);
 
     public abstract void             insert(Message message, int flags);
+    public abstract void             post(Message message);
     public abstract void             move(Query q, Mailbox dest);
     public abstract void             copy(Query q, Mailbox dest);
     public abstract int              count(Query q);
@@ -60,14 +61,14 @@ public abstract class Mailbox extends JS.Obj implements Target {
         public void  destroy(boolean recursive) { throw new MailException("not supported"); }
         public Mailbox slash(String name, boolean create) { return null; }
         public String[] children() { return new String[] { }; }
+        public void post(Message message) { insert(message, Flag.RECENT); }
         public void move(Query q, Mailbox dest) {
             for(Mailbox.Iterator it = iterator(q);it.next();) { dest.insert(it.cur(), it.getFlags()); it.delete(); }
         }
         public static abstract class Iterator implements Mailbox.Iterator {
             public int     nntpNumber() { throw new MailException("not supported"); }
             public int     getFlags() { return 0; }
-            public boolean getFlag(int flag) { return false; }
-            public void    setFlag(int flag, boolean set) { throw new RuntimeException("not implemented"); }
+            public void    setFlags(int flags) { throw new MailException("not supported"); }
         }
     }
 
@@ -101,8 +102,7 @@ public abstract class Mailbox extends JS.Obj implements Target {
         public abstract int     nntpNumber();
 
         public abstract int     getFlags();
-        public abstract boolean getFlag(int flag);
-        public abstract void    setFlag(int flag, boolean set);
+        public abstract void    setFlags(int flags);
 
         public static class Wrapper implements Iterator {
             private Iterator it;
@@ -115,8 +115,7 @@ public abstract class Mailbox extends JS.Obj implements Target {
             public int     imapNumber() { return it.imapNumber(); }
             public void    delete() { it.delete(); }
             public int     getFlags() { return it.getFlags(); }
-            public boolean getFlag(int flag) { return it.getFlag(flag); }
-            public void    setFlag(int flag, boolean set) { it.setFlag(flag, set); }
+            public void    setFlags(int flags) { it.setFlags(flags); }
         }
 
         class QueryIterator extends Mailbox.Iterator.Wrapper {
@@ -159,6 +158,7 @@ public abstract class Mailbox extends JS.Obj implements Target {
         public boolean          phantom() { return m.phantom(); }
         public Mailbox.Iterator iterator(Query q) { return m.iterator(q); }
         public void             insert(Message message, int flags) { m.insert(message, flags); }
+        public void             post(Message message) { m.insert(message, Flag.RECENT); }
         public void             move(Query q, Mailbox dest) { m.move(q, dest); }
         public void             copy(Query q, Mailbox dest) { m.copy(q, dest); }
         public int              count(Query q) { return m.count(q); }