CoderResult — 코더의 결과 상태에 대한 설명
CoderResult — 코더의 결과 상태에 대한 설명
CoderResult는 코더(coder)의 결과 상태를 설명하는 객체예요. 문자셋 코더, 즉 디코더나 인코더는 입력 버퍼에서 바이트(또는 문자)를 소비하고, 변환하며, 결과 문자(또는 바이트)를 출력 버퍼에 써요.
본문
public class CoderResult extends Object
코더의 결과 상태를 설명하는 클래스예요. 코딩 프로세스는 네 가지 범주의 이유로 종료되며, 이 클래스의 인스턴스로 설명돼요:
- Underflow(언더플로) — 처리할 입력이 더 이상 없거나 입력이 부족해 추가 입력이 필요할 때 보고돼요. 이 조건은 고유한 결과 객체
UNDERFLOW로 표현되며, 그isUnderflow메서드가true를 반환해요. - Overflow(오버플로) — 출력 버퍼에 공간이 부족할 때 보고돼요. 고유한 결과 객체
OVERFLOW로 표현되며,isOverflow메서드가true를 반환해요. - Malformed-input error(잘못된 입력 오류) — 입력 단위 시퀀스가 잘 구성되지 않았을 때 보고돼요.
isMalformed가true이고length메서드가 잘못된 시퀀스의 길이를 반환하는 인스턴스로 설명돼요. - Unmappable-character error(매핑 불가 문자 오류) — 입력 단위 시퀀스가 출력 문자셋에서 표현할 수 없는 문자를 나타낼 때 보고돼요.
isUnmappable이true인 인스턴스로 설명돼요.
편의를 위해 isError 메서드는 잘못된 입력 및 매핑 불가 문자 오류를 설명하는 결과 객체에 대해 true를, underflow나 overflow 조건에 대해서는 false를 반환해요. Java 1.4부터 사용할 수 있어요.
필드
| 수식자와 타입 | 필드 | 설명 |
|---|---|---|
static final CoderResult |
OVERFLOW |
출력 버퍼에 공간이 부족함을 나타내는 결과 객체 |
static final CoderResult |
UNDERFLOW |
입력 버퍼가 완전히 소비됐거나, 입력 버퍼가 아직 비어 있지 않으면 추가 입력이 필요함을 나타내는 결과 객체 |
메서드 요약
boolean isError()— 이 객체가 오류 조건을 설명하는지 여부.boolean isMalformed()— 이 객체가 잘못된 입력 오류를 설명하는지 여부.boolean isOverflow()— 이 객체가 overflow 조건을 설명하는지 여부.boolean isUnderflow()— 이 객체가 underflow 조건을 설명하는지 여부.boolean isUnmappable()— 이 객체가 매핑 불가 문자 오류를 설명하는지 여부.int length()— 이 객체가 설명하는 잘못된 입력의 길이를 반환해요 (선택 연산).isError가true를 반환하지 않으면UnsupportedOperationException을 던져요.static CoderResult malformedForLength(int length)— 주어진 길이의 잘못된 입력 오류를 설명하는 고유 객체를 반환하는 정적 팩토리 메서드.void throwException()— 이 객체가 설명하는 결과에 적절한 예외를 던져요.String toString()— 이 코더 결과를 설명하는 문자열을 반환해요.static CoderResult unmappableForLength(int length)— 주어진 길이의 매핑 불가 문자 오류를 설명하는 고유 결과 객체를 반환하는 정적 팩토리 메서드.
throwException
public void throwException() throws CharacterCodingException
이 객체가 설명하는 결과에 적절한 예외를 던져요.
예외: BufferUnderflowException — 이 객체가 UNDERFLOW인 경우, BufferOverflowException — OVERFLOW인 경우, MalformedInputException — 잘못된 입력 오류를 나타내는 경우, UnmappableCharacterException — 매핑 불가 문자 오류를 나타내는 경우