模块  java.desktop

Class ParameterBlock

  • 实现的所有接口
    SerializableCloneable

    public class ParameterBlock
    extends Object
    implements Cloneable, Serializable
    ParameterBlock封装了有关RenderableImageOp或其他处理图像的类所需的源和参数(对象)的所有信息。

    虽然可以在源Vector中放置任意对象,但是此类的用户可能会施加语义约束,例如要求所有源都是RenderedImages或RenderableImage。 ParameterBlock本身只是一个容器,不会检查源或参数类型。

    ParameterBlock中的所有参数都是对象; 方便的add和set方法可用于获取基类型的参数并构造Number的相应子类(例如Integer或Float)。 相应的get方法执行向下转换并具有基类型的返回值; 如果存储的值没有正确的类型,则抛出异常。 无法区分“short s; add(s)”和“add(new Short(s))”的结果。

    请注意,get和set方法对引用进行操作。 因此,当不合适时,必须注意不要在ParameterBlock之间共享引用。 例如,要创建一个新的ParameterBlock ,除了添加的源之外,它等于旧的,可能有人想写:

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

    此代码将具有更改原始ParameterBlock ,因为getSources操作返回对其源Vector的引用。 pb和pb1都共享它们的源Vector,并且两者中的任何一个都可以看到。

    编写addSource函数的正确方法是克隆源Vector:

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

    由于这个原因,已经定义了ParameterBlock的克隆方法以执行源和参数向量的克隆。 标准的浅克隆可用作shallowClone。

    addSource,setSource,add和set方法被定义为在添加参数后返回'this'。 这允许使用如下语法:

      ParameterBlock pb = new ParameterBlock();
     op = new RenderableImageOp("operation", pb.add(arg1).add(arg2)); 
    另请参见:
    Serialized Form
    • 字段详细信息

      • sources

        protected Vector<Object> sources
        源向量,存储为任意对象。
      • parameters

        protected Vector<Object> parameters
        非源参数的矢量,存储为任意对象。
    • 构造方法详细信息

      • ParameterBlock

        public ParameterBlock()
        虚拟构造函数。
      • ParameterBlock

        public ParameterBlock​(Vector<Object> sources)
        构造具有给定Vector源的 ParameterBlock
        参数
        sources - 源图像的 Vector
      • ParameterBlock

        public ParameterBlock​(Vector<Object> sources,
                              Vector<Object> parameters)
        使用给定的源向量和参数向量构造 ParameterBlock
        参数
        sources - 源图像的 Vector
        parameters - 要在渲染操作中使用的参数 Vector
    • 方法详细信息

      • shallowClone

        public Object shallowClone()
        创建ParameterBlock的浅表副本。 源和参数Vector通过引用复制 - 两个版本都可以看到添加或更改。
        结果
        ParameterBlock的对象克隆。
      • clone

        public Object clone()
        创建ParameterBlock的副本。 克隆源和参数Vector,但通过引用复制实际的源和参数。 这允许修改克隆中的源和参数的顺序和数量对原始ParameterBlock不可见。 对共享源或参数本身的更改仍然可见。
        重写:
        clone在课程 Object
        结果
        ParameterBlock的对象克隆。
        另请参见:
        Cloneable
      • addSource

        public ParameterBlock addSource​(Object source)
        将图像添加到源列表的末尾。 图像存储为对象,以便将来允许新的节点类型。
        参数
        source - 要存储在源列表中的图像对象。
        结果
        ParameterBlock包含指定 source
      • getSource

        public Object getSource​(int index)
        将源作为常规Object返回。 调用者必须将其转换为适当的类型。
        参数
        index - 要返回的源的索引。
        结果
        Object ,表示位于 sources Vector指定索引处的源。
        另请参见:
        setSource(Object, int)
      • setSource

        public ParameterBlock setSource​(Object source,
                                        int index)
        用新源替换源列表中的条目。 如果索引位于当前源列表之外,则根据需要使用空值扩展列表。
        参数
        source - 指定的源图像
        index -索引到 sources Vector要插入指定 source
        结果
        新的 ParameterBlock ,包含指定的 source ,指定的 index
        另请参见:
        getSource(int)
      • getRenderedSource

        public RenderedImage getRenderedSource​(int index)
        返回源为RenderedImage 该方法是一种方便的方法。 如果源不是RenderedImage,则抛出异常。
        参数
        index - 要返回的源的索引
        结果
        一个 RenderedImage表示源图像是在指定索引处 sources Vector
      • getRenderableSource

        public RenderableImage getRenderableSource​(int index)
        将源返回为RenderableImage。 该方法是一种方便的方法。 如果源不是RenderableImage,则抛出异常。
        参数
        index - 要返回的源的索引
        结果
        一个 RenderableImage表示源图像是在指定索引处 sources Vector
      • getNumSources

        public int getNumSources()
        返回源图像的数量。
        结果
        sources Vector的源图像数量。
      • setSources

        public void setSources​(Vector<Object> sources)
        将整个Vector of Source设置为给定的Vector。
        参数
        sources - 源图像的 Vector
        另请参见:
        getSources()
      • removeSources

        public void removeSources()
        清除源图像列表。
      • getNumParameters

        public int getNumParameters()
        返回参数数量(不包括源图像)。
        结果
        parameters Vector的参数数量。
      • setParameters

        public void setParameters​(Vector<Object> parameters)
        将整个参数Vector设置为给定的Vector。
        参数
        parameters - 指定的 Vector参数
        另请参见:
        getParameters()
      • removeParameters

        public void removeParameters()
        清除参数列表。
      • add

        public ParameterBlock add​(Object obj)
        将对象添加到参数列表中。
        参数
        obj - Object加入 parameters Vector
        结果
        包含指定参数的新 ParameterBlock
      • add

        public ParameterBlock add​(byte b)
        将字节添加到参数列表中。
        参数
        b - 要添加到 parameters Vector的字节
        结果
        包含指定参数的新 ParameterBlock
      • add

        public ParameterBlock add​(char c)
        将一个Character添加到参数列表中。
        参数
        c - 要添加到 parameters Vector的字符
        结果
        包含指定参数的新 ParameterBlock
      • add

        public ParameterBlock add​(short s)
        在参数列表中添加Short。
        参数
        s - 短期添加到 parameters Vector
        结果
        包含指定参数的新 ParameterBlock
      • add

        public ParameterBlock add​(int i)
        将Integer添加到参数列表中。
        参数
        i - 要添加到 parameters Vector的int
        结果
        包含指定参数的新 ParameterBlock
      • add

        public ParameterBlock add​(long l)
        将Long添加到参数列表中。
        参数
        l - 长期加入 parameters Vector
        结果
        包含指定参数的新 ParameterBlock
      • add

        public ParameterBlock add​(float f)
        将Float添加到参数列表中。
        参数
        f - 要添加到 parameters Vector
        结果
        包含指定参数的新 ParameterBlock
      • add

        public ParameterBlock add​(double d)
        将Double添加到参数列表中。
        参数
        d - 要添加到 parameters Vector
        结果
        包含指定参数的新 ParameterBlock
      • set

        public ParameterBlock set​(Object obj,
                                  int index)
        替换参数列表中的对象。 如果索引位于当前源列表之外,则根据需要使用空值扩展列表。
        参数
        obj - 替换 parameters Vector指定索引处的参数的参数
        index - 要用指定参数替换的参数的索引
        结果
        包含指定参数的新 ParameterBlock
      • set

        public ParameterBlock set​(byte b,
                                  int index)
        用Byte替换参数列表中的Object。 如果索引位于当前源列表之外,则根据需要使用空值扩展列表。
        参数
        b - 替换 parameters Vector指定索引处的参数的参数
        index - 要用指定参数替换的参数的索引
        结果
        包含指定参数的新 ParameterBlock
      • set

        public ParameterBlock set​(char c,
                                  int index)
        使用Character替换参数列表中的Object。 如果索引位于当前源列表之外,则根据需要使用空值扩展列表。
        参数
        c - 替换 parameters Vector指定索引处的参数的参数
        index - 要用指定参数替换的参数的索引
        结果
        包含指定参数的新 ParameterBlock
      • set

        public ParameterBlock set​(short s,
                                  int index)
        使用Short替换参数列表中的Object。 如果索引位于当前源列表之外,则根据需要使用空值扩展列表。
        参数
        s - 替换 parameters Vector指定索引处的参数的参数
        index - 要用指定参数替换的参数的索引
        结果
        包含指定参数的新 ParameterBlock
      • set

        public ParameterBlock set​(int i,
                                  int index)
        使用Integer替换参数列表中的Object。 如果索引位于当前源列表之外,则根据需要使用空值扩展列表。
        参数
        i - 替换 parameters Vector指定索引处的参数的参数
        index - 要用指定参数替换的参数的索引
        结果
        包含指定参数的新 ParameterBlock
      • set

        public ParameterBlock set​(long l,
                                  int index)
        用Long替换参数列表中的Object。 如果索引位于当前源列表之外,则根据需要使用空值扩展列表。
        参数
        l - 替换 parameters Vector指定索引处的参数的参数
        index - 要用指定参数替换的参数的索引
        结果
        包含指定参数的新 ParameterBlock
      • set

        public ParameterBlock set​(float f,
                                  int index)
        使用Float替换参数列表中的Object。 如果索引位于当前源列表之外,则根据需要使用空值扩展列表。
        参数
        f - 替换 parameters Vector指定索引处的参数的参数
        index - 要用指定参数替换的参数的索引
        结果
        包含指定参数的新 ParameterBlock
      • set

        public ParameterBlock set​(double d,
                                  int index)
        使用Double替换参数列表中的Object。 如果索引位于当前源列表之外,则根据需要使用空值扩展列表。
        参数
        d - 替换 parameters Vector指定索引处的参数的参数
        index - 要用指定参数替换的参数的索引
        结果
        包含指定参数的新 ParameterBlock
      • getObjectParameter

        public Object getObjectParameter​(int index)
        获取参数作为对象。
        参数
        index - 要获取的参数的索引
        结果
        Object表示 parameters Vector指定索引处的参数。
      • getByteParameter

        public byte getByteParameter​(int index)
        将参数作为字节返回的便捷方法。 如果参数是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 <?>[] getParamClasses()
        返回描述参数类型的Class对象数组。
        结果
        一组 对象。