Package com.sun.mail.iap

## Class Response

- java.lang.Object
- - com.sun.mail.iap.Response

Direct Known Subclasses:
  `IMAPResponse`

    public class Response
    extends Object

This class represents a response obtained from the input stream of an IMAP server.

Author:
  John Mani, Bill Shannon

### Field Summary

Fields
`static int` `BAD`
`protected byte[]` `buffer`
`static int` `BYE`
`static int` `CONTINUATION`
`protected Exception` `ex`
`protected int` `index`
`static int` `NO`
`static int` `OK`
`protected int` `pindex`
`protected int` `size`
`static int` `SYNTHETIC`
`protected String` `tag`
`static int` `TAG_MASK`
`static int` `TAGGED`
`protected int` `type`
`static int` `TYPE_MASK`
`static int` `UNTAGGED`
`protected boolean` `utf8`

### Constructor Summary

Constructors
`Response​(Protocol p)` Read a new Response from the given Protocol
`Response​(Response r)` Copy constructor.
`Response​(String s)`
`Response​(String s, boolean supportsUtf8)` Constructor for testing.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static Response` `byeResponse​(Exception ex)` Return a Response object that looks like a BYE protocol response.
`Exception` `getException​()` Return the exception for a synthetic BYE response.
`String` `getRest​()` Return the rest of the response as a string, usually used to return the arbitrary message text after a NO response.
`String` `getTag​()` Return the tag, if this is a tagged statement.
`int` `getType​()`
`boolean` `isBAD​()`
`boolean` `isBYE​()`
`boolean` `isContinuation​()`
`boolean` `isNextNonSpace​(char c)` Skip past any spaces.
`boolean` `isNO​()`
`boolean` `isOK​()`
`boolean` `isSynthetic​()`
`boolean` `isTagged​()`
`boolean` `isUnTagged​()`
`byte` `peekByte​()`
`String` `readAtom​()` Extract an ATOM, starting at the current position.
`String` `readAtomString​()` Extract an ASTRING, starting at the current position and return as a String.
`String[]` `readAtomStringList​()`
`byte` `readByte​()` Return the next byte from this Statement.
`ByteArray` `readByteArray​()` Extract a NSTRING, starting at the current position.
`ByteArrayInputStream` `readBytes​()` Extract a NSTRING, starting at the current position.
`long` `readLong​()` Extract a long number, starting at the current position.
`int` `readNumber​()` Extract an integer, starting at the current position.
`String` `readString​()` Extract a NSTRING, starting at the current position.
`String` `readString​(char delim)` Read a string as an arbitrary sequence of characters, stopping at the delimiter Used to read part of a response code inside [].
`String[]` `readStringList​()`
`void` `reset​()` Reset pointer to beginning of response.
`void` `skip​(int count)`
`void` `skipSpaces​()`
`void` `skipToken​()` Skip to the next space, for use in error recovery while parsing.
`boolean` `supportsUtf8​()` Does the server support UTF-8?
`String` `toString​()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### index

    protected int index

#### pindex

    protected int pindex

#### size

    protected int size

#### buffer

    protected byte[] buffer

#### type

    protected int type

#### tag

    protected String tag

#### ex

    protected Exception ex

Since:
  JavaMail 1.5.4

#### utf8

    protected boolean utf8

#### TAG_MASK

    public static final int TAG_MASK

See Also:
  Constant Field Values

#### CONTINUATION

    public static final int CONTINUATION

See Also:
  Constant Field Values

#### TAGGED

    public static final int TAGGED

See Also:
  Constant Field Values

#### UNTAGGED

    public static final int UNTAGGED

See Also:
  Constant Field Values

#### TYPE_MASK

    public static final int TYPE_MASK

See Also:
  Constant Field Values

#### OK

    public static final int OK

See Also:
  Constant Field Values

#### NO

    public static final int NO

See Also:
  Constant Field Values

#### BAD

    public static final int BAD

See Also:
  Constant Field Values

#### BYE

    public static final int BYE

See Also:
  Constant Field Values

#### SYNTHETIC

    public static final int SYNTHETIC

See Also:
  Constant Field Values

### Constructor Detail

#### Response

    public Response​(String s)

#### Response

    public Response​(String s,
                    boolean supportsUtf8)

Constructor for testing.

Parameters:
  `s` - the response string
  `supportsUtf8` - allow UTF-8 in response?
