Author: norman
Date: Thu Apr  8 16:59:33 2010
New Revision: 932007

URL: http://svn.apache.org/viewvc?rev=932007&view=rev
Log:
Share some more code

Modified:
    
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMessage.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/openjpa/JPAStreamingMessage.java
    
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractDocument.java

Modified: 
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMessage.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMessage.java?rev=932007&r1=932006&r2=932007&view=diff
==============================================================================
--- 
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMessage.java
 (original)
+++ 
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMessage.java
 Thu Apr  8 16:59:33 2010
@@ -33,9 +33,6 @@ import org.apache.jackrabbit.JcrConstant
 import org.apache.james.imap.jcr.JCRImapConstants;
 import org.apache.james.imap.jcr.JCRUtils;
 import org.apache.james.imap.jcr.Persistent;
-import org.apache.james.imap.store.DelegatingRewindableInputStream;
-import org.apache.james.imap.store.LazySkippingInputStream;
-import org.apache.james.imap.store.RewindableInputStream;
 import org.apache.james.imap.store.StreamUtils;
 import org.apache.james.imap.store.mail.model.AbstractDocument;
 import org.apache.james.imap.store.mail.model.Document;
@@ -130,29 +127,6 @@ public class JCRMessage extends Abstract
     
     /*
      * (non-Javadoc)
-     * @see org.apache.james.imap.store.mail.model.Document#getFullContent()
-     */
-    public RewindableInputStream getFullContent() throws IOException {
-        return new DelegatingRewindableInputStream(getFullContentInternal(), 
getFullContentOctets());
-    }
-    
-    
-    public InputStream getFullContentInternal() throws IOException {
-        if (isPersistent()) {
-            try {
-                //TODO: Maybe we should cache this somehow...
-                InputStream contentStream = 
node.getNode(JcrConstants.JCR_CONTENT).getProperty(JcrConstants.JCR_DATA).getStream();
-                return contentStream;
-            } catch (RepositoryException e) {
-                logger.error("Unable to retrieve property " + 
JcrConstants.JCR_CONTENT, e);
-            }
-            return null;
-        }
-        return content;
-    }
-
-    /*
-     * (non-Javadoc)
      * @see 
org.apache.james.imap.store.mail.model.Document#getFullContentOctets()
      */
     public long getFullContentOctets() {
@@ -423,13 +397,19 @@ public class JCRMessage extends Abstract
         return retValue;
     }
 
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.imap.store.mail.model.Document#getBodyContent()
-     */
-    public RewindableInputStream getBodyContent() throws IOException {
-        return new DelegatingRewindableInputStream(new 
LazySkippingInputStream(getFullContentInternal(), getBodyStartOctet()), 
getFullContentOctets());
+    @Override
+    protected InputStream getRawFullContent() {
+        if (isPersistent()) {
+            try {
+                //TODO: Maybe we should cache this somehow...
+                InputStream contentStream = 
node.getNode(JcrConstants.JCR_CONTENT).getProperty(JcrConstants.JCR_DATA).getStream();
+                return contentStream;
+            } catch (RepositoryException e) {
+                logger.error("Unable to retrieve property " + 
JcrConstants.JCR_CONTENT, e);
+            }
+            return null;
+        }
+        return content;
     }
 
-
 }

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=932007&r1=932006&r2=932007&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
 Thu Apr  8 16:59:33 2010
@@ -29,11 +29,6 @@ import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.Lob;
 
-import org.apache.james.imap.store.DelegatingRewindableInputStream;
-import org.apache.james.imap.store.FileRewindableInputStream;
-import org.apache.james.imap.store.InMemoryRewindableInputStream;
-import org.apache.james.imap.store.LazySkippingInputStream;
-import org.apache.james.imap.store.RewindableInputStream;
 import org.apache.james.imap.store.StreamUtils;
 import org.apache.james.imap.store.mail.model.PropertyBuilder;
 
