モジュール java.desktop
パッケージ java.awt.image.renderable

クラスParameterBlock

java.lang.Object
java.awt.image.renderable.ParameterBlock
すべての実装されたインタフェース:
Serializable, Cloneable

public class ParameterBlock
extends Object
implements Cloneable, Serializable
ParameterBlockは、RenderableImageOpや、イメージを処理するほかのクラスによって必要とされるソースおよびパラメータ(Object)についてのすべての情報をカプセル化します。

ソースVectorには任意のオブジェクトを配置できますが、このクラスのユーザーは、たとえば、すべてのソースはRenderedImagesまたはRenderableImageでなければならない、などのような意味制約を加えることもできます。 ParameterBlock自体はコンテナにすぎないので、ソースまたはパラメータの型のチェックは行いません。

ParameterBlockのパラメータはすべてオブジェクトです。基本型の引数をとる簡易addメソッドおよびsetメソッドが利用可能で、適切なNumber (IntegerまたはFloatなど)のサブクラスを作成します。 対応するgetメソッドは、下方キャストを実行し、基本型の戻り値を受け取ります。 格納される値の型が正しい型でない場合は、例外がスローされます。short s; add(s)の結果とadd(new Short(s))の結果は区別できません。

getメソッドおよびsetメソッドは参照に影響を与えます。 したがって、ParameterBlock間での参照の共有が不適切な場合は、共有しないようにしてください。 たとえば、追加されたソースを除いて、古いParameterBlockと同じ新しいParameterBlockを作成する場合に、次のように記述してしまいがちです。

 ParameterBlock addSource(ParameterBlock pb, RenderableImage im) {
     ParameterBlock pb1 = new ParameterBlock(pb.getSources());
     pb1.addSource(im);
     return pb1;
 }
 

このコードは、getSources操作がソースVectorへの参照を返したために、元のParameterBlockを変更する副作用があります。 pbとpb1はソースVectorを共有しているので、一方の変更は両方に対して可視になります。

addSource関数の記述方法で適切なのは、次のようにソースVectorを複製する方法です。

 ParameterBlock addSource (ParameterBlock pb, RenderableImage im) {
     ParameterBlock pb1 = new ParameterBlock(pb.getSources().clone());
     pb1.addSource(im);
     return pb1;
 }
 

ParameterBlockのcloneメソッドは、こうした理由でソースとパラメータの両方のVectorの複製を実行するように定義されています。 標準のシャロー複製をshallowCloneとして利用できます。

addSource、setSource、add、およびsetの各メソッドは、引数を追加したあとでthisを返すように定義されます。 そのため、次のような構文の使用が可能です。

 ParameterBlock pb = new ParameterBlock();
 op = new RenderableImageOp("operation", pb.add(arg1).add(arg2));
 

