You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rd...@apache.org on 2008/12/29 11:44:49 UTC

svn commit: r729858 - in /james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa: ./ om/ om/map/

Author: rdonkin
Date: Mon Dec 29 02:44:48 2008
New Revision: 729858

URL: http://svn.apache.org/viewvc?rev=729858&view=rev
Log:
Move more queries into mappers

Added:
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageMapper.java
Removed:
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPACriteriaBuilder.java
Modified:
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/Init.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxMapper.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxRow.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageBodyPeer.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageFlagsPeer.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MailboxRowMapBuilder.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageBodyMapBuilder.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageFlagsMapBuilder.java

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java?rev=729858&r1=729857&r2=729858&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java Mon Dec 29 02:44:48 2008
@@ -42,8 +42,8 @@
 import org.apache.james.imap.jpa.om.MailboxRow;
 import org.apache.james.imap.jpa.om.MessageBody;
 import org.apache.james.imap.jpa.om.MessageFlags;
-import org.apache.james.imap.jpa.om.MessageFlagsPeer;
 import org.apache.james.imap.jpa.om.MessageHeader;
+import org.apache.james.imap.jpa.om.MessageMapper;
 import org.apache.james.imap.jpa.om.MessageRow;
 import org.apache.james.imap.jpa.om.MessageRowPeer;
 import org.apache.james.mailboxmanager.MailboxListener;
@@ -83,6 +83,7 @@
     private final MessageSearches searches;
     
     private final MailboxMapper mapper;
+    private final MessageMapper messageMapper;
 
     JPAMailbox(final MailboxRow mailboxRow, final ReadWriteLock lock,
             final Log log) {
@@ -92,6 +93,7 @@
         this.tracker = new UidChangeTracker(mailboxRow.getLastUid());
         this.lock = lock;
         this.mapper = new MailboxMapper();
+        this.messageMapper = new MessageMapper();
     }
 
     public synchronized String getName() {
@@ -250,34 +252,6 @@
         return myMailboxRow;
     }
 
-    private Criteria criteriaForMessageSet(MessageRange set)
-            throws MailboxManagerException {
-        Criteria criteria = new Criteria();
-        criteria.addAscendingOrderByColumn(MessageRowPeer.UID);
-        if (set.getType() == MessageRange.TYPE_ALL) {
-            // empty Criteria = everything
-        } else if (set.getType() == MessageRange.TYPE_UID) {
-
-            if (set.getUidFrom() == set.getUidTo()) {
-                criteria.add(MessageRowPeer.UID, set.getUidFrom());
-            } else {
-                Criteria.Criterion criterion1 = criteria.getNewCriterion(
-                        MessageRowPeer.UID, new Long(set.getUidFrom()),
-                        Criteria.GREATER_EQUAL);
-                if (set.getUidTo() > 0) {
-                    Criteria.Criterion criterion2 = criteria.getNewCriterion(
-                            MessageRowPeer.UID, new Long(set.getUidTo()),
-                            Criteria.LESS_EQUAL);
-                    criterion1.and(criterion2);
-                }
-                criteria.add(criterion1);
-            }
-        } else {
-            throw new MailboxManagerException("Unsupported MessageSet: "
-                    + set.getType());
-        }
-        return criteria;
-    }
 
     public Iterator getMessages(final MessageRange set, FetchGroup fetchGroup,
             MailboxSession mailboxSession) throws MailboxManagerException {
@@ -287,10 +261,9 @@
                 checkAccess();
                 UidRange range = uidRangeForMessageSet(set);
                 try {
-                    Criteria c = criteriaForMessageSet(set);
-                    c.add(MessageFlagsPeer.MAILBOX_ID, getMailboxRow()
-                            .getMailboxId());
-                    return getMessages(fetchGroup, range, c);
+                    final long mailboxId = getMailboxRow().getMailboxId();
+                    List rows = mapper.findInMailbox(set, mailboxId);
+                    return getMessages(fetchGroup, range, rows);
                 } catch (TorqueException e) {
                     throw new MailboxManagerException(e);
                 } catch (MessagingException e) {
@@ -304,10 +277,8 @@
         }
     }
 
