ParameterBlock — 파라미터 블록 클래스

ParameterBlock — 파라미터 블록 클래스 (java.awt.image.renderable)

RenderableImageOp 또는 다른 이미지 처리 클래스에 필요한 소스와 파라미터(객체) 정보를 모두 캡슐화하는 클래스예요.

출처: Java API Reference

본문

ParameterBlockObject를 확장하며 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는 참조로 복사되어 양쪽 모두에서 변경이 보임)

더 알아보기