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