1 36 package org.columba.ristretto.composer.mimepartrenderers; 37 38 import java.io.IOException ; 39 import java.io.InputStream ; 40 import java.nio.charset.Charset ; 41 42 import org.columba.ristretto.coder.Base64EncoderInputStream; 43 import org.columba.ristretto.coder.CanonizeFilterInputStream; 44 import org.columba.ristretto.coder.CharsetEncoderInputStream; 45 import org.columba.ristretto.coder.QuotedPrintableEncoderInputStream; 46 import org.columba.ristretto.composer.MimePartRenderer; 47 import org.columba.ristretto.io.SequenceInputStream; 48 import org.columba.ristretto.message.MimeHeader; 49 import org.columba.ristretto.message.MimePart; 50 import org.columba.ristretto.message.StreamableMimePart; 51 52 59 public class TextpartRenderer extends MimePartRenderer { 60 61 64 public String getRegisterString() { 65 return "text"; 66 } 67 68 71 public InputStream render(MimePart part) throws IOException { 72 MimeHeader header = part.getHeader(); 73 int encoding = header.getContentTransferEncoding(); 74 Charset charset = header.getCharset(); 75 76 InputStream body = 77 new CharsetEncoderInputStream( 78 new CanonizeFilterInputStream( 79 ((StreamableMimePart) part).getInputStream()), 80 charset); 81 82 switch (encoding) { 83 case MimeHeader.BASE64 : 84 { 85 body = new Base64EncoderInputStream(body); 86 break; 87 } 88 89 case MimeHeader.QUOTED_PRINTABLE : 90 { 91 body = new QuotedPrintableEncoderInputStream(body); 92 break; 93 } 94 default : 95 { 96 body = new CanonizeFilterInputStream(body); 98 } 99 } 100 101 return new SequenceInputStream(header.getInputStream(), body); 102 } 103 104 } 105 | Popular Tags |