javax.media.jai.registry
Class RIFRegistry

java.lang.Object
  extended byjavax.media.jai.registry.RIFRegistry

public final class RIFRegistry
extends Object

Utility class to provide type-safe interaction with the OperationRegistry for RenderedImageFactory objects. If the OperationRegistry is null, then JAI.getDefaultInstance().getOperationRegistry() will be used.

Since:
JAI 1.1

Constructor Summary
RIFRegistry()
           
 
Method Summary
static void clearPreferences(OperationRegistry registry, String operationName, String productName)
          Removes all preferences between RIFs within a product registered under a particular OperationDescriptor.
static RenderedImage create(OperationRegistry registry, String operationName, ParameterBlock paramBlock, RenderingHints renderHints)
          Constructs a RenderedImage (usually a RenderedOp) representing the results of applying a given operation to a particular ParameterBlock and rendering hints.
static RenderedImageFactory get(OperationRegistry registry, String operationName)
          Returns the the most preferred RenderedImageFactory object registered against the operation name.
static Iterator getIterator(OperationRegistry registry, String operationName)
          Returns an Iterator over all RenderedImageFactory objects registered under the operation name over all products.
static List getOrderedList(OperationRegistry registry, String operationName, String productName)
          Returns a list of the RIFs of a product registered under a particular OperationDescriptor, in an ordering that satisfies all of the pairwise preferences that have been set.
static PropertySource getPropertySource(RenderedOp op)
          Constructs and returns a PropertySource suitable for use by a given RenderedOp.
static void register(OperationRegistry registry, String operationName, String productName, RenderedImageFactory rif)
          Register a RIF with a particular product and operation against a specified mode.
static void setPreference(OperationRegistry registry, String operationName, String productName, RenderedImageFactory preferredRIF, RenderedImageFactory otherRIF)
          Sets a preference between two rifs for a given operation under a specified product.
static void unregister(OperationRegistry registry, String operationName, String productName, RenderedImageFactory rif)
          Unregister a RIF previously registered with a product and operation against the specified mode.
static void unsetPreference(OperationRegistry registry, String operationName, String productName, RenderedImageFactory preferredRIF, RenderedImageFactory otherRIF)
          Unsets a preference between two rifs for a given operation under a specified product.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RIFRegistry

public RIFRegistry()
Method Detail

register

public static void register(OperationRegistry registry,
                            String operationName,
                            String productName,
                            RenderedImageFactory rif)
Register a RIF with a particular product and operation against a specified mode. This is JAI 1.0.x equivalent of registry.registerRIF(...)

Parameters:
registry - the OperationRegistry to register with. if this is null, then JAI.getDefaultInstance().getOperationRegistry() will be used.
operationName - the operation name as a String
productName - the product name as a String
rif - the RenderedImageFactory to be registered
Throws:
IllegalArgumentException - if operationName, productName, or rif is null
IllegalArgumentException - if there is no OperationDescriptor registered against the operationName

unregister

public static void unregister(OperationRegistry registry,
                              String operationName,
                              String productName,
                              RenderedImageFactory rif)
Unregister a RIF previously registered with a product and operation against the specified mode.

Parameters:
registry - the OperationRegistry to unregister from. if this is null, then JAI.getDefaultInstance().getOperationRegistry() will be used.
operationName - the operation name as a String
productName - the product name as a String
rif - the RenderedImageFactory to be unregistered
Throws:
IllegalArgumentException - if operationName, productName, or rif is null
IllegalArgumentException - if there is no OperationDescriptor registered against the operationName
IllegalArgumentException - if the rif was not previously registered against operationName and productName

setPreference

public static void setPreference(OperationRegistry registry,
                                 String operationName,
                                 String productName,
                                 RenderedImageFactory preferredRIF,
                                 RenderedImageFactory otherRIF)
Sets a preference between two rifs for a given operation under a specified product.

Parameters:
registry - the OperationRegistry to use. if this is null, then JAI.getDefaultInstance().getOperationRegistry() will be used.
operationName - the operation name as a String
productName - the product name as a String
preferredRIF - the preferred rif
otherRIF - the other rif
Throws:
IllegalArgumentException - if operationName, productName, preferredRIF or otherRIF is null
IllegalArgumentException - if there is no OperationDescriptor registered against the operationName
IllegalArgumentException - if either of the rifs were not previously registered against operationName and productName

unsetPreference

public static void unsetPreference(OperationRegistry registry,
                                   String operationName,
                                   String productName,
                                   RenderedImageFactory preferredRIF,
                                   RenderedImageFactory otherRIF)
