PrinterStateReasons
PrinterStateReasons (프린터 상태 사유 집합)
PrinterStateReasons는 프린터의 현재 상태에 대한 추가 정보, 즉 프린터의 PrinterState 속성 값을 보강하는 정보를 제공하는 열거형 값 집합 인쇄 속성(printing attribute) 클래스예요.
본문
PrinterStateReason 인스턴스는 인쇄 서비스(Print Service)의 속성 집합에 직접 나타나지 않아요. 대신 PrinterStateReasons 속성이 인쇄 서비스 속성 집합에 나타나요. 이 속성에는 인쇄 서비스 상태와 관련된 PrinterStateReason 객체가 0개, 1개 또는 여러 개 들어 있고, 각 객체는 REPORT, WARNING, ERROR 중 하나의 Severity 수준과 연결돼요. 프린터는 해당 조건이 참이 되면 객체를 추가하고 거짓이 되면 제거해요.
PrinterStateReasons 클래스는 java.util.HashMap에서 구현을 상속받아요. 맵의 각 항목은 PrinterStateReason 객체(키)가 Severity 객체(값)에 매핑된 형태예요.
대부분의 인쇄 속성은 생성 후 불변이지만, 이 클래스는 변경 가능하도록 설계됐어요. 즉, 기존 PrinterStateReasons 객체에 PrinterStateReason 객체를 추가하거나 다시 제거할 수 있어요. 다만 java.util.HashMap처럼 여러 스레드에 안전하지 않으니, 여러 스레드가 사용한다면 연산을 동기화(예: java.util.Collections에서 얻은 동기화 맵 뷰)해야 해요.
생성자
public PrinterStateReasons()
public PrinterStateReasons(int initialCapacity)
public PrinterStateReasons(int initialCapacity, float loadFactor)
public PrinterStateReasons(Map<PrinterStateReason, Severity> map)
- 인자 없는 생성자는 기본 초기 용량과 로드 팩터로 빈 속성을 만들어요.
initialCapacity가 음수면IllegalArgumentException이 발생해요.map이null이거나 키/값이null이면NullPointerException, 키가PrinterStateReason인스턴스가 아니거나 값이Severity인스턴스가 아니면ClassCastException이 발생해요.
메서드
put
public Severity put(PrinterStateReason reason, Severity severity)
주어진 프린터 상태 사유를 이 속성에 추가하고 주어진 심각도 수준과 연결해요. 이전에 같은 사유로 매핑이 있었다면 이전 값을 대체해요. reason이나 severity가 null이면 NullPointerException, 타입이 잘못되면 ClassCastException이 발생해요.
printerStateReasonSet
public Set<PrinterStateReason> printerStateReasonSet(Severity severity)
주어진 심각도 수준의 개별 프린터 상태 사유 속성의 수정 불가 집합 뷰를 얻어요. 집합 뷰는 이 속성에 의해 지원되므로 이 속성의 변경이 뷰에 반영돼요. 집합 뷰는 요소 삽입·제거를 지원하지 않아요. severity가 null이면 NullPointerException이 발생해요.
카테고리와 이름
getCategory(): 카테고리로 사용할 인쇄 속성 클래스를 반환해요.PrinterStateReasons의 카테고리는 클래스 자체예요.getName(): 카테고리 이름을 반환해요. 이름은"printer-state-reasons"예요.