java.nio.charset
Class CoderResult

java.lang.Object
  extended byjava.nio.charset.CoderResult

public class CoderResult
extends Object

A description of the result state of a coder.

A charset coder, that is, either a decoder or an encoder, consumes bytes (or characters) from an input buffer, translates them, and writes the resulting characters (or bytes) to an output buffer. A coding process terminates for one of four categories of reasons, which are described by instances of this class:

For convenience, the isError method returns true for result objects that describe malformed-input and unmappable-character errors but false for those that describe underflow or overflow conditions.

Since:
1.4
Author:
Mark Reinhold, JSR-51 Expert Group

Nested Class Summary
private static class CoderResult.Cache
           
 
Field Summary
private static int CR_ERROR_MIN
           
private static int CR_MALFORMED
           
private static int CR_OVERFLOW
           
private static int CR_UNDERFLOW
           
private static int CR_UNMAPPABLE
           
private  int length
           
private static CoderResult.Cache malformedCache
           
private static String[] names
           
static CoderResult OVERFLOW
          Result object indicating overflow, meaning that there is insufficient room in the output buffer.
private  int type
           
static CoderResult UNDERFLOW
          Result object indicating underflow, meaning that either the input buffer has been completely consumed or, if the input buffer is not yet empty, that additional input is required.
private static CoderResult.Cache unmappableCache
           
 
Constructor Summary
private CoderResult(int type, int length)
           
 
Method Summary
 boolean isError()
          Tells whether or not this object describes an error condition.
 boolean isMalformed()
          Tells whether or not this object describes a malformed-input error.
 boolean isOverflow()
          Tells whether or not this object describes an overflow condition.
 boolean isUnderflow()
          Tells whether or not this object describes an underflow condition.
 boolean isUnmappable()
          Tells whether or not this object describes an unmappable-character error.
 int length()
          Returns the length of the erroneous input described by this object  (optional operation).
static CoderResult malformedForLength(int length)
          Static factory method that returns the unique object describing a malformed-input error of the given length.
 void throwException()
          Throws an exception appropriate to the result described by this object.
 String toString()
          Returns a string describing this coder result.
static CoderResult unmappableForLength(int length)
          Static factory method that returns the unique result object describing an unmappable-character error of the given length.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CR_UNDERFLOW

private static final int CR_UNDERFLOW
See Also:
Constant Field Values

CR_OVERFLOW

private static final int CR_OVERFLOW
See Also:
Constant Field Values

CR_ERROR_MIN

private static final int CR_ERROR_MIN
See Also:
Constant Field Values

CR_MALFORMED

private static final int CR_MALFORMED
See Also:
Constant Field Values

CR_UNMAPPABLE

private static final int CR_UNMAPPABLE
See Also:
Constant Field Values

names

private static final String[] names

type

private final int type

length

private final int length

UNDERFLOW

public static final CoderResult UNDERFLOW
Result object indicating underflow, meaning that either the input buffer has been completely consumed or, if the input buffer is not yet empty, that additional input is required.


OVERFLOW

public static final CoderResult OVERFLOW
Result object indicating overflow, meaning that there is insufficient room in the output buffer.


malformedCache

private static CoderResult.Cache malformedCache

unmappableCache

private static CoderResult.Cache unmappableCache
Constructor Detail

CoderResult

private CoderResult(int type,
                    int length)
Method Detail

toString

public String toString()
Returns a string describing this coder result.

Overrides:
toString in class Object
Returns:
A descriptive string

isUnderflow

public boolean isUnderflow()
Tells whether or not this object describes an underflow condition.

Returns:
true if, and only if, this object denotes underflow

isOverflow

public boolean isOverflow()
Tells whether or not this object describes an overflow condition.

Returns:
true if, and only if, this object denotes overflow

isError

public boolean isError()
Tells whether or not this object describes an error condition.

Returns:
true if, and only if, this object denotes either a malformed-input error or an unmappable-character error

isMalformed

public boolean isMalformed()
Tells whether or not this object describes a malformed-input error.

Returns:
true if, and only if, this object denotes a malformed-input error

isUnmappable

public boolean isUnmappable()
Tells whether or not this object describes an unmappable-character error.

Returns:
true if, and only if, this object denotes an unmappable-character error

length

public int length()
Returns the length of the erroneous input described by this object  (optional operation).

Returns:
The length of the erroneous input, a positive integer
Throws:
UnsupportedOperationException - If this object does not describe an error condition, that is, if the isError does not return true

malformedForLength

public static CoderResult malformedForLength(int length)
Static factory method that returns the unique object describing a malformed-input error of the given length.

Returns:
The requested coder-result object

unmappableForLength

public static CoderResult unmappableForLength(int length)
Static factory method that returns the unique result object describing an unmappable-character error of the given length.

Returns:
The requested coder-result object

throwException

public void throwException()
                    throws CharacterCodingException
Throws an exception appropriate to the result described by this object.

Throws:
BufferUnderflowException - If this object is UNDERFLOW
BufferOverflowException - If this object is OVERFLOW
MalformedInputException - If this object represents a malformed-input error; the exception's length value will be that of this object
UnmappableCharacterException - If this object represents an unmappable-character error; the exceptions length value will be that of this object
CharacterCodingException