Unsets a preference between two rifs for a given operation under a specified product.

Parameters:
registry - the OperationRegistry to use. if this is null, then JAI.getDefaultInstance().getOperationRegistry() will be used.
operationName - the operation name as a String
productName - the product name as a String
preferredRIF - the factory object formerly preferred
otherRIF - the other factory object
Throws:
IllegalArgumentException - if operationName, productName, preferredRIF or otherRIF is null
IllegalArgumentException - if there is no OperationDescriptor registered against the operationName
IllegalArgumentException - if either of the rifs were not previously registered against operationName and productName

clearPreferences

public static void clearPreferences(OperationRegistry registry,
                                    String operationName,
                                    String productName)
Removes all preferences between RIFs within a product registered under a particular OperationDescriptor.

Parameters:
registry - the OperationRegistry to use. if this is null, then JAI.getDefaultInstance().getOperationRegistry() will be used.
operationName - the operation name as a String
productName - the product name as a String
Throws:
IllegalArgumentException - if operationName or productName is null
IllegalArgumentException - if there is no OperationDescriptor registered against the operationName

getOrderedList

public static List getOrderedList(OperationRegistry registry,
                                  String operationName,
                                  String productName)
Returns a list of the RIFs of a product registered under a particular OperationDescriptor, in an ordering that satisfies all of the pairwise preferences that have been set. Returns null if cycles exist. Returns null, if the product does not exist under this operationName.

Parameters:
registry - the OperationRegistry to use. if this is null, then JAI.getDefaultInstance().getOperationRegistry() will be used.
operationName - the operation name as a String
productName - the product name as a String
Returns:
an ordered List of RIFs
Throws:
IllegalArgumentException - if operationName or productName is null
IllegalArgumentException - if there is no OperationDescriptor registered against the operationName

getIterator

public static Iterator getIterator(OperationRegistry registry,
                                   String operationName)
Returns an Iterator over all RenderedImageFactory objects registered under the operation name over all products. The order of objects in the iteration will be according to the pairwise preferences among products and image factories within a product. The remove() method of the Iterator may not be implemented.

Parameters:
registry - the OperationRegistry to use. if this is null, then JAI.getDefaultInstance().getOperationRegistry() will be used.
operationName - the operation name as a String
Returns:
an Iterator over RenderedImageFactory objects
Throws:
IllegalArgumentException - if operationName is null
IllegalArgumentException - if there is no OperationDescriptor registered against the operationName
Since:
JAI 1.1

get

public static RenderedImageFactory get(OperationRegistry registry,
                                       String operationName)
Returns the the most preferred RenderedImageFactory object registered against the operation name. This method will return the first object that would be encountered by the Iterator returned by the getIterator() method.

Parameters:
registry - the OperationRegistry to use. if this is null, then JAI.getDefaultInstance().getOperationRegistry() will be used.
operationName - the operation name as a String
Returns:
a registered RenderedImageFactory object
Throws:
IllegalArgumentException - if operationName is null
IllegalArgumentException - if there is no OperationDescriptor registered against the operationName

create

public static RenderedImage create(OperationRegistry registry,
                                   String operationName,
                                   ParameterBlock paramBlock,
                                   RenderingHints renderHints)
Constructs a RenderedImage (usually a RenderedOp) representing the results of applying a given operation to a particular ParameterBlock and rendering hints. The registry is used to determine the RIF to be used to instantiate the operation.

If none of the RIFs registered with this OperationRegistry returns a non-null value, null is returned. Exceptions thrown by the RIFs will be caught by this method and will not be propagated.

Parameters:
registry - the OperationRegistry to use. if this is null, then JAI.getDefaultInstance().getOperationRegistry() will be used.
operationName - the operation name as a String
paramBlock - the operation's ParameterBlock.
renderHints - a RenderingHints object containing rendering hints.
Throws:
IllegalArgumentException - if operationName is null
IllegalArgumentException - if there is no OperationDescriptor registered against the operationName

getPropertySource

public static PropertySource getPropertySource(RenderedOp op)
Constructs and returns a PropertySource suitable for use by a given RenderedOp. The PropertySource includes properties copied from prior nodes as well as those generated at the node itself. Additionally, property suppression is taken into account. The actual implementation of getPropertySource() may make use of deferred execution and caching.

Parameters:
op - the RenderedOp requesting its PropertySource.
Throws:
IllegalArgumentException - if op is null