01: /*
02: * $RCSfile: CollectionImageFactory.java,v $
03: *
04: * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
05: *
06: * Use is subject to license terms.
07: *
08: * $Revision: 1.1 $
09: * $Date: 2005/02/11 04:57:06 $
10: * $State: Exp $
11: */
12: package javax.media.jai;
13:
14: import java.awt.RenderingHints;
15: import java.awt.image.renderable.ParameterBlock;
16:
17: /**
18: * The <code>CollectionImageFactory</code> (CIF) interface is intended
19: * to be implemented by classes that wish to act as factories to produce
20: * different collection image operators. In JAI, the <code>create()</code>
21: * method will be invoked in a chain of <code>CollectionOp</code>s when the
22: * operation is being executed in rendered mode.
23: */
24: public interface CollectionImageFactory {
25:
26: /**
27: * Creates a <code>CollectionImage</code> that represents the
28: * result of an operation (or chain of operations) for a given
29: * <code>ParameterBlock</code> and <code>RenderingHints</code>.
30: * If the operation is unable to handle the input arguments, this
31: * method should return <code>null</code>.
32: *
33: * <p> Generally this method is expected to be invoked by an operation
34: * being executed in rendered mode.
35: *
36: * @param args Input arguments to the operation, including
37: * sources and/or parameters.
38: * @param hints The rendering hints.
39: *
40: * @return A <code>CollectionImage</code> containing the desired output.
41: */
42: CollectionImage create(ParameterBlock args, RenderingHints hints);
43:
44: /**
45: * Attempts to modify a rendered <code>CollectionImage</code> previously
46: * created by this <code>CollectionImageFactory</code> as a function
47: * of how the sources, parameters and hints of the operation have
48: * changed. The <code>CollectionImage</code> passed in should not be
49: * modified in place but some or or all of its contents may be copied
50: * by reference into the <code>CollectionImage</code> returned, if any.
51: * If none of the contents of the old <code>CollectionImage</code> can
52: * be re-used, then <code>null</code> should be returned.
53: *
54: * @throws IllegalArgumentException if the name of the operation
55: * associated with the <code>CollectionOp</code> does not
56: * match that expected by this <code>CollectionImageFactory</code>.
57: *
58: * @return A <code>CollectionImage</code> modified according to the
59: * new values of the <code>ParameterBlock</code> and
60: * <code>RenderingHints</code> or <code>null</code> if it
61: * is impracticable to perform the update.
62: *
63: * @since JAI 1.1
64: */
65: CollectionImage update(ParameterBlock oldParamBlock,
66: RenderingHints oldHints, ParameterBlock newParamBlock,
67: RenderingHints newHints, CollectionImage oldRendering,
68: CollectionOp op);
69: }
|