@@ -64,20 +59,9 @@ public class JPAMessage extends Abstract
         
     }
 
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.imap.store.mail.model.Document#getFullContent()
-     */
-    public RewindableInputStream getFullContent() throws IOException{
-        return new DelegatingRewindableInputStream(new 
ByteArrayInputStream(content),getFullContentOctets());
-    }
-
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.imap.store.mail.model.Document#getBodyContent()
-     */
-    public RewindableInputStream getBodyContent() throws IOException {
-        return new DelegatingRewindableInputStream(new 
LazySkippingInputStream(new ByteArrayInputStream(content), 
getBodyStartOctet()),getFullContentOctets());
+    @Override
+    protected InputStream getRawFullContent() {
+        return new ByteArrayInputStream(content);
     }
 
 }

Modified: 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMessage.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMessage.java?rev=932007&r1=932006&r2=932007&view=diff
==============================================================================
--- 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMessage.java
 (original)
+++ 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/openjpa/JPAStreamingMessage.java
 Thu Apr  8 16:59:33 2010
@@ -31,9 +31,6 @@ import javax.persistence.FetchType;
 import org.apache.james.imap.jpa.mail.model.AbstractJPAMessage;
 import org.apache.james.imap.jpa.mail.model.JPAHeader;
 import org.apache.james.imap.jpa.mail.model.JPAMessage;
-import org.apache.james.imap.store.DelegatingRewindableInputStream;
-import org.apache.james.imap.store.LazySkippingInputStream;
-import org.apache.james.imap.store.RewindableInputStream;
 import org.apache.james.imap.store.StreamUtils;
 import org.apache.james.imap.store.mail.model.PropertyBuilder;
 import org.apache.openjpa.persistence.Persistent;
@@ -73,21 +70,9 @@ public class JPAStreamingMessage extends
         this.content = new 
ByteArrayInputStream(StreamUtils.toByteArray(message.getFullContent()));
     }
 
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.imap.store.mail.model.Document#getFullContent()
-     */
-    public RewindableInputStream getFullContent() throws IOException {
-        return new 
DelegatingRewindableInputStream(content,getFullContentOctets());
-    }
-
-    /*
-     * (non-Javadoc)
-     * @see org.apache.james.imap.store.mail.model.Document#getBodyContent()
-     */
-    public RewindableInputStream getBodyContent() throws IOException {
-        return new DelegatingRewindableInputStream(new 
LazySkippingInputStream(content, getBodyStartOctet()),getFullContentOctets());
-
+    @Override
+    protected InputStream getRawFullContent() {
+        return content;
     }
 
 }

Modified: 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractDocument.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractDocument.java?rev=932007&r1=932006&r2=932007&view=diff
==============================================================================
--- 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractDocument.java
 (original)
+++ 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractDocument.java
 Thu Apr  8 16:59:33 2010
@@ -18,6 +18,13 @@
  ****************************************************************/
 package org.apache.james.imap.store.mail.model;
 
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.james.imap.store.DelegatingRewindableInputStream;
+import org.apache.james.imap.store.LazySkippingInputStream;
+import org.apache.james.imap.store.RewindableInputStream;
+
 
 /**
  * Abstract base class for {...@link Document}
@@ -42,5 +49,29 @@ public abstract class AbstractDocument i
      */
     protected abstract int getBodyStartOctet();
     
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.imap.store.mail.model.Document#getFullContent()
+     */
+    public RewindableInputStream getFullContent() throws IOException {
+        return new DelegatingRewindableInputStream(getRawFullContent(), 
getFullContentOctets());
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.imap.store.mail.model.Document#getBodyContent()
+     */
+    public RewindableInputStream getBodyContent() throws IOException {
+        return new DelegatingRewindableInputStream(new 
LazySkippingInputStream(getRawFullContent(), 
getBodyStartOctet()),getFullContentOctets());
+
+    }
+    
+    /**
+     * Return the raw {...@link InputStream} of the full content
+     * 
+     * @return rawFullContent
+     */
+    protected abstract InputStream getRawFullContent();
+    
 
 }



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

Reply via email to