## javax.media.jai.registry
Class RIFRegistry

    java.lang.Object
      |
      +--javax.media.jai.registry.RIFRegistry

public final class RIFRegistry
extends java.lang.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, java.lang.String operationName, java.lang.String productName)` Removes all preferences between RIFs within a product registered under a particular `OperationDescriptor`.
`static java.awt.image.RenderedImage` `create(OperationRegistry registry, java.lang.String operationName, java.awt.image.renderable.ParameterBlock paramBlock, java.awt.RenderingHints renderHints)` Constructs a `RenderedImage` (usually a `RenderedOp`) representing the results of applying a given operation to a particular ParameterBlock and rendering hints.
`static java.awt.image.renderable.RenderedImageFactory` `get(OperationRegistry registry, java.lang.String operationName)` Returns the the most preferred `RenderedImageFactory` object registered against the operation name.
`static java.util.Iterator` `getIterator(OperationRegistry registry, java.lang.String operationName)` Returns an `Iterator` over all `RenderedImageFactory` objects registered under the operation name over all products.
`static java.util.List` `getOrderedList(OperationRegistry registry, java.lang.String operationName, java.lang.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, java.lang.String operationName, java.lang.String productName, java.awt.image.renderable.RenderedImageFactory rif)` Register a RIF with a particular product and operation against a specified mode.
`static void` `setPreference(OperationRegistry registry, java.lang.String operationName, java.lang.String productName, java.awt.image.renderable.RenderedImageFactory preferredRIF, java.awt.image.renderable.RenderedImageFactory otherRIF)` Sets a preference between two rifs for a given operation under a specified product.
`static void` `unregister(OperationRegistry registry, java.lang.String operationName, java.lang.String productName, java.awt.image.renderable.RenderedImageFactory rif)` Unregister a RIF previously registered with a product and operation against the specified mode.
`static void` `unsetPreference(OperationRegistry registry, java.lang.String operationName, java.lang.String productName, java.awt.image.renderable.RenderedImageFactory preferredRIF, java.awt.image.renderable.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,
                                java.lang.String operationName,
                                java.lang.String productName,
                                java.awt.image.renderable.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:
    `java.lang.IllegalArgumentException` - if operationName, productName, or rif is `null`
    `java.lang.IllegalArgumentException` - if there is no `OperationDescriptor` registered against the `operationName`

### unregister

    public static void unregister(OperationRegistry registry,
                                  java.lang.String operationName,
                                  java.lang.String productName,
                                  java.awt.image.renderable.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:
    `java.lang.IllegalArgumentException` - if operationName, productName, or rif is `null`
    `java.lang.IllegalArgumentException` - if there is no `OperationDescriptor` registered against the `operationName`
    `java.lang.IllegalArgumentException` - if the rif was not previously registered against operationName and productName

### setPreference

    public static void setPreference(OperationRegistry registry,
                                     java.lang.String operationName,
                                     java.lang.String productName,
                                     java.awt.image.renderable.RenderedImageFactory preferredRIF,
                                     java.awt.image.renderable.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:
    `java.lang.IllegalArgumentException` - if operationName, productName, preferredRIF or otherRIF is `null`
    `java.lang.IllegalArgumentException` - if there is no `OperationDescriptor` registered against the `operationName`
    `java.lang.IllegalArgumentException` - if either of the rifs were not previously registered against operationName and productName

### unsetPreference

    public static void unsetPreference(OperationRegistry registry,
                                       java.lang.String operationName,
                                       java.lang.String productName,
                                       java.awt.image.renderable.RenderedImageFactory preferredRIF,
                                       java.awt.image.renderable.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:
    `java.lang.IllegalArgumentException` - if operationName, productName, preferredRIF or otherRIF is `null`
    `java.lang.IllegalArgumentException` - if there is no `OperationDescriptor` registered against the `operationName`
    `java.lang.IllegalArgumentException` - if either of the rifs were not previously registered against operationName and productName

### clearPreferences

    public static void clearPreferences(OperationRegistry registry,
                                        java.lang.String operationName,
                                        java.lang.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:
    `java.lang.IllegalArgumentException` - if operationName or productName is `null`
    `java.lang.IllegalArgumentException` - if there is no `OperationDescriptor` registered against the `operationName`

### getOrderedList

    public static java.util.List getOrderedList(OperationRegistry registry,
                                                java.lang.String operationName,
                                                java.lang.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. Cycles will be broken in an arbitrary manner. 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:
    `java.lang.IllegalArgumentException` - if operationName or productName is `null`
    `java.lang.IllegalArgumentException` - if there is no `OperationDescriptor` registered against the `operationName`

### getIterator

    public static java.util.Iterator getIterator(OperationRegistry registry,
                                                 java.lang.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:
    `java.lang.IllegalArgumentException` - if operationName is `null`
    `java.lang.IllegalArgumentException` - if there is no `OperationDescriptor` registered against the `operationName`
  Since:
    JAI 1.1

### get

    public static java.awt.image.renderable.RenderedImageFactory get(OperationRegistry registry,
                                                                     java.lang.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:
    `java.lang.IllegalArgumentException` - if operationName is `null`
    `java.lang.IllegalArgumentException` - if there is no `OperationDescriptor` registered against the `operationName`

### create

    public static java.awt.image.RenderedImage create(OperationRegistry registry,
                                                      java.lang.String operationName,
                                                      java.awt.image.renderable.ParameterBlock paramBlock,
                                                      java.awt.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:
    `java.lang.IllegalArgumentException` - if operationName is `null`
    `java.lang.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:
    `java.lang.IllegalArgumentException` - if `op` is `null`