-    private JPAResultIterator getMessages(FetchGroup result, UidRange range,
-            Criteria c) throws TorqueException, MessagingException,
-            MailboxManagerException {
-        List rows = MessageRowPeer.doSelectJoinMessageFlags(c);
+    private JPAResultIterator getMessages(FetchGroup result, UidRange range,List rows) 
+                throws TorqueException, MessagingException, MailboxManagerException {
         final JPAResultIterator results = getResults(result, rows);
         getUidChangeTracker().found(range, results.getMessageFlags());
         return results;
@@ -355,9 +326,8 @@
             lock.readLock().acquire();
             try {
                 checkAccess();
-                final Criteria criterion = queryRecentFlagSet();
-                final List messageRows = getMailboxRow().getMessageRows(
-                        criterion);
+                final MailboxRow mailboxRow = getMailboxRow();
+                final List messageRows = messageMapper.findRecent(mailboxRow);
                 final long[] results = new long[messageRows.size()];
                 int count = 0;
                 for (Iterator it = messageRows.iterator(); it.hasNext();) {
@@ -366,7 +336,7 @@
                 }
 
                 if (reset) {
-                    getMailboxRow().resetRecent();
+                    mailboxRow.resetRecent();
                 }
                 return results;
             } catch (TorqueException e) {
@@ -380,16 +350,7 @@
 
     }
 
-    private Criteria queryRecentFlagSet() {
-        final Criteria criterion = new Criteria();
-        criterion.addJoin(MessageFlagsPeer.MAILBOX_ID,
-                MessageRowPeer.MAILBOX_ID);
-        criterion.addJoin(MessageRowPeer.UID, MessageFlagsPeer.UID);
-
-        MessageFlagsPeer.addFlagsToCriteria(new Flags(Flags.Flag.RECENT), true,
-                criterion);
-        return criterion;
-    }
+
 
     public MessageResult getFirstUnseen(FetchGroup fetchGroup,
             MailboxSession mailboxSession) throws MailboxManagerException {
@@ -397,20 +358,8 @@
             lock.readLock().acquire();
             try {
                 checkAccess();
-                Criteria c = new Criteria();
-                c.addAscendingOrderByColumn(MessageRowPeer.UID);
-                c.setLimit(1);
-                c.setSingleRecord(true);
-
-                c.addJoin(MessageFlagsPeer.MAILBOX_ID,
-                        MessageRowPeer.MAILBOX_ID);
-                c.addJoin(MessageRowPeer.UID, MessageFlagsPeer.UID);
-
-                MessageFlagsPeer.addFlagsToCriteria(new Flags(Flags.Flag.SEEN),
-                        false, c);
-
                 try {
-                    List messageRows = getMailboxRow().getMessageRows(c);
+                    List messageRows = messageMapper.findUnseen(getMailboxRow());
                     if (messageRows.size() > 0) {
                         MessageResult messageResult = fillMessageResult(
                                 (MessageRow) messageRows.get(0), fetchGroup);
@@ -435,6 +384,8 @@
         }
     }
 
+
+
     public int getUnseenCount(MailboxSession mailboxSession)
             throws MailboxManagerException {
         try {
@@ -478,13 +429,9 @@
         checkAccess();
         try {
             // TODO put this into a serializable transaction
-            final Criteria c = criteriaForMessageSet(set);
-            c.addJoin(MessageRowPeer.MAILBOX_ID, MessageFlagsPeer.MAILBOX_ID);
-            c.addJoin(MessageRowPeer.UID, MessageFlagsPeer.UID);
-            c.add(MessageRowPeer.MAILBOX_ID, getMailboxRow().getMailboxId());
-            c.add(MessageFlagsPeer.DELETED, true);
-
-            final List messageRows = getMailboxRow().getMessageRows(c);
+            final MailboxRow mailboxRow = getMailboxRow();
+            
+            final List messageRows = mapper.findMarkedForDeletionInMailbox(set, mailboxRow);
             final long[] uids = uids(messageRows);
             final OrFetchGroup orFetchGroup = new OrFetchGroup(fetchGroup,
                     FetchGroup.FLAGS);
@@ -509,6 +456,7 @@
         }
     }
 
+
     private long[] uids(List messageRows) {
         final int size = messageRows.size();
         long[] results = new long[size];
@@ -542,8 +490,7 @@
         checkAccess();
         try {
             // TODO put this into a serializeable transaction
-            final List messageRows = getMailboxRow().getMessageRows(
-                    criteriaForMessageSet(set));
+            final List messageRows = mapper.findInMailbox(set, getMailboxRow().getMailboxId());
             UidRange uidRange = uidRangeForMessageSet(set);
             getUidChangeTracker().found(uidRange,
                     MessageRowUtils.toMessageFlags(messageRows));
@@ -754,10 +701,7 @@
             try {
                 checkAccess();
                 try {
-                    Criteria c = criteriaForMessageSet(set);
-                    c.add(MessageFlagsPeer.MAILBOX_ID, getMailboxRow()
-                            .getMailboxId());
-                    List rows = MessageRowPeer.doSelectJoinMessageFlags(c);
+                    List rows = mapper.findInMailbox(set, getMailboxRow().getMailboxId());
                     toMailbox.copy(rows, session);
                 } catch (TorqueException e) {
                     throw new MailboxManagerException(e);

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/Init.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/Init.java?rev=729858&r1=729857&r2=729858&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/Init.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/Init.java Mon Dec 29 02:44:48 2008
@@ -36,8 +36,197 @@
                 .getMapBuilder();
     }
     
+    public static void populateMessageFlags(TableMap tMap) {
+        tMap.setJavaName("MessageFlags");
+        tMap
+                .setOMClass(org.apache.james.imap.jpa.om.MessageFlags.class);
+        tMap
+                .setPeerClass(org.apache.james.imap.jpa.om.MessageFlagsPeer.class);
+        tMap.setPrimaryKeyMethod("none");
 
-    public static void populate(TableMap tMap) {
+        ColumnMap cMap = null;
+
+        // ------------- Column: mailbox_id --------------------
+        cMap = new ColumnMap("mailbox_id", tMap);
+        cMap.setType(new Long(0));
+        cMap.setTorqueType("BIGINT");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(true);
+        cMap.setNotNull(true);
+        cMap.setJavaName("MailboxId");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("Mailbox Id");
+        cMap.setInheritance("false");
+        cMap.setForeignKey("message", "mailbox_id");
+        cMap.setPosition(1);
+        tMap.addColumn(cMap);
+        // ------------- Column: uid --------------------
+        cMap = new ColumnMap("uid", tMap);
+        cMap.setType(new Long(0));
+        cMap.setTorqueType("BIGINT");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(true);
+        cMap.setNotNull(true);
+        cMap.setJavaName("Uid");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("");
+        cMap.setInheritance("false");
+        cMap.setForeignKey("message", "uid");
+        cMap.setPosition(2);
+        tMap.addColumn(cMap);
+        // ------------- Column: answered --------------------
+        cMap = new ColumnMap("answered", tMap);
+        cMap.setType(new Integer(0));
+        cMap.setTorqueType("BOOLEANINT");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(false);
+        cMap.setNotNull(true);
+        cMap.setJavaName("Answered");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("");
+        cMap.setDefault("0");
+        cMap.setInheritance("false");
+        cMap.setPosition(3);
+        tMap.addColumn(cMap);
+        // ------------- Column: deleted --------------------
+        cMap = new ColumnMap("deleted", tMap);
+        cMap.setType(new Integer(0));
+        cMap.setTorqueType("BOOLEANINT");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(false);
+        cMap.setNotNull(true);
+        cMap.setJavaName("Deleted");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("");
+        cMap.setDefault("0");
+        cMap.setInheritance("false");
+        cMap.setPosition(4);
+        tMap.addColumn(cMap);
+        // ------------- Column: draft --------------------
+        cMap = new ColumnMap("draft", tMap);
+        cMap.setType(new Integer(0));
+        cMap.setTorqueType("BOOLEANINT");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(false);
+        cMap.setNotNull(true);
+        cMap.setJavaName("Draft");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("");
+        cMap.setDefault("0");
+        cMap.setInheritance("false");
+        cMap.setPosition(5);
+        tMap.addColumn(cMap);
+        // ------------- Column: flagged --------------------
+        cMap = new ColumnMap("flagged", tMap);
+        cMap.setType(new Integer(0));
+        cMap.setTorqueType("BOOLEANINT");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(false);
+        cMap.setNotNull(true);
+        cMap.setJavaName("Flagged");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("");
+        cMap.setDefault("0");
+        cMap.setInheritance("false");
+        cMap.setPosition(6);
+        tMap.addColumn(cMap);
+        // ------------- Column: recent --------------------
+        cMap = new ColumnMap("recent", tMap);
+        cMap.setType(new Integer(0));
+        cMap.setTorqueType("BOOLEANINT");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(false);
+        cMap.setNotNull(true);
+        cMap.setJavaName("Recent");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("");
+        cMap.setDefault("0");
+        cMap.setInheritance("false");
+        cMap.setPosition(7);
+        tMap.addColumn(cMap);
+        // ------------- Column: seen --------------------
+        cMap = new ColumnMap("seen", tMap);
+        cMap.setType(new Integer(0));
+        cMap.setTorqueType("BOOLEANINT");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(false);
+        cMap.setNotNull(true);
+        cMap.setJavaName("Seen");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("");
+        cMap.setDefault("0");
+        cMap.setInheritance("false");
+        cMap.setPosition(8);
+        tMap.addColumn(cMap);
+        tMap.setUseInheritance(false);
+    }
+    
+    public static void populateMessageBody(TableMap tMap) {
+        tMap.setJavaName("MessageBody");
+        tMap
+                .setOMClass(org.apache.james.imap.jpa.om.MessageBody.class);
+        tMap
+                .setPeerClass(org.apache.james.imap.jpa.om.MessageBodyPeer.class);
+        tMap.setPrimaryKeyMethod("none");
+
+        ColumnMap cMap = null;
+
+        // ------------- Column: mailbox_id --------------------
+        cMap = new ColumnMap("mailbox_id", tMap);
+        cMap.setType(new Long(0));
+        cMap.setTorqueType("BIGINT");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(true);
+        cMap.setNotNull(true);
+        cMap.setJavaName("MailboxId");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("Mailbox Id");
+        cMap.setInheritance("false");
+        cMap.setForeignKey("message", "mailbox_id");
+        cMap.setPosition(1);
+        tMap.addColumn(cMap);
+        // ------------- Column: uid --------------------
+        cMap = new ColumnMap("uid", tMap);
+        cMap.setType(new Long(0));
+        cMap.setTorqueType("BIGINT");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(true);
+        cMap.setNotNull(true);
+        cMap.setJavaName("Uid");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("");
+        cMap.setInheritance("false");
+        cMap.setForeignKey("message", "uid");
+        cMap.setPosition(2);
+        tMap.addColumn(cMap);
+        // ------------- Column: body --------------------
+        cMap = new ColumnMap("body", tMap);
+        cMap.setType(new Object());
+        cMap.setTorqueType("BLOB");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(false);
+        cMap.setNotNull(true);
+        cMap.setJavaName("Body");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("value");
+        cMap.setInheritance("false");
+        cMap.setPosition(3);
+        tMap.addColumn(cMap);
+        tMap.setUseInheritance(false);
+    }
+    
+    public static void populateMailboxRow(TableMap tMap) {
         tMap.setJavaName("MailboxRow");
         tMap
                 .setOMClass(org.apache.james.imap.jpa.om.MailboxRow.class);

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxMapper.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxMapper.java?rev=729858&r1=729857&r2=729858&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxMapper.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxMapper.java Mon Dec 29 02:44:48 2008
@@ -21,6 +21,8 @@
 
 import java.util.List;
 
+import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.MessageRange;
 import org.apache.torque.TorqueException;
 import org.apache.torque.util.CountHelper;
 import org.apache.torque.util.Criteria;
@@ -29,7 +31,7 @@
  * Data access management for mailbox.
  */
 public class MailboxMapper {
- 
+
     /**
      * Finds a mailbox by name.
      * @param name not null
@@ -39,7 +41,7 @@
     public MailboxRow findByName(String name) throws TorqueException {
         return MailboxRowPeer.retrieveByName(name);
     }
-    
+
     /**
      * Deletes the given mailbox.
      * @param mailbox not null
@@ -48,7 +50,7 @@
     public static void delete(MailboxRow mailbox) throws TorqueException {
         MailboxRowPeer.doDelete(mailbox);
     }
-    
+
     public List findNameLike(String name) throws TorqueException {
         Criteria c = new Criteria();
         c.add(MailboxRowPeer.NAME,
@@ -57,7 +59,7 @@
         List l = MailboxRowPeer.doSelect(c);
         return l;
     }
-   
+
     public void deleteAll() throws TorqueException {
         MailboxRowPeer.doDelete(new Criteria().and(
                 MailboxRowPeer.MAILBOX_ID, new Integer(-1),
@@ -67,7 +69,7 @@
     public MailboxRow refresh(MailboxRow mailboxRow) throws TorqueException {
         return MailboxRowPeer.retrieveByPK(mailboxRow.getPrimaryKey());
     }
-    
+
     public int countOnName(String mailboxName) throws TorqueException {
         int count;
         Criteria c = new Criteria();
@@ -76,4 +78,52 @@
         count = countHelper.count(c);
         return count;
     }
+
+
+    public List findInMailbox(MessageRange set, long mailboxId) throws MailboxManagerException, TorqueException {
+        Criteria c = criteriaForMessageSet(set);
+        c.add(MessageFlagsPeer.MAILBOX_ID, mailboxId);
+        List rows = MessageRowPeer.doSelectJoinMessageFlags(c);
+        return rows;
+    }
+    
+    public List findMarkedForDeletionInMailbox(final MessageRange set, final MailboxRow mailboxRow) throws TorqueException, MailboxManagerException {
+        final Criteria c = criteriaForMessageSet(set);
+        c.addJoin(MessageRowPeer.MAILBOX_ID, MessageFlagsPeer.MAILBOX_ID);
+        c.addJoin(MessageRowPeer.UID, MessageFlagsPeer.UID);
+        c.add(MessageRowPeer.MAILBOX_ID, mailboxRow.getMailboxId());
+        c.add(MessageFlagsPeer.DELETED, true);
+
+        final List messageRows = mailboxRow.getMessageRows(c);
+        return messageRows;
+    }
+    
+    private Criteria criteriaForMessageSet(MessageRange set) throws MailboxManagerException {
+        Criteria criteria = new Criteria();
+        criteria.addAscendingOrderByColumn(MessageRowPeer.UID);
+        if (set.getType() == MessageRange.TYPE_ALL) {
+            // empty Criteria = everything
+        } else if (set.getType() == MessageRange.TYPE_UID) {
+
+            if (set.getUidFrom() == set.getUidTo()) {
+                criteria.add(MessageRowPeer.UID, set.getUidFrom());
+            } else {
+                Criteria.Criterion criterion1 = criteria.getNewCriterion(
+                        MessageRowPeer.UID, new Long(set.getUidFrom()),
+                        Criteria.GREATER_EQUAL);
+                if (set.getUidTo() > 0) {
+                    Criteria.Criterion criterion2 = criteria.getNewCriterion(
+                            MessageRowPeer.UID, new Long(set.getUidTo()),
+                            Criteria.LESS_EQUAL);
+                    criterion1.and(criterion2);
+                }
+                criteria.add(criterion1);
+            }
+        } else {
+            throw new MailboxManagerException("Unsupported MessageSet: "
+                    + set.getType());
+        }
+        return criteria;
+    }
+
 }

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxRow.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxRow.java?rev=729858&r1=729857&r2=729858&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxRow.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxRow.java Mon Dec 29 02:44:48 2008
@@ -94,7 +94,7 @@
         Criteria criteria = new Criteria();
         criteria.addSelectColumn(" COUNT(" + MessageFlagsPeer.UID + ") ");
         criteria.add(MessageFlagsPeer.MAILBOX_ID, getMailboxId());
-        MessageFlagsPeer.addFlagsToCriteria(flags, value, criteria);
+        MessageMapper.addFlagsToCriteria(flags, value, criteria);
         List result = MessageFlagsPeer.doSelectVillageRecords(criteria);
         Record record = (Record) result.get(0);
         int numberOfRecords = record.getValue(1).asInt();

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageBodyPeer.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageBodyPeer.java?rev=729858&r1=729857&r2=729858&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageBodyPeer.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageBodyPeer.java Mon Dec 29 02:44:48 2008
@@ -27,7 +27,7 @@
  * requirements. This class will only be generated as long as it does not
  * already exist in the output directory.
  */
-public class MessageBodyPeer extends
+class MessageBodyPeer extends
         org.apache.james.imap.jpa.om.BaseMessageBodyPeer {
 
     /**

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageFlagsPeer.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageFlagsPeer.java?rev=729858&r1=729857&r2=729858&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageFlagsPeer.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageFlagsPeer.java Mon Dec 29 02:44:48 2008
@@ -18,9 +18,7 @@
  ****************************************************************/
 package org.apache.james.imap.jpa.om;
 
-import javax.mail.Flags;
 
-import org.apache.torque.util.Criteria;
 
 /**
  * The skeleton for this class was autogenerated by Torque on:
@@ -31,7 +29,7 @@
  * requirements. This class will only be generated as long as it does not
  * already exist in the output directory.
  */
-public class MessageFlagsPeer extends
+class MessageFlagsPeer extends
         org.apache.james.imap.jpa.om.BaseMessageFlagsPeer {
 
     /**
@@ -39,25 +37,4 @@
      */
     private static final long serialVersionUID = 4709341310937090513L;
 
-    public static void addFlagsToCriteria(Flags flags, boolean value, Criteria c) {
-        if (flags.contains(Flags.Flag.ANSWERED)) {
-            c.add(ANSWERED, value);
-        }
-        if (flags.contains(Flags.Flag.DELETED)) {
-            c.add(DELETED, value);
-        }
-        if (flags.contains(Flags.Flag.DRAFT)) {
-            c.add(DRAFT, value);
-        }
-        if (flags.contains(Flags.Flag.FLAGGED)) {
-            c.add(FLAGGED, value);
-        }
-        if (flags.contains(Flags.Flag.RECENT)) {
-            c.add(RECENT, value);
-        }
-        if (flags.contains(Flags.Flag.SEEN)) {
-            c.add(SEEN, value);
-        }
-    }
-
 }

Added: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageMapper.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageMapper.java?rev=729858&view=auto
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageMapper.java (added)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageMapper.java Mon Dec 29 02:44:48 2008
@@ -0,0 +1,79 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.imap.jpa.om;
+
+import java.util.List;
+
+import javax.mail.Flags;
+import javax.mail.Flags.Flag;
+
+import org.apache.torque.TorqueException;
+import org.apache.torque.util.Criteria;
+
+public class MessageMapper {
+    
+    public List findUnseen(MailboxRow row) throws TorqueException {
+        Criteria c = new Criteria();
+        c.addAscendingOrderByColumn(MessageRowPeer.UID);
+        c.setLimit(1);
+        c.setSingleRecord(true);
+
+        c.addJoin(MessageFlagsPeer.MAILBOX_ID,
+                MessageRowPeer.MAILBOX_ID);
+        c.addJoin(MessageRowPeer.UID, MessageFlagsPeer.UID);
+
+        MessageMapper.addFlagsToCriteria(new Flags(Flags.Flag.SEEN),
+                false, c);
+        List messageRows = row.getMessageRows(c);
+        return messageRows;
+    }
+    
+    public List findRecent(final MailboxRow mailboxRow) throws TorqueException {
+        final Criteria criterion = new Criteria();
+        criterion.addJoin(MessageFlagsPeer.MAILBOX_ID,
+                MessageRowPeer.MAILBOX_ID);
+        criterion.addJoin(MessageRowPeer.UID, MessageFlagsPeer.UID);
+        
+        MessageMapper.addFlagsToCriteria(new Flags(Flags.Flag.RECENT), true,
+                criterion);
+        final List messageRows = mailboxRow.getMessageRows(criterion);
+        return messageRows;
+    }
+    
+    static void addFlagsToCriteria(Flags flags, boolean value, Criteria c) {
+        if (flags.contains(Flags.Flag.ANSWERED)) {
+            c.add(MessageFlagsPeer.ANSWERED, value);
+        }
+        if (flags.contains(Flags.Flag.DELETED)) {
+            c.add(MessageFlagsPeer.DELETED, value);
+        }
+        if (flags.contains(Flags.Flag.DRAFT)) {
+            c.add(MessageFlagsPeer.DRAFT, value);
+        }
+        if (flags.contains(Flags.Flag.FLAGGED)) {
+            c.add(MessageFlagsPeer.FLAGGED, value);
+        }
+        if (flags.contains(Flags.Flag.RECENT)) {
+            c.add(MessageFlagsPeer.RECENT, value);
+        }
+        if (flags.contains(Flags.Flag.SEEN)) {
+            c.add(MessageFlagsPeer.SEEN, value);
+        }
+    }
+}

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MailboxRowMapBuilder.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MailboxRowMapBuilder.java?rev=729858&r1=729857&r2=729858&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MailboxRowMapBuilder.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MailboxRowMapBuilder.java Mon Dec 29 02:44:48 2008
@@ -58,7 +58,7 @@
 
         dbMap.addTable("mailbox");
         TableMap tMap = dbMap.getTable("mailbox");
-        Init.populate(tMap);
+        Init.populateMailboxRow(tMap);
     }
 
 }

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageBodyMapBuilder.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageBodyMapBuilder.java?rev=729858&r1=729857&r2=729858&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageBodyMapBuilder.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageBodyMapBuilder.java Mon Dec 29 02:44:48 2008
@@ -1,8 +1,8 @@
 package org.apache.james.imap.jpa.om.map;
 
+import org.apache.james.imap.jpa.om.Init;
 import org.apache.torque.Torque;
 import org.apache.torque.TorqueException;
-import org.apache.torque.map.ColumnMap;
 import org.apache.torque.map.DatabaseMap;
 import org.apache.torque.map.MapBuilder;
 import org.apache.torque.map.TableMap;
@@ -56,59 +56,7 @@
 
         dbMap.addTable("message_body");
         TableMap tMap = dbMap.getTable("message_body");
-        tMap.setJavaName("MessageBody");
-        tMap
-                .setOMClass(org.apache.james.imap.jpa.om.MessageBody.class);
-        tMap
-                .setPeerClass(org.apache.james.imap.jpa.om.MessageBodyPeer.class);
-        tMap.setPrimaryKeyMethod("none");
-
-        ColumnMap cMap = null;
-
-        // ------------- Column: mailbox_id --------------------
-        cMap = new ColumnMap("mailbox_id", tMap);
-        cMap.setType(new Long(0));
-        cMap.setTorqueType("BIGINT");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(true);
-        cMap.setNotNull(true);
-        cMap.setJavaName("MailboxId");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("Mailbox Id");
-        cMap.setInheritance("false");
-        cMap.setForeignKey("message", "mailbox_id");
-        cMap.setPosition(1);
-        tMap.addColumn(cMap);
-        // ------------- Column: uid --------------------
-        cMap = new ColumnMap("uid", tMap);
-        cMap.setType(new Long(0));
-        cMap.setTorqueType("BIGINT");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(true);
-        cMap.setNotNull(true);
-        cMap.setJavaName("Uid");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("");
-        cMap.setInheritance("false");
-        cMap.setForeignKey("message", "uid");
-        cMap.setPosition(2);
-        tMap.addColumn(cMap);
-        // ------------- Column: body --------------------
-        cMap = new ColumnMap("body", tMap);
-        cMap.setType(new Object());
-        cMap.setTorqueType("BLOB");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(false);
-        cMap.setNotNull(true);
-        cMap.setJavaName("Body");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("value");
-        cMap.setInheritance("false");
-        cMap.setPosition(3);
-        tMap.addColumn(cMap);
-        tMap.setUseInheritance(false);
+        Init.populateMessageBody(tMap);
     }
+
 }

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageFlagsMapBuilder.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageFlagsMapBuilder.java?rev=729858&r1=729857&r2=729858&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageFlagsMapBuilder.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageFlagsMapBuilder.java Mon Dec 29 02:44:48 2008
@@ -1,5 +1,6 @@
 package org.apache.james.imap.jpa.om.map;
 
+import org.apache.james.imap.jpa.om.Init;
 import org.apache.torque.Torque;
 import org.apache.torque.TorqueException;
 import org.apache.torque.map.ColumnMap;
@@ -56,135 +57,7 @@
 
         dbMap.addTable("message_flags");
         TableMap tMap = dbMap.getTable("message_flags");
-        tMap.setJavaName("MessageFlags");
-        tMap
-                .setOMClass(org.apache.james.imap.jpa.om.MessageFlags.class);
-        tMap
-                .setPeerClass(org.apache.james.imap.jpa.om.MessageFlagsPeer.class);
-        tMap.setPrimaryKeyMethod("none");
-
-        ColumnMap cMap = null;
-
-        // ------------- Column: mailbox_id --------------------
-        cMap = new ColumnMap("mailbox_id", tMap);
-        cMap.setType(new Long(0));
-        cMap.setTorqueType("BIGINT");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(true);
-        cMap.setNotNull(true);
-        cMap.setJavaName("MailboxId");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("Mailbox Id");
-        cMap.setInheritance("false");
-        cMap.setForeignKey("message", "mailbox_id");
-        cMap.setPosition(1);
-        tMap.addColumn(cMap);
-        // ------------- Column: uid --------------------
-        cMap = new ColumnMap("uid", tMap);
-        cMap.setType(new Long(0));
-        cMap.setTorqueType("BIGINT");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(true);
-        cMap.setNotNull(true);
-        cMap.setJavaName("Uid");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("");
-        cMap.setInheritance("false");
-        cMap.setForeignKey("message", "uid");
-        cMap.setPosition(2);
-        tMap.addColumn(cMap);
-        // ------------- Column: answered --------------------
-        cMap = new ColumnMap("answered", tMap);
-        cMap.setType(new Integer(0));
-        cMap.setTorqueType("BOOLEANINT");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(false);
-        cMap.setNotNull(true);
-        cMap.setJavaName("Answered");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("");
-        cMap.setDefault("0");
-        cMap.setInheritance("false");
-        cMap.setPosition(3);
-        tMap.addColumn(cMap);
-        // ------------- Column: deleted --------------------
-        cMap = new ColumnMap("deleted", tMap);
-        cMap.setType(new Integer(0));
-        cMap.setTorqueType("BOOLEANINT");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(false);
-        cMap.setNotNull(true);
-        cMap.setJavaName("Deleted");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("");
-        cMap.setDefault("0");
-        cMap.setInheritance("false");
-        cMap.setPosition(4);
-        tMap.addColumn(cMap);
-        // ------------- Column: draft --------------------
-        cMap = new ColumnMap("draft", tMap);
-        cMap.setType(new Integer(0));
-        cMap.setTorqueType("BOOLEANINT");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(false);
-        cMap.setNotNull(true);
-        cMap.setJavaName("Draft");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("");
-        cMap.setDefault("0");
-        cMap.setInheritance("false");
-        cMap.setPosition(5);
-        tMap.addColumn(cMap);
-        // ------------- Column: flagged --------------------
-        cMap = new ColumnMap("flagged", tMap);
-        cMap.setType(new Integer(0));
-        cMap.setTorqueType("BOOLEANINT");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(false);
-        cMap.setNotNull(true);
-        cMap.setJavaName("Flagged");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("");
-        cMap.setDefault("0");
-        cMap.setInheritance("false");
-        cMap.setPosition(6);
-        tMap.addColumn(cMap);
-        // ------------- Column: recent --------------------
-        cMap = new ColumnMap("recent", tMap);
-        cMap.setType(new Integer(0));
-        cMap.setTorqueType("BOOLEANINT");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(false);
-        cMap.setNotNull(true);
-        cMap.setJavaName("Recent");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("");
-        cMap.setDefault("0");
-        cMap.setInheritance("false");
-        cMap.setPosition(7);
-        tMap.addColumn(cMap);
-        // ------------- Column: seen --------------------
-        cMap = new ColumnMap("seen", tMap);
-        cMap.setType(new Integer(0));
-        cMap.setTorqueType("BOOLEANINT");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(false);
-        cMap.setNotNull(true);
-        cMap.setJavaName("Seen");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("");
-        cMap.setDefault("0");
-        cMap.setInheritance("false");
-        cMap.setPosition(8);
-        tMap.addColumn(cMap);
-        tMap.setUseInheritance(false);
+        Init.populateMessageFlags(tMap);
     }
+
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org