Top Description Fields Constructors Methods
com.sun.mail.imap.protocol

public Class BASE64MailboxEncoder

extends Object
Class Inheritance
Imports
java.io.*

From RFC2060:

5.1.3.  Mailbox International Naming Convention

  By convention, international mailbox names are specified using a
  modified version of the UTF-7 encoding described in [UTF-7].  The
  purpose of these modifications is to correct the following problems
  with UTF-7:

     1) UTF-7 uses the "+" character for shifting; this conflicts with
        the common use of "+" in mailbox names, in particular USENET
        newsgroup names.

     2) UTF-7's encoding is BASE64 which uses the "/" character; this
        conflicts with the use of "/" as a popular hierarchy delimiter.

     3) UTF-7 prohibits the unencoded usage of "\"; this conflicts with
        the use of "\" as a popular hierarchy delimiter.

     4) UTF-7 prohibits the unencoded usage of "~"; this conflicts with
        the use of "~" in some servers as a home directory indicator.

     5) UTF-7 permits multiple alternate forms to represent the same
        string; in particular, printable US-ASCII chararacters can be
        represented in encoded form.

  In modified UTF-7, printable US-ASCII characters except for "&"
  represent themselves; that is, characters with octet values 0x20-0x25
  and 0x27-0x7e.  The character "&" (0x26) is represented by the two-
  octet sequence "&-".

  All other characters (octet values 0x00-0x1f, 0x7f-0xff, and all
  Unicode 16-bit octets) are represented in modified BASE64, with a
  further modification from [UTF-7] that "," is used instead of "/".
  Modified BASE64 MUST NOT be used to represent any printing US-ASCII
  character which can represent itself.

  "&" is used to shift to modified BASE64 and "-" to shift back to US-
  ASCII.  All names start in US-ASCII, and MUST end in US-ASCII (that
  is, a name that ends with a Unicode 16-bit octet MUST end with a "-
  ").

  For example, here is a mailbox name which mixes English, Japanese,
  and Chinese text: ~peter/mail/&ZeVnLIqe-/&U,BTFw-

This class will do the correct Encoding for the IMAP mailboxes.
Author
Christopher Cotton

Field Summary

Modifier and TypeField and Description
protected byte[]
protected int
protected Writer
private static final char[]
protected boolean

Constructor Summary

AccessConstructor and Description
public
BASE64MailboxEncoder(Writer
where to write the encoded name
what
)

Create a BASE64 encoder

Method Summary

Modifier and TypeMethod and Description
public static String
encode(String original)

protected void
public void
public void
write(int c)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

bufferback to summary
protected byte[] buffer
bufsizeback to summary
protected int bufsize
outback to summary
protected Writer out
pem_arrayback to summary
private static final char[] pem_array
startedback to summary
protected boolean started

Constructor Detail

BASE64MailboxEncoderback to summary
public BASE64MailboxEncoder(Writer what)

Create a BASE64 encoder

Parameters
what:Writer

where to write the encoded name

Method Detail

encodeback to summary
public static String encode(String original)
encodeback to summary
protected void encode() throws IOException
flushback to summary
public void flush()
writeback to summary
public void write(int c)