Since:
  JavaMail 1.6.0

#### Response

    public Response​(Protocol p)
             throws IOException,
                    ProtocolException

Read a new Response from the given Protocol

Parameters:
  `p` - the Protocol object
Throws:
  `IOException` - for I/O errors
  `ProtocolException` - for protocol failures

#### Response

    public Response​(Response r)

Copy constructor.

Parameters:
  `r` - the Response to copy

### Method Detail

#### byeResponse

    public static Response byeResponse​(Exception ex)

Return a Response object that looks like a BYE protocol response. Include the details of the exception in the response string.

Parameters:
  `ex` - the exception
Returns:
  the synthetic Response object

#### supportsUtf8

    public boolean supportsUtf8​()

Does the server support UTF-8?

Returns:
  true if the server supports UTF-8
Since:
  JavaMail 1.6.0

#### skipSpaces

    public void skipSpaces​()

#### isNextNonSpace

    public boolean isNextNonSpace​(char c)

Skip past any spaces. If the next non-space character is c, consume it and return true. Otherwise stop at that point and return false.

Parameters:
  `c` - the character to look for
Returns:
  true if the character is found

#### skipToken

    public void skipToken​()

Skip to the next space, for use in error recovery while parsing.

#### skip

    public void skip​(int count)

#### peekByte

    public byte peekByte​()

#### readByte

    public byte readByte​()

Return the next byte from this Statement.

Returns:
  the next byte

#### readAtom

    public String readAtom​()

Extract an ATOM, starting at the current position. Updates the internal index to beyond the Atom.

Returns:
  an Atom

#### readString

    public String readString​(char delim)

Read a string as an arbitrary sequence of characters, stopping at the delimiter Used to read part of a response code inside [].

Parameters:
  `delim` - the delimiter character
Returns:
  the string

#### readStringList

    public String[] readStringList​()

#### readAtomStringList

    public String[] readAtomStringList​()

#### readNumber

    public int readNumber​()

Extract an integer, starting at the current position. Updates the internal index to beyond the number. Returns -1 if a number was not found.

Returns:
  a number

#### readLong

    public long readLong​()

Extract a long number, starting at the current position. Updates the internal index to beyond the number. Returns -1 if a long number was not found.

Returns:
  a long

#### readString

    public String readString​()

Extract a NSTRING, starting at the current position. Return it as a String. The sequence 'NIL' is returned as null NSTRING := QuotedString | Literal | "NIL"

Returns:
  a String

#### readBytes

    public ByteArrayInputStream readBytes​()

Extract a NSTRING, starting at the current position. Return it as a ByteArrayInputStream. The sequence 'NIL' is returned as null NSTRING := QuotedString | Literal | "NIL"

Returns:
  a ByteArrayInputStream

#### readByteArray

    public ByteArray readByteArray​()

Extract a NSTRING, starting at the current position. Return it as a ByteArray. The sequence 'NIL' is returned as null NSTRING := QuotedString | Literal | "NIL"

Returns:
  a ByteArray

#### readAtomString

    public String readAtomString​()

Extract an ASTRING, starting at the current position and return as a String. An ASTRING can be a QuotedString, a Literal or an Atom (plus ']'). Any errors in parsing returns null ASTRING := QuotedString | Literal | 1*ASTRING_CHAR

Returns:
  a String

#### getType

    public int getType​()

#### isContinuation

    public boolean isContinuation​()

#### isTagged

    public boolean isTagged​()

#### isUnTagged

    public boolean isUnTagged​()

#### isOK

    public boolean isOK​()

#### isNO

    public boolean isNO​()

#### isBAD

    public boolean isBAD​()

#### isBYE

    public boolean isBYE​()

#### isSynthetic

    public boolean isSynthetic​()

#### getTag

    public String getTag​()

Return the tag, if this is a tagged statement.

Returns:
  tag of this tagged statement

#### getRest

    public String getRest​()

Return the rest of the response as a string, usually used to return the arbitrary message text after a NO response.

Returns:
  the rest of the response

#### getException

    public Exception getException​()

Return the exception for a synthetic BYE response.

Returns:
  the exception
Since:
  JavaMail 1.5.4

#### reset

    public void reset​()

Reset pointer to beginning of response.

#### toString

    public String toString​()

Overrides:
  `toString` in class `Object`