ParameterBlock — 파라미터 블록 클래스
ParameterBlock — 파라미터 블록 클래스 (java.awt.image.renderable)
RenderableImageOp 또는 다른 이미지 처리 클래스에 필요한 소스와 파라미터(객체) 정보를 모두 캡슐화하는 클래스예요.
본문
ParameterBlock은 Object를 확장하며 Cloneable, Serializable을 구현해요. source Vector에 임의의 객체를 넣을 수 있지만, 이 클래스 사용자는 모든 소스가 RenderedImage 또는 RenderableImage여야 한다는 식의 의미적 제약을 부과할 수 있어요. ParameterBlock 자체는 단순한 컨테이너로 소스·파라미터 타입 검사를 수행하지 않아요.
모든 파라미터는 객체예요. 기본 타입 인자를 받아 적절한 Number 하위 클래스(예: Integer, Float)를 구성하는 편의 add/set 메서드가 있어요. 이에 대응하는 get 메서드는 하향 캐스트를 수행하고 기본 타입 반환값을 가져요. 저장된 값이 올바른 타입이 아니면 예외가 던져져요.
get/set 메서드는 참조에 대해 동작해요. 따라서 부적절할 때 ParameterBlock 간에 참조를 공유하지 않도록 주의해야 해요. clone 메서드는 소스와 파라미터 Vector를 모두 복제하도록 정의돼 있어요. 표준 얕은 복제는 shallowClone으로 제공돼요.
addSource, setSource, add, set 메서드는 인자를 추가한 후 this를 반환하도록 정의돼 있어서 pb.addSource(src).add(param); 같은 구문을 쓸 수 있어요.
필드
| 필드 | 설명 |
|---|---|
sources |
임의의 객체로 저장된 소스 Vector |
parameters |
비-소스 파라미터를 임의의 객체로 저장한 Vector |
생성자
public ParameterBlock()
public ParameterBlock(Vector<Object> sources)
public ParameterBlock(Vector<Object> sources, Vector<Object> parameters)
주어진 소스 Vector, 그리고 선택적으로 파라미터 Vector로 ParameterBlock을 구성해요.
소스 관련 메서드
addSource(Object source)— 소스 목록 끝에 이미지를 추가하고 새 ParameterBlock 반환getSource(int index)— 소스를 일반 Object로 반환 (호출자가 적절한 타입으로 캐스트해야 해요)setSource(Object source, int index)— 소스 목록의 항목을 새 소스로 교체getRenderedSource(int index)— 소스를RenderedImage로 반환 (소스가 RenderedImage가 아니면 예외)getRenderableSource(int index)— 소스를RenderableImage로 반환 (아니면 예외)getNumSources()— 소스 이미지 수 반환getSources()/setSources(Vector<Object>)— 전체 소스 Vector 반환 / 설정removeSources()— 소스 이미지 목록 비우기
파라미터 관련 메서드
getNumParameters()— 파라미터 수 반환 (소스 이미지 제외)getParameters()/setParameters(Vector<Object>)— 전체 파라미터 Vector 반환 / 설정removeParameters()— 파라미터 목록 비우기add(Object obj)및 오버로드add(byte b),add(char c),add(short s),add(int i),add(long l),add(float f),add(double d)— 파라미터 목록에 객체·각 기본 타입 추가set(Object obj, int index)및 각 기본 타입 오버로드 — 파라미터 목록의 객체를 교체getObjectParameter(int index)— 파라미터를 객체로 가져오기getByteParameter(int index),getCharParameter(int index),getShortParameter(int index),getIntParameter(int index),getLongParameter(int index),getFloatParameter(int index),getDoubleParameter(int index)— 파라미터를 각 기본 타입으로 반환
예외 (get 메서드): ClassCastException — 저장된 값이 해당 타입이 아닐 때, NullPointerException — 파라미터가 null일 때, ArrayIndexOutOfBoundsException — index가 음수이거나 범위 밖일 때
getParamClasses()— 파라미터 타입을 설명하는Class<?>배열 반환clone()— 소스·파라미터 Vector를 복제한 사본 생성 (실제 소스·파라미터는 참조로 복사)shallowClone()— 얕은 사본 생성 (Vector는 참조로 복사되어 양쪽 모두에서 변경이 보임)