package org.apache.james.mime4j.message; import java.io.IOException; import java.io.InputStream; import org.apache.james.mime4j.MimeException; import org.apache.james.mime4j.codec.DecodeMonitor; import org.apache.james.mime4j.dom.Message; import org.apache.james.mime4j.dom.MessageBuilder; import org.apache.james.mime4j.storage.StorageProvider; import org.apache.james.mime4j.stream.MimeEntityConfig; import org.apache.james.mime4j.stream.MutableBodyDescriptorFactory; /** * Default MessageBuilder implementation delegating Message parsing to the "legacy" * MessageImpl object. */ public class MessageBuilderImpl extends MessageBuilder { private StorageProvider storageProvider = null; private DecodeMonitor decodeMonitor = null; private MimeEntityConfig mimeEntityConfig = null; private MutableBodyDescriptorFactory mutableBodyDescriptorFactory = null; private boolean flatMode = false; private boolean contentDecoding = true; public MessageBuilderImpl() { } @Override public Message newMessage() { return new MessageImpl(); } @Override public Message newMessage(Message source) { return new MessageImpl(source); } @Override public Message parse(InputStream source) throws MimeException, IOException { return new MessageImpl(source, mimeEntityConfig, storageProvider, mutableBodyDescriptorFactory, decodeMonitor, contentDecoding, flatMode); } @Override public void setDecodeMonitor(DecodeMonitor decodeMonitor) { this.decodeMonitor = decodeMonitor; } public void setStorageProvider(StorageProvider storageProvider) { this.storageProvider = storageProvider; } public void setMimeEntityConfig(MimeEntityConfig mimeEntityConfig) { this.mimeEntityConfig = mimeEntityConfig; } public void setMutableBodyDescriptorFactory( MutableBodyDescriptorFactory mutableBodyDescriptorFactory) { this.mutableBodyDescriptorFactory = mutableBodyDescriptorFactory; } @Override public void setContentDecoding(boolean contentDecoding) { this.contentDecoding = contentDecoding; } @Override public void setFlatMode() { this.flatMode = true; } }