モジュール java.desktop
パッケージ 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を構築します。
    • フィールドの詳細

      • 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オブジェクトの配列。