AttributeSetUtilities
AttributeSetUtilities (인쇄 속성 집합 유틸리티)
AttributeSet을 조작하기 위한 정적 메서드를 제공하는 클래스예요. 속성 집합의 수정 불가(unmodifiable) 뷰와 동기화(synchronized) 뷰를 만드는 메서드와, AttributeSet 인터페이스 구현을 만드는 데 유용한 연산을 제공해요.
본문
속성 집합 S의 수정 불가 뷰 U는 클라이언트에게 S에 대한 "읽기 전용" 접근을 제공해요. U의 조회 연산은 S로 "통과(reads through)"하므로 S의 변경이 U에 반영돼요. 그러나 U를 수정하려 하면 UnmodifiableSetException이 발생해요. S가 직렬화 가능하면 U도 직렬화 가능해요.
동기화 뷰 V는 속성 집합 S에 대한 동기화(멀티 스레드 안전) 접근을 제공해요. V의 각 연산은 V 자신을 잠금 객체로 사용해 동기화한 뒤 S의 대응 연산을 호출해요. 상호 배타적 접근을 보장하려면 모든 접근이 V를 통해 이루어져야 해요.
public static AttributeSet unmodifiableView(AttributeSet attributeSet)
public static AttributeSet synchronizedView(AttributeSet attributeSet)
주의할 점은 javax.print 패키지 설명에 나와 있듯이, 어느 한 메서드에 의미 있는 해석이 명시적으로 문서화되어 있지 않다면 메서드에 null 참조 매개변수를 전달하는 것은 잘못된 코딩이며 IllegalArgumentException이나 NullPointerException 같은 런타임 예외를 유발할 수 있다는 것이에요.