mirror of
https://github.com/moparisthebest/k-9
synced 2024-11-15 22:15:15 -05:00
12d1097a24
approximating AOSP coding standards.
93 lines
2.5 KiB
Java
93 lines
2.5 KiB
Java
|
|
package com.fsck.k9.mail.internet;
|
|
|
|
import com.fsck.k9.mail.Body;
|
|
import com.fsck.k9.mail.MessagingException;
|
|
|
|
import java.io.*;
|
|
|
|
import org.apache.james.mime4j.codec.QuotedPrintableOutputStream;
|
|
|
|
public class TextBody implements Body {
|
|
|
|
/**
|
|
* Immutable empty byte array
|
|
*/
|
|
private static final byte[] EMPTY_BYTE_ARRAY = new byte[0];
|
|
|
|
private String mBody;
|
|
private String mEncoding;
|
|
private String mCharset = "UTF-8";
|
|
// Length of the message composed (as opposed to quoted). I don't like the name of this variable and am open to
|
|
// suggestions as to what it should otherwise be. -achen 20101207
|
|
private Integer mComposedMessageLength;
|
|
// Offset from position 0 where the composed message begins.
|
|
private Integer mComposedMessageOffset;
|
|
|
|
public TextBody(String body) {
|
|
this.mBody = body;
|
|
}
|
|
|
|
public void writeTo(OutputStream out) throws IOException, MessagingException {
|
|
if (mBody != null) {
|
|
byte[] bytes = mBody.getBytes(mCharset);
|
|
if ("8bit".equals(mEncoding)) {
|
|
out.write(bytes);
|
|
} else {
|
|
QuotedPrintableOutputStream qp = new QuotedPrintableOutputStream(out, false);
|
|
qp.write(bytes);
|
|
qp.flush();
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get the text of the body in it's unencoded format.
|
|
* @return
|
|
*/
|
|
public String getText() {
|
|
return mBody;
|
|
}
|
|
|
|
/**
|
|
* Returns an InputStream that reads this body's text.
|
|
*/
|
|
public InputStream getInputStream() throws MessagingException {
|
|
try {
|
|
byte[] b;
|
|
if (mBody != null) {
|
|
b = mBody.getBytes(mCharset);
|
|
} else {
|
|
b = EMPTY_BYTE_ARRAY;
|
|
}
|
|
return new ByteArrayInputStream(b);
|
|
} catch (UnsupportedEncodingException usee) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public void setEncoding(String encoding) {
|
|
mEncoding = encoding;
|
|
}
|
|
|
|
public void setCharset(String charset) {
|
|
mCharset = charset;
|
|
}
|
|
|
|
public Integer getComposedMessageLength() {
|
|
return mComposedMessageLength;
|
|
}
|
|
|
|
public void setComposedMessageLength(Integer composedMessageLength) {
|
|
this.mComposedMessageLength = composedMessageLength;
|
|
}
|
|
|
|
public Integer getComposedMessageOffset() {
|
|
return mComposedMessageOffset;
|
|
}
|
|
|
|
public void setComposedMessageOffset(Integer composedMessageOffset) {
|
|
this.mComposedMessageOffset = composedMessageOffset;
|
|
}
|
|
}
|