public class ParameterBlock extends Objectimplements Cloneable , Serializable
ParameterBlock encapsulates all the information about sources and parameters (Objects) required by a RenderableImageOp, or other classes that process images.
Although it is possible to place arbitrary objects in the source Vector, users of this class may impose semantic constraints such as requiring all sources to be RenderedImages or RenderableImage. ParameterBlock itself is merely a container and performs no checking on source or parameter types.
All parameters in a ParameterBlock are objects; convenience add and set methods are available that take arguments of base type and construct the appropriate subclass of Number (such as Integer or Float). Corresponding get methods perform a downward cast and have return values of base type; an exception will be thrown if the stored values do not have the correct type. There is no way to distinguish between the results of "short s; add(s)" and "add(new Short(s))".
Note that the get and set methods operate on references. Therefore, one must be careful not to share references between ParameterBlocks when this is inappropriate. For example, to create a new ParameterBlock that is equal to an old one except for an added source, one might be tempted to write:
ParameterBlock addSource(ParameterBlock pb, RenderableImage im) {
ParameterBlock pb1 = new ParameterBlock(pb.getSources());
pb1.addSource(im);
return pb1;
}
This code will have the side effect of altering the original ParameterBlock, since the getSources operation returned a reference to its source Vector. Both pb and pb1 share their source Vector, and a change in either is visible to both.
A correct way to write the addSource function is to clone the source Vector:
ParameterBlock addSource (ParameterBlock pb, RenderableImage im) {
ParameterBlock pb1 = new ParameterBlock(pb.getSources().clone());
pb1.addSource(im);
return pb1;
}
The clone method of ParameterBlock has been defined to perform a clone of both the source and parameter Vectors for this reason. A standard, shallow clone is available as shallowClone.
The addSource, setSource, add, and set methods are defined to return 'this' after adding their argument. This allows use of syntax like:
ParameterBlock pb = new ParameterBlock();
op = new RenderableImageOp("operation", pb.add(arg1).add(arg2));
| Modifier and Type | Field and Description |
|---|---|
protected Vector |
parameters
A Vector of non-source parameters, stored as arbitrary Objects.
|
protected Vector |
sources
A Vector of sources, stored as arbitrary Objects.
|
| Constructor and Description |
|---|
ParameterBlock()
A dummy constructor.
|
ParameterBlock(Vector
Constructs a
ParameterBlock with a given Vector of sources.
|
ParameterBlock(Vector
Constructs a
ParameterBlock with a given Vector of sources and Vector of parameters.
|
| Modifier and Type | Method and Description |
|---|---|
ParameterBlock |
add(byte b)
Adds a Byte to the list of parameters.
|
ParameterBlock |
add(char c)
Adds a Character to the list of parameters.
|
ParameterBlock |
add(double d)
Adds a Double to the list of parameters.
|
ParameterBlock |
add(float f)
Adds a Float to the list of parameters.
|
ParameterBlock |
add(int i)
Adds a Integer to the list of parameters.
|
ParameterBlock |
add(long l)
Adds a Long to the list of parameters.
|
ParameterBlock |
add(Object
Adds an object to the list of parameters.
|
ParameterBlock |
add(short s)
Adds a Short to the list of parameters.
|
ParameterBlock |
addSource(Object
Adds an image to end of the list of sources.
|
Object |
clone()
Creates a copy of a
ParameterBlock.
|
byte |
getByteParameter(int index)
A convenience method to return a parameter as a byte.
|
char |
getCharParameter(int index)
A convenience method to return a parameter as a char.
|
double |
getDoubleParameter(int index)
A convenience method to return a parameter as a double.
|
float |
getFloatParameter(int index)
A convenience method to return a parameter as a float.
|
int |
getIntParameter(int index)
A convenience method to return a parameter as an int.
|
long |
getLongParameter(int index)
A convenience method to return a parameter as a long.
|
int |
getNumParameters()
Returns the number of parameters (not including source images).
|
int |
getNumSources()
Returns the number of source images.
|
Object |
getObjectParameter(int index)
Gets a parameter as an object.
|
Class |
getParamClasses()
Returns an array of Class objects describing the types of the parameters.
|
Vector |
getParameters()
Returns the entire Vector of parameters.
|
RenderableImage |
getRenderableSource(int index)
Returns a source as a RenderableImage.
|
RenderedImage |
getRenderedSource(int index)
Returns a source as a
RenderedImage.
|
short |
getShortParameter(int index)
A convenience method to return a parameter as a short.
|
Object |
getSource(int index)
Returns a source as a general Object.
|
Vector |
getSources()
Returns the entire Vector of sources.
|
void |
removeParameters()
Clears the list of parameters.
|
void |
removeSources()
Clears the list of source images.
|
ParameterBlock |
set(byte b, int index)
Replaces an Object in the list of parameters with a Byte.
|
ParameterBlock |
set(char c, int index)
Replaces an Object in the list of parameters with a Character.
|
ParameterBlock |
set(double d, int index)
Replaces an Object in the list of parameters with a Double.
|
ParameterBlock |
set(float f, int index)
Replaces an Object in the list of parameters with a Float.
|
ParameterBlock |
set(int i, int index)
Replaces an Object in the list of parameters with an Integer.
|
ParameterBlock |
set(long l, int index)
Replaces an Object in the list of parameters with a Long.
|
ParameterBlock |
set(Object
Replaces an Object in the list of parameters.
|
ParameterBlock |
set(short s, int index)
Replaces an Object in the list of parameters with a Short.
|
void |
setParameters(Vector
Sets the entire Vector of parameters to a given Vector.
|
ParameterBlock |
setSource(Object
Replaces an entry in the list of source with a new source.
|
void |
setSources(Vector
Sets the entire Vector of sources to a given Vector.
|
Object |
shallowClone()
Creates a shallow copy of a
ParameterBlock.
|
public ParameterBlock()
public ParameterBlock(Vector<Object > sources)
ParameterBlock with a given Vector of sources.
sources - a
Vector of source images
public ObjectshallowClone()
ParameterBlock. The source and parameter Vectors are copied by reference -- additions or changes will be visible to both versions.
ParameterBlock.
public Objectclone()
ParameterBlock. The source and parameter Vectors are cloned, but the actual sources and parameters are copied by reference. This allows modifications to the order and number of sources and parameters in the clone to be invisible to the original
ParameterBlock. Changes to the shared sources or parameters themselves will still be visible.
public ParameterBlockaddSource(Object source)
source - an image object to be stored in the source list.
ParameterBlock containing the specified
source.
public ObjectgetSource(int index)
index - the index of the source to be returned.
Object that represents the source located at the specified index in the
sources
Vector.
setSource(Object, int)
public ParameterBlocksetSource(Object source, int index)
source - the specified source image
index - the index into the
sources
Vector at which to insert the specified
source
ParameterBlock that contains the specified
source at the specified
index.
getSource(int)
public RenderedImagegetRenderedSource(int index)
RenderedImage. This method is a convenience method. An exception will be thrown if the source is not a RenderedImage.
index - the index of the source to be returned
RenderedImage that represents the source image that is at the specified index in the
sources
Vector.
public RenderableImagegetRenderableSource(int index)
index - the index of the source to be returned
RenderableImage that represents the source image that is at the specified index in the
sources
Vector.
public int getNumSources()
sources
Vector.
public Vector<Object > getSources()
sources
Vector.
setSources(Vector)
public void setSources(Vector<Object > sources)
sources - the
Vector of source images
getSources()
public void removeSources()
public int getNumParameters()
parameters
Vector.
public Vector<Object > getParameters()
parameters
Vector.
setParameters(Vector)
public void setParameters(Vector<Object > parameters)
parameters - the specified
Vector of parameters
getParameters()
public void removeParameters()
public ParameterBlockadd(Object obj)
obj - the
Object to add to the
parameters
Vector
ParameterBlock containing the specified parameter.
public ParameterBlockadd(byte b)
b - the byte to add to the
parameters
Vector
ParameterBlock containing the specified parameter.
public ParameterBlockadd(char c)
c - the char to add to the
parameters
Vector
ParameterBlock containing the specified parameter.
public ParameterBlockadd(short s)
s - the short to add to the
parameters
Vector
ParameterBlock containing the specified parameter.
public ParameterBlockadd(int i)
i - the int to add to the
parameters
Vector
ParameterBlock containing the specified parameter.
public ParameterBlockadd(long l)
l - the long to add to the
parameters
Vector
ParameterBlock containing the specified parameter.
public ParameterBlockadd(float f)
f - the float to add to the
parameters
Vector
ParameterBlock containing the specified parameter.
public ParameterBlockadd(double d)
d - the double to add to the
parameters
Vector
ParameterBlock containing the specified parameter.
public ParameterBlockset(Object obj, int index)
obj - the parameter that replaces the parameter at the specified index in the
parameters
Vector
index - the index of the parameter to be replaced with the specified parameter
ParameterBlock containing the specified parameter.
public ParameterBlockset(byte b, int index)
b - the parameter that replaces the parameter at the specified index in the
parameters
Vector
index - the index of the parameter to be replaced with the specified parameter
ParameterBlock containing the specified parameter.
public ParameterBlockset(char c, int index)
c - the parameter that replaces the parameter at the specified index in the
parameters
Vector
index - the index of the parameter to be replaced with the specified parameter
ParameterBlock containing the specified parameter.
public ParameterBlockset(short s, int index)
s - the parameter that replaces the parameter at the specified index in the
parameters
Vector
index - the index of the parameter to be replaced with the specified parameter
ParameterBlock containing the specified parameter.
public ParameterBlockset(int i, int index)
i - the parameter that replaces the parameter at the specified index in the
parameters
Vector
index - the index of the parameter to be replaced with the specified parameter
ParameterBlock containing the specified parameter.
public ParameterBlockset(long l, int index)
l - the parameter that replaces the parameter at the specified index in the
parameters
Vector
index - the index of the parameter to be replaced with the specified parameter
ParameterBlock containing the specified parameter.
public ParameterBlockset(float f, int index)
f - the parameter that replaces the parameter at the specified index in the
parameters
Vector
index - the index of the parameter to be replaced with the specified parameter
ParameterBlock containing the specified parameter.
public ParameterBlockset(double d, int index)
d - the parameter that replaces the parameter at the specified index in the
parameters
Vector
index - the index of the parameter to be replaced with the specified parameter
ParameterBlock containing the specified parameter.
public ObjectgetObjectParameter(int index)
index - the index of the parameter to get
Object representing the the parameter at the specified index into the
parameters
Vector.
public byte getByteParameter(int index)
null or not a
Byte.
index - the index of the parameter to be returned.
byte value.
ClassCastException - if the parameter at the specified index is not a
Byte
NullPointerException - if the parameter at the specified index is
null
ArrayIndexOutOfBoundsException - if
index is negative or not less than the current size of this
ParameterBlock object
public char getCharParameter(int index)
null or not a
Character.
index - the index of the parameter to be returned.
char value.
ClassCastException - if the parameter at the specified index is not a
Character
NullPointerException - if the parameter at the specified index is
null
ArrayIndexOutOfBoundsException - if
index is negative or not less than the current size of this
ParameterBlock object
public short getShortParameter(int index)
null or not a
Short.
index - the index of the parameter to be returned.
short value.
ClassCastException - if the parameter at the specified index is not a
Short
NullPointerException - if the parameter at the specified index is
null
ArrayIndexOutOfBoundsException - if
index is negative or not less than the current size of this
ParameterBlock object
public int getIntParameter(int index)
null or not an
Integer.
index - the index of the parameter to be returned.
int value.
ClassCastException - if the parameter at the specified index is not a
Integer
NullPointerException - if the parameter at the specified index is
null
ArrayIndexOutOfBoundsException - if
index is negative or not less than the current size of this
ParameterBlock object
public long getLongParameter(int index)
null or not a
Long.
index - the index of the parameter to be returned.
long value.
ClassCastException - if the parameter at the specified index is not a
Long
NullPointerException - if the parameter at the specified index is
null
ArrayIndexOutOfBoundsException - if
index is negative or not less than the current size of this
ParameterBlock object
public float getFloatParameter(int index)
null or not a
Float.
index - the index of the parameter to be returned.
float value.
ClassCastException - if the parameter at the specified index is not a
Float
NullPointerException - if the parameter at the specified index is
null
ArrayIndexOutOfBoundsException - if
index is negative or not less than the current size of this
ParameterBlock object
public double getDoubleParameter(int index)
null or not a
Double.
index - the index of the parameter to be returned.
double value.
ClassCastException - if the parameter at the specified index is not a
Double
NullPointerException - if the parameter at the specified index is
null
ArrayIndexOutOfBoundsException - if
index is negative or not less than the current size of this
ParameterBlock object
public Class[] getParamClasses()
Class objects.