org.apache.james.mailrepository
Class MimeMessageJDBCSource

java.lang.Object
  extended by org.apache.james.core.MimeMessageSource
      extended by org.apache.james.mailrepository.MimeMessageJDBCSource

public class MimeMessageJDBCSource
extends MimeMessageSource

This class points to a specific message in a repository. This will return an InputStream to the JDBC field/record, possibly sequenced with the file stream.


Constructor Summary
MimeMessageJDBCSource(JDBCMailRepository repository, java.lang.String key, org.apache.avalon.cornerstone.services.store.StreamRepository sr)
          Construct a MimeMessageSource based on a JDBC repository, a key, and a stream repository (where we might store the message body)
 
Method Summary
 boolean equals(java.lang.Object obj)
          Check to see whether this is the same repository and the same key
 java.io.InputStream getInputStream()
          Return the input stream to the database field and then the file stream.
 long getMessageSize()
          Runs a custom SQL statement to check the size of the message body
 java.lang.String getSourceId()
          Returns a unique String ID that represents the location from where this source is loaded.
 int hashCode()
          Provide a hash code that is consistent with equals for this class
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MimeMessageJDBCSource

public MimeMessageJDBCSource(JDBCMailRepository repository,
                             java.lang.String key,
                             org.apache.avalon.cornerstone.services.store.StreamRepository sr)
                      throws java.io.IOException
Construct a MimeMessageSource based on a JDBC repository, a key, and a stream repository (where we might store the message body)

Throws:
java.io.IOException
Method Detail

getSourceId

public java.lang.String getSourceId()
Returns a unique String ID that represents the location from where this source is loaded. This will be used to identify where the data is, primarily to avoid situations where this data would get overwritten.

Specified by:
getSourceId in class MimeMessageSource
Returns:
the String ID

getInputStream

public java.io.InputStream getInputStream()
                                   throws java.io.IOException
Return the input stream to the database field and then the file stream. This should be smart enough to work even if the file does not exist. This is to support a repository with the entire message in the database, which is how James 1.2 worked.

Specified by:
getInputStream in class MimeMessageSource
Returns:
a InputStream containing the data
Throws:
java.io.IOException - if an error occurs while generating the InputStream

getMessageSize

public long getMessageSize()
                    throws java.io.IOException
Runs a custom SQL statement to check the size of the message body

Overrides:
getMessageSize in class MimeMessageSource
Returns:
the size of the data represented by this source
Throws:
java.io.IOException - if an error is encountered while computing the message size

equals

public boolean equals(java.lang.Object obj)
Check to see whether this is the same repository and the same key

Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Provide a hash code that is consistent with equals for this class

Overrides:
hashCode in class java.lang.Object
Returns:
the hash code


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