org.apache.james.mailbox.jpa.mail
Class JPAMessageMapper

java.lang.Object
  extended by org.apache.james.mailbox.store.transaction.TransactionalMapper
      extended by org.apache.james.mailbox.jpa.JPATransactionalMapper
          extended by org.apache.james.mailbox.jpa.mail.JPAMessageMapper
All Implemented Interfaces:
MessageMapper<java.lang.Long>, Mapper

public class JPAMessageMapper
extends JPATransactionalMapper
implements MessageMapper<java.lang.Long>

JPA implementation of a MessageMapper. This class is not thread-safe!


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.james.mailbox.store.transaction.Mapper
Mapper.Transaction<T>, Mapper.VoidTransaction
 
Field Summary
 
Fields inherited from class org.apache.james.mailbox.jpa.JPATransactionalMapper
entityManager, entityManagerFactory
 
Constructor Summary
JPAMessageMapper(javax.persistence.EntityManagerFactory entityManagerFactory)
           
 
Method Summary
 long copy(Mailbox<java.lang.Long> mailbox, MailboxMembership<java.lang.Long> original)
           
 long countMessagesInMailbox(Mailbox<java.lang.Long> mailbox)
           
 long countUnseenMessagesInMailbox(Mailbox<java.lang.Long> mailbox)
           
 void delete(Mailbox<java.lang.Long> mailbox, MailboxMembership<java.lang.Long> message)
           
 java.lang.Long findFirstUnseenMessageUid(Mailbox<java.lang.Long> mailbox)
           
 java.util.List<MailboxMembership<java.lang.Long>> findInMailbox(Mailbox<java.lang.Long> mailbox, MessageRange set)
           
 java.util.List<MailboxMembership<java.lang.Long>> findMarkedForDeletionInMailbox(Mailbox<java.lang.Long> mailbox, MessageRange set)
           
 java.util.List<MailboxMembership<java.lang.Long>> findRecentMessagesInMailbox(Mailbox<java.lang.Long> mailbox, int limit)
           
protected  long reserveUid(JPAMailbox mailbox)
          Reserve the uid for the next MailboxMembership in the given JPAMailbox.
 long save(Mailbox<java.lang.Long> mailbox, MailboxMembership<java.lang.Long> message)
           
 java.util.Iterator<java.lang.Long> searchMailbox(Mailbox<java.lang.Long> mailbox, SearchQuery query)
           
 
Methods inherited from class org.apache.james.mailbox.jpa.JPATransactionalMapper
begin, commit, endRequest, getEntityManager, rollback
 
Methods inherited from class org.apache.james.mailbox.store.transaction.TransactionalMapper
execute
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.james.mailbox.store.transaction.Mapper
endRequest, execute
 

Constructor Detail

JPAMessageMapper

public JPAMessageMapper(javax.persistence.EntityManagerFactory entityManagerFactory)
Method Detail

findInMailbox

public java.util.List<MailboxMembership<java.lang.Long>> findInMailbox(Mailbox<java.lang.Long> mailbox,
                                                                       MessageRange set)
                                                                throws MailboxException
Specified by:
findInMailbox in interface MessageMapper<java.lang.Long>
Throws:
MailboxException
See Also:
org.apache.james.mailbox.store.mail.MessageMapper#findInMailbox(org.apache.james.mailbox.MessageRange)

findMarkedForDeletionInMailbox

public java.util.List<MailboxMembership<java.lang.Long>> findMarkedForDeletionInMailbox(Mailbox<java.lang.Long> mailbox,
                                                                                        MessageRange set)
                                                                                 throws MailboxException
Specified by:
findMarkedForDeletionInMailbox in interface MessageMapper<java.lang.Long>
Throws:
MailboxException
See Also:
org.apache.james.mailbox.store.mail.MessageMapper#findMarkedForDeletionInMailbox(org.apache.james.mailbox.MessageRange)

countMessagesInMailbox

public long countMessagesInMailbox(Mailbox<java.lang.Long> mailbox)
                            throws MailboxException
Specified by:
countMessagesInMailbox in interface MessageMapper<java.lang.Long>
Throws:
MailboxException
See Also:
org.apache.james.mailbox.store.mail.MessageMapper#countMessagesInMailbox()

countUnseenMessagesInMailbox

public long countUnseenMessagesInMailbox(Mailbox<java.lang.Long> mailbox)
                                  throws MailboxException
Specified by:
countUnseenMessagesInMailbox in interface MessageMapper<java.lang.Long>
Throws:
MailboxException
See Also:
org.apache.james.mailbox.store.mail.MessageMapper#countUnseenMessagesInMailbox()

searchMailbox

public java.util.Iterator<java.lang.Long> searchMailbox(Mailbox<java.lang.Long> mailbox,
                                                        SearchQuery query)
                                                 throws MailboxException
Specified by:
searchMailbox in interface MessageMapper<java.lang.Long>
Throws:
MailboxException

delete

public void delete(Mailbox<java.lang.Long> mailbox,
                   MailboxMembership<java.lang.Long> message)
            throws MailboxException
Specified by:
delete in interface MessageMapper<java.lang.Long>
Throws:
MailboxException

findFirstUnseenMessageUid

public java.lang.Long findFirstUnseenMessageUid(Mailbox<java.lang.Long> mailbox)
                                         throws MailboxException
Specified by:
findFirstUnseenMessageUid in interface MessageMapper<java.lang.Long>
Throws:
MailboxException

findRecentMessagesInMailbox

public java.util.List<MailboxMembership<java.lang.Long>> findRecentMessagesInMailbox(Mailbox<java.lang.Long> mailbox,
                                                                                     int limit)
                                                                              throws MailboxException
Specified by:
findRecentMessagesInMailbox in interface MessageMapper<java.lang.Long>
Throws:
MailboxException
See Also:
org.apache.james.mailbox.store.mail.MessageMapper#findRecentMessagesInMailbox()

save

public long save(Mailbox<java.lang.Long> mailbox,
                 MailboxMembership<java.lang.Long> message)
          throws MailboxException
Specified by:
save in interface MessageMapper<java.lang.Long>
Throws:
MailboxException
See Also:
org.apache.james.mailbox.store.mail.MessageMapper#save(MailboxMembership)

copy

public long copy(Mailbox<java.lang.Long> mailbox,
                 MailboxMembership<java.lang.Long> original)
          throws MailboxException
Specified by:
copy in interface MessageMapper<java.lang.Long>
Throws:
MailboxException

reserveUid

protected long reserveUid(JPAMailbox mailbox)
Reserve the uid for the next MailboxMembership in the given JPAMailbox. This is done by using a row lock.

Parameters:
mailbox -
Returns:
uid


Copyright © 2002-2010 The Apache Software Foundation. All Rights Reserved.