関連項目:
直列化された形式
  • フィールドのサマリー

    フィールド
    修飾子と型 フィールド 説明
    protected Vector<Object> parameters
    任意のObjectとして格納される、ソース以外のパラメータのVectorです。
    protected Vector<Object> sources
    任意のObjectとして格納される、ソースのVectorです。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ 説明
    ParameterBlock()
    ダミー・コンストラクタです。
    ParameterBlock​(Vector<Object> sources)
    指定されたソースのVectorを使ってParameterBlockを構築します。
    ParameterBlock​(Vector<Object> sources, Vector<Object> parameters)
    指定されたソースのVectorおよびパラメータのVectorを使ってParameterBlockを構築します。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    ParameterBlock add​(byte b)
    Byteをパラメータのリストに追加します。
    ParameterBlock add​(char c)
    Characterをパラメータのリストに追加します。
    ParameterBlock add​(double d)
    Doubleをパラメータのリストに追加します。
    ParameterBlock add​(float f)
    Floatをパラメータのリストに追加します。
    ParameterBlock add​(int i)
    Integerをパラメータのリストに追加します。
    ParameterBlock add​(long l)
    Longをパラメータのリストに追加します。
    ParameterBlock add​(short s)
    Shortをパラメータのリストに追加します。
    ParameterBlock add​(Object obj)
    オブジェクトをパラメータのリストに追加します。
    ParameterBlock addSource​(Object source)
    イメージをソースのリストの最後に追加します。
    Object clone()
    ParameterBlockのコピーを作成します。
    byte getByteParameter​(int index)
    パラメータをbyteとして返す簡易メソッドです。
    char getCharParameter​(int index)
    パラメータをcharとして返す簡易メソッドです。
    double getDoubleParameter​(int index)
    パラメータをdoubleとして返す簡易メソッドです。
    float getFloatParameter​(int index)
    パラメータをfloatとして返す簡易メソッドです。
    int getIntParameter​(int index)
    パラメータをintとして返す簡易メソッドです。
    long getLongParameter​(int index)
    パラメータをlongとして返す簡易メソッドです。
    int getNumParameters()
    パラメータの数を返します。ソース・イメージは含みません。
    int getNumSources()
    ソース・イメージの数を返します。
    Object getObjectParameter​(int index)
    パラメータをオブジェクトとして取得します。
    Class<?>[] getParamClasses()
    パラメータの型を記述するClassオブジェクトの配列を返します。
    Vector<Object> getParameters()
    パラメータのVector全体を返します。
    RenderableImage getRenderableSource​(int index)
    ソースをRenderableImageとして返します。
    RenderedImage getRenderedSource​(int index)
    ソースをRenderedImageとして返します。
    short getShortParameter​(int index)
    パラメータをshortとして返す簡易メソッドです。
    Object getSource​(int index)
    ソースを一般的なObjectとして返します。
    Vector<Object> getSources()
    ソースのVector全体を返します。
    void removeParameters()
    パラメータのリストをクリアします。
    void removeSources()
    ソース・イメージのリストをクリアします。
    ParameterBlock set​(byte b, int index)
    パラメータのリストのObjectをByteに置き換えます。
    ParameterBlock set​(char c, int index)
    パラメータのリストのObjectをCharacterに置き換えます。
    ParameterBlock set​(double d, int index)
    パラメータのリストのObjectをDoubleに置き換えます。
    ParameterBlock set​(float f, int index)
    パラメータのリストのObjectをFloatに置き換えます。
    ParameterBlock set​(int i, int index)
    パラメータのリストのObjectをIntegerに置き換えます。
    ParameterBlock set​(long l, int index)
    パラメータのリストのObjectをLongに置き換えます。
    ParameterBlock set​(short s, int index)
    パラメータのリストのObjectをShortに置き換えます。
    ParameterBlock set​(Object obj, int index)
    パラメータのリストのObjectを置き換えます。
    void setParameters​(Vector<Object> parameters)
    指定されたVectorにパラメータのVector全体を設定します。
    ParameterBlock setSource​(Object source, int index)
    ソースのリストのエントリを新しいソースに置き換えます。
    void setSources​(Vector<Object> sources)
    指定されたVectorにソースのVector全体を設定します。
    Object shallowClone()
    ParameterBlockのシャロー・コピーを作成します。

    クラス java.lang.Objectで宣言されたメソッド

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

    • sources

      protected Vector<Object> sources
      任意のObjectとして格納される、ソースのVectorです。
    • parameters

      protected Vector<Object> parameters
      任意のObjectとして格納される、ソース以外のパラメータのVectorです。
  • コンストラクタの詳細

    • ParameterBlock

      public ParameterBlock()
      ダミー・コンストラクタです。
    • ParameterBlock

      public ParameterBlock​(Vector<Object> sources)
      指定されたソースのVectorを使ってParameterBlockを構築します。
      パラメータ:
      sources - ソース・イメージのVector
    • ParameterBlock

      public ParameterBlock​(Vector<Object> sources, Vector<Object> parameters)
      指定されたソースのVectorおよびパラメータのVectorを使ってParameterBlockを構築します。
      パラメータ:
      sources - ソース・イメージのVector
      parameters - 描画操作で使用されるパラメータのVector
  • メソッドの詳細

    • shallowClone

      public Object shallowClone()
      ParameterBlockのシャロー・コピーを作成します。 ソースおよびパラメータのVectorは参照でコピーされます。追加や変更は両方のバージョンに対して可視になります。
      戻り値:
      ParameterBlockのObjectの複製。
    • clone

      public Object clone()
      ParameterBlockのコピーを作成します。 ソースおよびパラメータのVectorは複製されますが、実際のソースおよびパラメータは参照でコピーされます。 このため、複製でのソースおよびパラメータの順序と数の変更は、元のParameterBlockからは不可視になります。 一方、共有されるソースまたはパラメータ自体の変更は可視になります。
      オーバーライド:
      clone、クラス: Object
      戻り値:
      ParameterBlockのObjectの複製。
      関連項目:
      Cloneable
    • addSource

      public ParameterBlock addSource​(Object source)
      イメージをソースのリストの最後に追加します。 将来、新しいnode型の許可ができるように、イメージはオブジェクトとして格納されます。
      パラメータ:
      source - ソース・リストに格納されるイメージ・オブジェクト。
      戻り値:
      指定されたsourceを格納する新規のParameterBlock
    • getSource

      public Object getSource​(int index)
      ソースを一般的なObjectとして返します。 呼出し側はそれを適切な型にキャストする必要があります。
      パラメータ:
      index - 返されるソースのインデックス。
      戻り値:
      sources Vector内の指定されたインデックスにあるソースを表すObject
      関連項目:
      setSource(Object, int)
    • setSource

      public ParameterBlock setSource​(Object source, int index)
      ソースのリストのエントリを新しいソースに置き換えます。 indexの値が現在のソース・リストを超える場合は、必要に応じてnullを使ってリストが拡張されます。
      パラメータ:
      source - 指定されたソース・イメージ
      index - 指定されたsourceを挿入するsources Vector内のインデックス
      戻り値:
      指定されたsourceを指定されたindexで格納する新規のParameterBlock
      関連項目:
      getSource(int)
    • getRenderedSource

      public RenderedImage getRenderedSource​(int index)
      ソースをRenderedImageとして返します。 このメソッドは簡易メソッドです。 ソースがRenderedImageでない場合、例外がスローされます。
      パラメータ:
      index - 返されるソースのインデックス
      戻り値:
      sources Vector内の指定されたインデックスにあるソース・イメージを表すRenderedImage
    • getRenderableSource

      public RenderableImage getRenderableSource​(int index)
      ソースをRenderableImageとして返します。 このメソッドは簡易メソッドです。 ソースがRenderableImageでない場合、例外がスローされます。
      パラメータ:
      index - 返されるソースのインデックス
      戻り値:
      sources Vector内の指定されたインデックスにあるソース・イメージを表すRenderableImage
    • getNumSources

      public int getNumSources()
      ソース・イメージの数を返します。
      戻り値:
      sources Vector内のソース・イメージの数。
    • getSources

      public Vector<Object> getSources()
      ソースのVector全体を返します。
      戻り値:
      sources Vector
      関連項目:
      setSources(Vector)
    • setSources

      public void setSources​(Vector<Object> sources)
      指定されたVectorにソースのVector全体を設定します。
      パラメータ:
      sources - ソース・イメージのVector
      関連項目:
      getSources()
    • removeSources

      public void removeSources()
      ソース・イメージのリストをクリアします。
    • getNumParameters

      public int getNumParameters()
      パラメータの数を返します。ソース・イメージは含みません。
      戻り値:
      parameters Vector内のパラメータの数。
    • getParameters

      public Vector<Object> getParameters()
      パラメータのVector全体を返します。
      戻り値:
      parameters Vector
      関連項目:
      setParameters(Vector)
    • setParameters

      public void setParameters​(Vector<Object> parameters)
      指定されたVectorにパラメータのVector全体を設定します。
      パラメータ:
      parameters - パラメータの指定されたVector
      関連項目:
      getParameters()
    • removeParameters

      public void removeParameters()
      パラメータのリストをクリアします。
    • add

      public ParameterBlock add​(Object obj)
      オブジェクトをパラメータのリストに追加します。
      パラメータ:
      obj - parameters Vectorに追加するObject
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • add

      public ParameterBlock add​(byte b)
      Byteをパラメータのリストに追加します。
      パラメータ:
      b - parameters Vectorに追加するbyte
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • add

      public ParameterBlock add​(char c)
      Characterをパラメータのリストに追加します。
      パラメータ:
      c - parameters Vectorに追加するchar
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • add

      public ParameterBlock add​(short s)
      Shortをパラメータのリストに追加します。
      パラメータ:
      s - parameters Vectorに追加するshort
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • add

      public ParameterBlock add​(int i)
      Integerをパラメータのリストに追加します。
      パラメータ:
      i - parameters Vectorに追加するint
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • add

      public ParameterBlock add​(long l)
      Longをパラメータのリストに追加します。
      パラメータ:
      l - parameters Vectorに追加するlong
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • add

      public ParameterBlock add​(float f)
      Floatをパラメータのリストに追加します。
      パラメータ:
      f - parameters Vectorに追加するfloat
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • add

      public ParameterBlock add​(double d)
      Doubleをパラメータのリストに追加します。
      パラメータ:
      d - parameters Vectorに追加するdouble
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • set

      public ParameterBlock set​(Object obj, int index)
      パラメータのリストのObjectを置き換えます。 indexの値が現在のソース・リストを超える場合は、必要に応じてnullを使ってリストが拡張されます。
      パラメータ:
      obj - parameters Vector内の指定されたインデックスにあるパラメータを置き換えるパラメータ
      index - 指定されたパラメータに置き換えられるパラメータのインデックス
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • set

      public ParameterBlock set​(byte b, int index)
      パラメータのリストのObjectをByteに置き換えます。 indexの値が現在のソース・リストを超える場合は、必要に応じてnullを使ってリストが拡張されます。
      パラメータ:
      b - parameters Vector内の指定されたインデックスにあるパラメータを置き換えるパラメータ
      index - 指定されたパラメータに置き換えられるパラメータのインデックス
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • set

      public ParameterBlock set​(char c, int index)
      パラメータのリストのObjectをCharacterに置き換えます。 indexの値が現在のソース・リストを超える場合は、必要に応じてnullを使ってリストが拡張されます。
      パラメータ:
      c - parameters Vector内の指定されたインデックスにあるパラメータを置き換えるパラメータ
      index - 指定されたパラメータに置き換えられるパラメータのインデックス
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • set

      public ParameterBlock set​(short s, int index)
      パラメータのリストのObjectをShortに置き換えます。 indexの値が現在のソース・リストを超える場合は、必要に応じてnullを使ってリストが拡張されます。
      パラメータ:
      s - parameters Vector内の指定されたインデックスにあるパラメータを置き換えるパラメータ
      index - 指定されたパラメータに置き換えられるパラメータのインデックス
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • set

      public ParameterBlock set​(int i, int index)
      パラメータのリストのObjectをIntegerに置き換えます。 indexの値が現在のソース・リストを超える場合は、必要に応じてnullを使ってリストが拡張されます。
      パラメータ:
      i - parameters Vector内の指定されたインデックスにあるパラメータを置き換えるパラメータ
      index - 指定されたパラメータに置き換えられるパラメータのインデックス
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • set

      public ParameterBlock set​(long l, int index)
      パラメータのリストのObjectをLongに置き換えます。 indexの値が現在のソース・リストを超える場合は、必要に応じてnullを使ってリストが拡張されます。
      パラメータ:
      l - parameters Vector内の指定されたインデックスにあるパラメータを置き換えるパラメータ
      index - 指定されたパラメータに置き換えられるパラメータのインデックス
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • set

      public ParameterBlock set​(float f, int index)
      パラメータのリストのObjectをFloatに置き換えます。 indexの値が現在のソース・リストを超える場合は、必要に応じてnullを使ってリストが拡張されます。
      パラメータ:
      f - parameters Vector内の指定されたインデックスにあるパラメータを置き換えるパラメータ
      index - 指定されたパラメータに置き換えられるパラメータのインデックス
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • set

      public ParameterBlock set​(double d, int index)
      パラメータのリストのObjectをDoubleに置き換えます。 indexの値が現在のソース・リストを超える場合は、必要に応じてnullを使ってリストが拡張されます。
      パラメータ:
      d - parameters Vector内の指定されたインデックスにあるパラメータを置き換えるパラメータ
      index - 指定されたパラメータに置き換えられるパラメータのインデックス
      戻り値:
      指定されたパラメータを格納する新規のParameterBlock
    • getObjectParameter

      public Object getObjectParameter​(int index)
      パラメータをオブジェクトとして取得します。
      パラメータ:
      index - 取得するパラメータのインデックス
      戻り値:
      parameters Vector内の指定されたインデックスにあるパラメータを表すObject
    • getByteParameter

      public byte getByteParameter​(int index)
      パラメータをbyteとして返す簡易メソッドです。 パラメータがnullの場合、またはByteでない場合は、例外がスローされます。
      パラメータ:
      index - 返されるパラメータのインデックス。
      戻り値:
      指定されたインデックスでのbyte値としてのパラメータ。
      例外:
      ClassCastException - 指定されたインデックスでのパラメータがByteでない場合
      NullPointerException - 指定されたインデックスでのパラメータがnullの場合
      ArrayIndexOutOfBoundsException - indexが負の場合、またはこのParameterBlockオブジェクトの現在のサイズ以上である場合
    • getCharParameter

      public char getCharParameter​(int index)
      パラメータをcharとして返す簡易メソッドです。 パラメータがnullの場合、またはCharacterでない場合は、例外がスローされます。
      パラメータ:
      index - 返されるパラメータのインデックス。
      戻り値:
      指定されたインデックスでのchar値としてのパラメータ。
      例外:
      ClassCastException - 指定されたインデックスでのパラメータがCharacterでない場合
      NullPointerException - 指定されたインデックスでのパラメータがnullの場合
      ArrayIndexOutOfBoundsException - indexが負の場合、またはこのParameterBlockオブジェクトの現在のサイズ以上である場合
    • getShortParameter

      public short getShortParameter​(int index)
      パラメータをshortとして返す簡易メソッドです。 パラメータがnullの場合、またはShortでない場合は、例外がスローされます。
      パラメータ:
      index - 返されるパラメータのインデックス。
      戻り値:
      指定されたインデックスでのshort値としてのパラメータ。
      例外:
      ClassCastException - 指定されたインデックスでのパラメータがShortでない場合
      NullPointerException - 指定されたインデックスでのパラメータがnullの場合
      ArrayIndexOutOfBoundsException - indexが負の場合、またはこのParameterBlockオブジェクトの現在のサイズ以上である場合
    • getIntParameter

      public int getIntParameter​(int index)
      パラメータをintとして返す簡易メソッドです。 パラメータがnullの場合、またはIntegerでない場合は、例外がスローされます。
      パラメータ:
      index - 返されるパラメータのインデックス。
      戻り値:
      指定されたインデックスのパラメータをintの値として返します。
      例外:
      ClassCastException - 指定されたインデックスのパラメータがIntegerでない場合
      NullPointerException - 指定されたインデックスでのパラメータがnullの場合
      ArrayIndexOutOfBoundsException - indexが負の場合、またはこのParameterBlockオブジェクトの現在のサイズ以上である場合
    • getLongParameter

      public long getLongParameter​(int index)
      パラメータをlongとして返す簡易メソッドです。 パラメータがnullの場合、またはLongでない場合は、例外がスローされます。
      パラメータ:
      index - 返されるパラメータのインデックス。
      戻り値:
      指定されたインデックスでのlong値としてのパラメータ。
      例外:
      ClassCastException - 指定されたインデックスでのパラメータがLongでない場合
      NullPointerException - 指定されたインデックスでのパラメータがnullの場合
      ArrayIndexOutOfBoundsException - indexが負の場合、またはこのParameterBlockオブジェクトの現在のサイズ以上である場合
    • getFloatParameter

      public float getFloatParameter​(int index)
      パラメータをfloatとして返す簡易メソッドです。 パラメータがnullの場合、またはFloatでない場合は、例外がスローされます。
      パラメータ:
      index - 返されるパラメータのインデックス。
      戻り値:
      指定されたインデックスでのfloat値としてのパラメータ。
      例外:
      ClassCastException - 指定されたインデックスでのパラメータがFloatでない場合
      NullPointerException - 指定されたインデックスでのパラメータがnullの場合
      ArrayIndexOutOfBoundsException - indexが負の場合、またはこのParameterBlockオブジェクトの現在のサイズ以上である場合
    • getDoubleParameter

      public double getDoubleParameter​(int index)
      パラメータをdoubleとして返す簡易メソッドです。 パラメータがnullの場合、またはDoubleでない場合は、例外がスローされます。
      パラメータ:
      index - 返されるパラメータのインデックス。
      戻り値:
      指定されたインデックスでのdouble値としてのパラメータ。
      例外:
      ClassCastException - 指定されたインデックスでのパラメータがDoubleでない場合
      NullPointerException - 指定されたインデックスでのパラメータがnullの場合
      ArrayIndexOutOfBoundsException - indexが負の場合、またはこのParameterBlockオブジェクトの現在のサイズ以上である場合
    • getParamClasses

      public Class<?>[] getParamClasses()
      パラメータの型を記述するClassオブジェクトの配列を返します。
      戻り値:
      Classオブジェクトの配列。