javax.media.jai.registry
Class CIFRegistry

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

public final class CIFRegistry
extends Object

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

Since:
JAI 1.1

Constructor Summary
CIFRegistry()
           
 
Method Summary
static void clearPreferences(OperationRegistry registry, String operationName, String productName)
          Removes all preferences between CIFs within a product registered under a particular OperationDescriptor.
static CollectionImage create(OperationRegistry registry, String operationName, ParameterBlock paramBlock, RenderingHints renderHints)
          Constructs a CollectionImageFactory (usually a CollectionOp) representing the results of applying a given operation to a particular ParameterBlock and rendering hints.
static CollectionImageFactory get(OperationRegistry registry, String operationName)
          Returns the the most preferred CollectionImageFactory object registered against the operation name.
static Iterator getIterator(OperationRegistry registry, String operationName)
          Returns an Iterator over all CollectionImageFactory objects registered under the operation name over all products.
static List getOrderedList(OperationRegistry registry, String operationName, String productName)
          Returns a list of the CIFs 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(CollectionOp op)
          Constructs and returns a PropertySource suitable for use by a given CollectionOp.
static void register(OperationRegistry registry, String operationName, String productName, CollectionImageFactory cif)
          Register a CIF with a particular product and operation against a specified mode.
static void setPreference(OperationRegistry registry, String operationName, String productName, CollectionImageFactory preferredCIF, CollectionImageFactory otherCIF)
          Sets a preference between two cifs for a given operation under a specified product.
static void unregister(OperationRegistry registry, String operationName, String productName, CollectionImageFactory cif)
          Unregister a CIF previously registered with a product and operation against the specified mode.
static void unsetPreference(OperationRegistry registry, String operationName, String productName, CollectionImageFactory preferredCIF, CollectionImageFactory otherCIF)
          Unsets a preference between two cifs 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

CIFRegistry

public CIFRegistry()
Method Detail

register

public static void register(OperationRegistry registry,
                            String operationName,
                            String productName,
                            CollectionImageFactory cif)
Register a CIF with a particular product and operation against a specified mode. This is JAI 1.0.x equivalent of registry.registerCIF(...)

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
cif - the CollectionImageFactory to be registered
Throws:
IllegalArgumentException - if operationName, productName, or cif is null
IllegalArgumentException - if there is no OperationDescriptor registered against the operationName

unregister

public static void unregister(OperationRegistry registry,
                              String operationName,
                              String productName,
                              CollectionImageFactory cif)
Unregister a CIF 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
cif - the CollectionImageFactory to be unregistered
Throws:
IllegalArgumentException - if operationName, productName, or cif is null
IllegalArgumentException - if there is no OperationDescriptor registered against the operationName
IllegalArgumentException - if the cif was not previously registered against operationName and productName

setPreference

public static void setPreference(OperationRegistry registry,
                                 String operationName,
                                 String productName,
                                 CollectionImageFactory preferredCIF,
                                 CollectionImageFactory otherCIF)
Sets a preference between two cifs 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
preferredCIF - the preferred cif
otherCIF - the other cif
Throws:
IllegalArgumentException - if operationName, productName, preferredCIF or otherCIF is null
IllegalArgumentException - if there is no OperationDescriptor registered against the operationName
IllegalArgumentException - if either of the cifs were not previously registered against operationName and productName

unsetPreference

public static void unsetPreference(OperationRegistry registry,
                                   String operationName,
                                   String productName,
                                   CollectionImageFactory preferredCIF,
                                   CollectionImageFactory otherCIF)
Unsets a preference between two cifs 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
preferredCIF - the factory object formerly preferred
otherCIF - the other factory object
Throws:
IllegalArgumentException - if operationName, productName, preferredCIF or otherCIF is null
IllegalArgumentException - if there is no OperationDescriptor registered against the operationName
IllegalArgumentException - if either of the cifs were not previously registered against operationName and productName

clearPreferences

public static void clearPreferences(OperationRegistry registry,
                                    String operationName,
                                    String productName)
Removes all preferences between CIFs 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 CIFs 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 CIFs
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 CollectionImageFactory 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 CollectionImageFactory objects
Throws:
IllegalArgumentException - if operationName is null
IllegalArgumentException - if there is no OperationDescriptor registered against the operationName
Since:
JAI 1.1

get

public static CollectionImageFactory get(OperationRegistry registry,
                                         String operationName)
Returns the the most preferred CollectionImageFactory 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 CollectionImageFactory object
Throws:
IllegalArgumentException - if operationName is null
IllegalArgumentException - if there is no OperationDescriptor registered against the operationName

create

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

If none of the CIFs registered with this OperationRegistry returns a non-null value, null is returned. Exceptions thrown by the CIFs 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(CollectionOp op)
Constructs and returns a PropertySource suitable for use by a given CollectionOp. 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 CollectionOp requesting its PropertySource.
Throws:
IllegalArgumentException - if op is null
IllegalArgumentException - if op.isRenderable() returns true