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
Modifier and Type
Field
Description
`static final int`
`BAD`
`protected byte[]`
`buffer`
`static final int`
`BYE`
`static final int`
`CONTINUATION`
`protected Exception`
`ex`
`protected int`
`index`
`static final int`
`NO`
`static final int`
`OK`
`protected int`
`pindex`
`protected int`
`size`
`static final int`
`SYNTHETIC`
`protected String`
`tag`
`static final int`
`TAG_MASK`
`static final int`
`TAGGED`
`protected int`
`type`
`static final int`
`TYPE_MASK`
`static final int`
`UNTAGGED`
`protected boolean`
`utf8`

## Constructor Summary

Constructors
Constructor
Description
`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

Modifier and Type
Method
Description
`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 Details

### 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 Details

### 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 Details

### 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`