org.apache.fop.fo

## Class ElementMappingRegistry

- java.lang.Object
- - org.apache.fop.fo.ElementMappingRegistry

    public class ElementMappingRegistry
    extends Object

This class keeps track of all configured ElementMapping implementations which are responsible for properly handling all kinds of different XML namespaces.

### Field Summary

Fields
`protected Map<String,Map<String,ElementMapping.Maker>>` `fobjTable` Table mapping element names to the makers of objects representing formatting objects.
`protected Map<String,ElementMapping>` `namespaces` Map of mapped namespaces and their associated ElementMapping instances.

### Constructor Summary

Constructors
Constructor and Description
`ElementMappingRegistry(FopFactory factory)` Main constructor.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addElementMapping(ElementMapping mapping)` Add the element mapping.
`void` `addElementMapping(String mappingClassName)` Add the element mapping with the given class name.
`ElementMapping.Maker` `findFOMaker(String namespaceURI, String localName, Locator locator)` Finds the Maker used to create node objects of a particular type
`DOMImplementation` `getDOMImplementationForNamespace(String namespaceURI)` Tries to determine the DOMImplementation that is used to handled a particular namespace.
`ElementMapping` `getElementMapping(String namespaceURI)` Returns an ElementMapping class for a namespace URI if there is one.
`boolean` `isKnownNamespace(String namespaceURI)` Indicates whether a namespace is known to FOP.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### fobjTable

    protected Map<String,Map<String,ElementMapping.Maker>> fobjTable

Table mapping element names to the makers of objects representing formatting objects.

#### namespaces

    protected Map<String,ElementMapping> namespaces

Map of mapped namespaces and their associated ElementMapping instances.

### Constructor Detail

#### ElementMappingRegistry

    public ElementMappingRegistry(FopFactory factory)

Main constructor. Adds all default element mapping as well as detects ElementMapping through the Service discovery.

Parameters:
  `factory` - the Fop Factory

### Method Detail

#### addElementMapping

    public void addElementMapping(String mappingClassName)
                           throws IllegalArgumentException

Add the element mapping with the given class name.

Parameters:
  `mappingClassName` - the class name representing the element mapping.
Throws:
  `IllegalArgumentException` - if there was not such element mapping.

#### addElementMapping

    public void addElementMapping(ElementMapping mapping)

Add the element mapping.

Parameters:
  `mapping` - the element mapping instance

#### findFOMaker

    public ElementMapping.Maker findFOMaker(String namespaceURI,
                                            String localName,
                                            Locator locator)
                                     throws FOPException

Finds the Maker used to create node objects of a particular type

Parameters:
  `namespaceURI` - URI for the namespace of the element
  `localName` - name of the Element
  `locator` - the Locator instance for context information
Returns:
  the ElementMapping.Maker that can create an FO object for this element
Throws:
  `FOPException` - if a Maker could not be found for a bound namespace.

#### getDOMImplementationForNamespace

    public DOMImplementation getDOMImplementationForNamespace(String namespaceURI)

Tries to determine the DOMImplementation that is used to handled a particular namespace. The method may return null for namespaces that don't result in a DOM. It is mostly used in namespaces occurring in foreign objects.

Parameters:
  `namespaceURI` - the namespace URI
Returns:
  the handling DOMImplementation, or null if not applicable

#### getElementMapping

    public ElementMapping getElementMapping(String namespaceURI)

Returns an ElementMapping class for a namespace URI if there is one.

Parameters:
  `namespaceURI` - the namespace URI
Returns:
  the requested ElementMapping or null, if no ElementMapping for the namespace is available.

#### isKnownNamespace

    public boolean isKnownNamespace(String namespaceURI)

Indicates whether a namespace is known to FOP.

Parameters:
  `namespaceURI` - the namespace URI
Returns:
  true if the namespace is known.