1:
37:
38:
39: package ;
40:
41: import ;
42: import ;
43: import ;
44:
45: public class ParameterBlock implements Cloneable, Serializable
46: {
47: private static final long serialVersionUID = -7577115551785240750L;
48: protected Vector<Object> sources;
49: protected Vector<Object> parameters;
50:
51: public ParameterBlock()
52: {
53: this(new Vector<Object>(), new Vector<Object>());
54: }
55:
56: public ParameterBlock(Vector<Object> sources)
57: {
58: this(sources, new Vector<Object>());
59: }
60:
61: public ParameterBlock(Vector<Object> sources, Vector<Object> parameters)
62: {
63: this.sources = sources;
64: this.parameters = parameters;
65: }
66:
67: public Object shallowClone()
68: {
69: try
70: {
71: return super.clone();
72: }
73: catch (CloneNotSupportedException e)
74: {
75: throw (Error) new InternalError().initCause(e);
76: }
77: }
78:
79: public Object clone()
80: {
81: ParameterBlock pb = (ParameterBlock) shallowClone();
82: if (sources != null)
83: pb.sources = (Vector<Object>) sources.clone();
84: if (parameters != null)
85: pb.parameters = (Vector<Object>) parameters.clone();
86: return pb;
87: }
88:
89: public ParameterBlock addSource(Object source)
90: {
91: sources.add(source);
92: return this;
93: }
94:
95: public Object getSource(int index)
96: {
97: return sources.get(index);
98: }
99:
100: public ParameterBlock setSource(Object source, int index)
101: {
102: sources.ensureCapacity(index);
103: sources.set(index, source);
104: return this;
105: }
106:
107: public RenderedImage getRenderedSource(int index)
108: {
109: return (RenderedImage) sources.get(index);
110: }
111:
112: public RenderableImage getRenderableSource(int index)
113: {
114: return (RenderableImage) sources.get(index);
115: }
116:
117: public int getNumSources()
118: {
119: return sources.size();
120: }
121:
122: public Vector<Object> getSources()
123: {
124: return sources;
125: }
126:
127: public void setSources(Vector<Object> sources)
128: {
129: this.sources = sources;
130: }
131:
132: public void removeSources()
133: {
134: if (sources != null)
135: sources.clear();
136: }
137:
138: public int getNumParameters()
139: {
140: return parameters.size();
141: }
142:
143: public Vector<Object> getParameters()
144: {
145: return parameters;
146: }
147:
148: public void setParameters(Vector<Object> parameters)
149: {
150: this.parameters = parameters;
151: }
152:
153: public void removeParameters()
154: {
155: if (parameters != null)
156: parameters.clear();
157: }
158:
159: public ParameterBlock add(Object o)
160: {
161: parameters.add(o);
162: return this;
163: }
164:
165: public ParameterBlock add(byte b)
166: {
167: return add(new Byte(b));
168: }
169:
170: public ParameterBlock add(char c)
171: {
172: return add(new Character(c));
173: }
174:
175: public ParameterBlock add(short s)
176: {
177: return add(new Short(s));
178: }
179:
180: public ParameterBlock add(int i)
181: {
182: return add(new Integer(i));
183: }
184:
185: public ParameterBlock add(long l)
186: {
187: return add(new Long(l));
188: }
189:
190: public ParameterBlock add(float f)
191: {
192: return add(new Float(f));
193: }
194:
195: public ParameterBlock add(double d)
196: {
197: return add(new Double(d));
198: }
199:
200: public ParameterBlock set(Object o, int index)
201: {
202: parameters.ensureCapacity(index);
203: parameters.set(index, o);
204: return this;
205: }
206:
207: public ParameterBlock set(byte b, int index)
208: {
209: return set(new Byte(b), index);
210: }
211:
212: public ParameterBlock set(char c, int index)
213: {
214: return set(new Character(c), index);
215: }
216:
217: public ParameterBlock set(short s, int index)
218: {
219: return set(new Short(s), index);
220: }
221:
222: public ParameterBlock set(int i, int index)
223: {
224: return set(new Integer(i), index);
225: }
226:
227: public ParameterBlock set(long l, int index)
228: {
229: return set(new Long(l), index);
230: }
231:
232: public ParameterBlock set(float f, int index)
233: {
234: return set(new Float(f), index);
235: }
236:
237: public ParameterBlock set(double d, int index)
238: {
239: return set(new Double(d), index);
240: }
241:
242: public Object getObjectParameter(int index)
243: {
244: return parameters.get(index);
245: }
246:
247: public byte getByteParameter(int index)
248: {
249: return ((Byte) parameters.get(index)).byteValue();
250: }
251:
252: public char getCharParameter(int index)
253: {
254: return ((Character) parameters.get(index)).charValue();
255: }
256:
257: public short getShortParameter(int index)
258: {
259: return ((Short) parameters.get(index)).shortValue();
260: }
261:
262: public int getIntParameter(int index)
263: {
264: return ((Integer) parameters.get(index)).intValue();
265: }
266:
267: public long getLongParameter(int index)
268: {
269: return ((Long) parameters.get(index)).longValue();
270: }
271:
272: public float getFloatParameter(int index)
273: {
274: return ((Float) parameters.get(index)).floatValue();
275: }
276:
277: public double getDoubleParameter(int index)
278: {
279: return ((Double) parameters.get(index)).doubleValue();
280: }
281:
282: public Class[] getParamClasses()
283: {
284: int i = parameters.size();
285: Class[] result = new Class[i];
286: while (--i >= 0)
287: {
288: Class c = parameters.get(i).getClass();
289: if (c == Byte.class)
290: result[i] = byte.class;
291: else if (c == Character.class)
292: result[i] = char.class;
293: else if (c == Short.class)
294: result[i] = short.class;
295: else if (c == Integer.class)
296: result[i] = int.class;
297: else if (c == Long.class)
298: result[i] = long.class;
299: else if (c == Float.class)
300: result[i] = float.class;
301: else if (c == Double.class)
302: result[i] = double.class;
303: else
304: result[i] = c;
305: }
306: return result;
307: }
308: }