Class StorageBodyFactory
- java.lang.Object
-
- org.apache.james.mime4j.storage.StorageBodyFactory
-
- All Implemented Interfaces:
BodyFactory
public class StorageBodyFactory extends java.lang.Object implements BodyFactory
Factory for creating message bodies.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.nio.charset.CharsetFALLBACK_CHARSETprivate DecodeMonitormonitorprivate StorageProviderstorageProvider
-
Constructor Summary
Constructors Constructor Description StorageBodyFactory()Creates a newBodyFactoryinstance that uses the default storage provider for creating message bodies from input streams.StorageBodyFactory(StorageProvider storageProvider, DecodeMonitor monitor)Creates a newBodyFactoryinstance that uses the given storage provider for creating message bodies from input streams.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description BinaryBodybinaryBody(java.io.InputStream is)Creates aBinaryBodythat holds the content of the given input stream.BinaryBodybinaryBody(Storage storage)Creates aBinaryBodythat holds the content of the givenStorage.StorageProvidergetStorageProvider()Returns theStorageProviderthisBodyFactoryuses to create message bodies from input streams.TextBodytextBody(java.io.InputStream is)Creates aTextBodythat holds the content of the given input stream.TextBodytextBody(java.io.InputStream is, java.lang.String mimeCharset)Creates aTextBodythat holds the content of the given input stream.TextBodytextBody(java.lang.String text)Creates aTextBodythat holds the content of the given string.TextBodytextBody(java.lang.String text, java.lang.String mimeCharset)Creates aTextBodythat holds the content of the given string.TextBodytextBody(Storage storage)TextBodytextBody(Storage storage, java.lang.String mimeCharset)private static java.nio.charset.CharsettoJavaCharset(java.lang.String mimeCharset, boolean forEncoding, DecodeMonitor monitor)
-
-
-
Field Detail
-
FALLBACK_CHARSET
private static final java.nio.charset.Charset FALLBACK_CHARSET
-
storageProvider
private final StorageProvider storageProvider
-
monitor
private final DecodeMonitor monitor
-
-
Constructor Detail
-
StorageBodyFactory
public StorageBodyFactory()
Creates a newBodyFactoryinstance that uses the default storage provider for creating message bodies from input streams.
-
StorageBodyFactory
public StorageBodyFactory(StorageProvider storageProvider, DecodeMonitor monitor)
Creates a newBodyFactoryinstance that uses the given storage provider for creating message bodies from input streams.- Parameters:
storageProvider- a storage provider ornullto use the default one.
-
-
Method Detail
-
getStorageProvider
public StorageProvider getStorageProvider()
Returns theStorageProviderthisBodyFactoryuses to create message bodies from input streams.- Returns:
- a
StorageProvider.
-
binaryBody
public BinaryBody binaryBody(java.io.InputStream is) throws java.io.IOException
Creates aBinaryBodythat holds the content of the given input stream.- Specified by:
binaryBodyin interfaceBodyFactory- Parameters:
is- input stream to create a message body from.- Returns:
- a binary body.
- Throws:
java.io.IOException- if an I/O error occurs.
-
binaryBody
public BinaryBody binaryBody(Storage storage) throws java.io.IOException
Creates aBinaryBodythat holds the content of the givenStorage.Note that the caller must not invoke
delete()on the givenStorageobject after it has been passed to this method. Instead the message body created by this method takes care of deleting the storage when it gets disposed of (seeDisposable.dispose()).- Parameters:
storage- storage to create a message body from.- Returns:
- a binary body.
- Throws:
java.io.IOException- if an I/O error occurs.
-
textBody
public TextBody textBody(java.io.InputStream is) throws java.io.IOException
Creates aTextBodythat holds the content of the given input stream."us-ascii" is used to decode the byte content of the
Storageinto a character stream when callinggetReader()on the returned object.- Parameters:
is- input stream to create a message body from.- Returns:
- a text body.
- Throws:
java.io.IOException- if an I/O error occurs.
-
textBody
public TextBody textBody(java.io.InputStream is, java.lang.String mimeCharset) throws java.io.IOException
Creates aTextBodythat holds the content of the given input stream.The charset corresponding to the given MIME charset name is used to decode the byte content of the input stream into a character stream when calling
getReader()on the returned object. If the MIME charset has no corresponding Java charset or the Java charset cannot be used for decoding then "us-ascii" is used instead.- Specified by:
textBodyin interfaceBodyFactory- Parameters:
is- input stream to create a message body from.mimeCharset- name of a MIME charset.- Returns:
- a text body.
- Throws:
java.io.IOException- if an I/O error occurs.
-
textBody
public TextBody textBody(Storage storage) throws java.io.IOException
Creates aTextBodythat holds the content of the givenStorage."us-ascii" is used to decode the byte content of the
Storageinto a character stream when callinggetReader()on the returned object.Note that the caller must not invoke
delete()on the givenStorageobject after it has been passed to this method. Instead the message body created by this method takes care of deleting the storage when it gets disposed of (seeDisposable.dispose()).- Parameters:
storage- storage to create a message body from.- Returns:
- a text body.
- Throws:
java.io.IOException- if an I/O error occurs.
-
textBody
public TextBody textBody(Storage storage, java.lang.String mimeCharset) throws java.io.IOException
Creates aTextBodythat holds the content of the givenStorage.The charset corresponding to the given MIME charset name is used to decode the byte content of the
Storageinto a character stream when callinggetReader()on the returned object. If the MIME charset has no corresponding Java charset or the Java charset cannot be used for decoding then "us-ascii" is used instead.Note that the caller must not invoke
delete()on the givenStorageobject after it has been passed to this method. Instead the message body created by this method takes care of deleting the storage when it gets disposed of (seeDisposable.dispose()).- Parameters:
storage- storage to create a message body from.mimeCharset- name of a MIME charset.- Returns:
- a text body.
- Throws:
java.io.IOException- if an I/O error occurs.
-
textBody
public TextBody textBody(java.lang.String text)
Creates aTextBodythat holds the content of the given string."us-ascii" is used to encode the characters of the string into a byte stream when calling
writeTo(OutputStream)on the returned object.- Parameters:
text- text to create a message body from.- Returns:
- a text body.
-
textBody
public TextBody textBody(java.lang.String text, java.lang.String mimeCharset)
Creates aTextBodythat holds the content of the given string.The charset corresponding to the given MIME charset name is used to encode the characters of the string into a byte stream when calling
writeTo(OutputStream)on the returned object. If the MIME charset has no corresponding Java charset or the Java charset cannot be used for encoding then "us-ascii" is used instead.- Parameters:
text- text to create a message body from.mimeCharset- name of a MIME charset.- Returns:
- a text body.
-
toJavaCharset
private static java.nio.charset.Charset toJavaCharset(java.lang.String mimeCharset, boolean forEncoding, DecodeMonitor monitor)
-
-