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 no...@apache.org on 2010/01/11 10:27:36 UTC

svn commit: r897808 - in /james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model: JPAHeader.java JPAMailboxMembership.java JPAMessage.java JPAProperty.java

Author: norman
Date: Mon Jan 11 09:27:35 2010
New Revision: 897808

URL: http://svn.apache.org/viewvc?rev=897808&view=rev
Log:
Fix for copy message (IMAP-106)

Modified:
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAHeader.java
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAProperty.java

Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAHeader.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAHeader.java?rev=897808&r1=897807&r2=897808&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAHeader.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAHeader.java Mon Jan 11 09:27:35 2010
@@ -53,8 +53,8 @@
      * Copies the content of an existing header.
      * @param header
      */
-    public JPAHeader(JPAHeader header) {
-        this(header.getLineNumber(), header.field, header.getValue());
+    public JPAHeader(Header header) {
+        this(header.getLineNumber(), header.getFieldName(), header.getValue());
     }
     
     public JPAHeader(int lineNumber, String field, String value) {

Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java?rev=897808&r1=897807&r2=897808&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java Mon Jan 11 09:27:35 2010
@@ -174,7 +174,7 @@
         this.flagged = original.isFlagged();
         this.recent = original.isRecent();
         this.seen = original.isSeen();
-        this.message = (JPAMessage) original.getDocument();
+        this.message = new JPAMessage((JPAMessage) original.getDocument());
     }
 
     /**

Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java?rev=897808&r1=897807&r2=897808&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java Mon Jan 11 09:27:35 2010
@@ -80,8 +80,43 @@
         for (final Property property:properties) {
             this.properties.add(new JPAProperty(property, order++));
         }
+        
     }
 
+
+    /**
+     * Create a copy of the given message
+     * 
+     * @param message
+     */
+    public JPAMessage(JPAMessage message) {
+        ByteBuffer buf = message.getFullContent().duplicate();
+        int a = 0;
+        this.content = new byte[buf.capacity()];
+        while(buf.hasRemaining()) {
+            content[a] = buf.get();
+            a++;
+        }
+        this.contentOctets = content.length;
+        this.bodyStartOctet = (int) (message.getFullContentOctets() - message.getBodyOctets());
+        this.headers = new ArrayList<JPAHeader>();
+        
+        List<Header> originalHeaders = message.getHeaders();
+        for (int i = 0; i < originalHeaders.size(); i++) {
+            headers.add(new JPAHeader(originalHeaders.get(i)));
+        }
+
+        PropertyBuilder pBuilder = new PropertyBuilder(message.getProperties());
+        this.textualLineCount = pBuilder.getTextualLineCount();
+        this.mediaType = pBuilder.getMediaType();
+        this.subType = pBuilder.getSubType();
+        final List<Property> properties = pBuilder.toProperties();
+        this.properties = new ArrayList<JPAProperty>(properties.size());
+        int order = 0;
+        for (final Property property:properties) {
+            this.properties.add(new JPAProperty(property, order++));
+        }
+    }
     /**
      * @see org.apache.james.imap.store.mail.model.Document#getHeaders()
      */

Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAProperty.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAProperty.java?rev=897808&r1=897807&r2=897808&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAProperty.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAProperty.java Mon Jan 11 09:27:35 2010
@@ -68,6 +68,15 @@
     }
 
     /**
+     * Create a copy of the give JPAProperty
+     * 
+     * @param property
+     */
+    public JPAProperty(JPAProperty property) {
+        this(property.getNamespace(), property.getLocalName(), property.getValue(), property.getOrder());
+    }
+    
+    /**
      * Gets the order of this property.
      * @return order of this property
      */



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