PrinterStateReasons

PrinterStateReasons (프린터 상태 사유 집합)

PrinterStateReasons는 프린터의 현재 상태에 대한 추가 정보, 즉 프린터의 PrinterState 속성 값을 보강하는 정보를 제공하는 열거형 값 집합 인쇄 속성(printing attribute) 클래스예요.

출처: Java API Reference

본문

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이 발생해요.
  • mapnull이거나 키/값이 null이면 NullPointerException, 키가 PrinterStateReason 인스턴스가 아니거나 값이 Severity 인스턴스가 아니면 ClassCastException이 발생해요.

메서드

put

public Severity put(PrinterStateReason reason, Severity severity)

주어진 프린터 상태 사유를 이 속성에 추가하고 주어진 심각도 수준과 연결해요. 이전에 같은 사유로 매핑이 있었다면 이전 값을 대체해요. reason이나 severitynull이면 NullPointerException, 타입이 잘못되면 ClassCastException이 발생해요.

printerStateReasonSet

public Set<PrinterStateReason> printerStateReasonSet(Severity severity)

주어진 심각도 수준의 개별 프린터 상태 사유 속성의 수정 불가 집합 뷰를 얻어요. 집합 뷰는 이 속성에 의해 지원되므로 이 속성의 변경이 뷰에 반영돼요. 집합 뷰는 요소 삽입·제거를 지원하지 않아요. severitynull이면 NullPointerException이 발생해요.

카테고리와 이름

  • getCategory(): 카테고리로 사용할 인쇄 속성 클래스를 반환해요. PrinterStateReasons의 카테고리는 클래스 자체예요.
  • getName(): 카테고리 이름을 반환해요. 이름은 "printer-state-reasons"예요.

더 알아보기