javax.media.jai.remote
Interface RemoteCRIF

All Superinterfaces:
RemoteRIF

public interface RemoteCRIF
extends RemoteRIF

The RemoteCRIF interface is equivalent to the ContextualRenderedImageFactory for operations that are intended to be performed remotely. RemoteCRIF provides an interface for the functionality that may differ between instances of RemoteRenderableOp. Thus different remote operations on RenderableImages may be performed by a single class such as RemoteRenderedOp through the use of multiple instances of RemoteCRIF.

All remote operations that are to be used in a rendering-independent chain must provide a factory that implements RemoteCRIF.

Classes that implement this interface must provide a constructor with no arguments.

Since:
JAI 1.1

Method Summary
 RemoteRenderedImage create(String serverName, String operationName, RenderContext renderContext, ParameterBlock paramBlock)
          Creates a rendering, given a RenderContext and a ParameterBlock containing the operation's sources and parameters.
 Rectangle2D getBounds2D(String serverName, String operationName, ParameterBlock paramBlock)
          Returns the bounding box for the output of the operation, performed on a given set of sources, in rendering-independent space.
 Object getProperty(String serverName, String operationName, ParameterBlock paramBlock, String name)
          Gets the appropriate instance of the property specified by the name parameter.
 String[] getPropertyNames(String serverName, String operationName)
          Returns a list of names recognized by getProperty.
 boolean isDynamic(String serverName, String operationName)
          Returns true if successive renderings (that is, calls to create(RenderContext, ParameterBlock)) with the same arguments may produce different results.
 RenderContext mapRenderContext(String serverName, String operationName, int i, RenderContext renderContext, ParameterBlock paramBlock, RenderableImage image)
          Maps the operation's output RenderContext into a RenderContext for each of the operation's sources.
 
Methods inherited from interface javax.media.jai.remote.RemoteRIF
create, create, getClientCapabilities
 

Method Detail

mapRenderContext

public RenderContext mapRenderContext(String serverName,
                                      String operationName,
                                      int i,
                                      RenderContext renderContext,
                                      ParameterBlock paramBlock,
                                      RenderableImage image)
                               throws RemoteImagingException
Maps the operation's output RenderContext into a RenderContext for each of the operation's sources. This is useful for operations that can be expressed in whole or in part simply as alterations in the RenderContext, such as an affine mapping, or operations that wish to obtain lower quality renderings of their sources in order to save processing effort or transmission bandwith. Some operations, such as blur, can also use this mechanism to avoid obtaining sources of higher quality than necessary.

Parameters:
serverName - A String specifying the name of the server to perform the remote operation on.
operationName - The String specifying the name of the operation to be performed remotely.
i - The index of the source image.
renderContext - The RenderContext being applied to the operation.
paramBlock - A ParameterBlock containing the operation's sources and parameters.
image - the RenderableImage being rendered.
Throws:
RemoteImagingException

create

public RemoteRenderedImage create(String serverName,
                                  String operationName,
                                  RenderContext renderContext,
                                  ParameterBlock paramBlock)
                           throws RemoteImagingException
Creates a rendering, given a RenderContext and a ParameterBlock containing the operation's sources and parameters. The output is a RemoteRenderedImage that takes the RenderContext into account to determine its dimensions and placement on the image plane. This method houses the "intelligence" that allows a rendering-independent operation to adapt to a specific RenderContext.

Parameters:
serverName - A String specifying the name of the server to perform the remote operation on.
operationName - The String specifying the name of the operation to be performed remotely.
renderContext - The RenderContext specifying the rendering context.
paramBlock - A ParameterBlock containing the operation's sources and parameters.
Throws:
RemoteImagingException

getBounds2D

public Rectangle2D getBounds2D(String serverName,
                               String operationName,
                               ParameterBlock paramBlock)
                        throws RemoteImagingException
Returns the bounding box for the output of the operation, performed on a given set of sources, in rendering-independent space. The bounds are returned as a Rectangle2D, that is, an axis-aligned rectangle with floating-point corner coordinates.

Parameters:
serverName - A String specifying the name of the server to perform the remote operation on.
operationName - The String specifying the name of the operation to be performed remotely.
paramBlock - A ParameterBlock containing the operation's sources and parameters.
Returns:
a Rectangle2D specifying the rendering-independent bounding box of the output.
Throws:
RemoteImagingException

getProperty

public Object getProperty(String serverName,
                          String operationName,
                          ParameterBlock paramBlock,
                          String name)
                   throws RemoteImagingException
Gets the appropriate instance of the property specified by the name parameter. This method must determine which instance of a property to return when there are multiple sources that each specify the property.

Parameters:
serverName - A String specifying the name of the server to perform the remote operation on.
operationName - The String specifying the name of the operation to be performed remotely.
paramBlock - A ParameterBlock containing the operation's sources and parameters.
name - A String naming the desired property.
Returns:
an object reference to the value of the property requested.
Throws:
RemoteImagingException

getPropertyNames

public String[] getPropertyNames(String serverName,
                                 String operationName)
                          throws RemoteImagingException
Returns a list of names recognized by getProperty.

Parameters:
serverName - A String specifying the name of the server to perform the remote operation on.
operationName - The String specifying the name of the operation to be performed remotely.
Throws:
RemoteImagingException

isDynamic

public boolean isDynamic(String serverName,
                         String operationName)
                  throws RemoteImagingException
Returns true if successive renderings (that is, calls to create(RenderContext, ParameterBlock)) with the same arguments may produce different results. This method may be used to determine whether an existing rendering may be cached and reused. It is always safe to return true.

Parameters:
serverName - A String specifying the name of the server to perform the remote operation on.
operationName - The String specifying the name of the operation to be performed remotely.
Throws:
RemoteImagingException