Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.fasterxml.aalto.dom
Class OutputElementBase

    java.lang.Object
      com.fasterxml.aalto.dom.OutputElementBase

All Implemented Interfaces:
  NamespaceContext

Direct Known Subclasses:
  DOMOutputElement

    public abstract class OutputElementBase

extends Object
implements NamespaceContext

Class that encapsulates information about a specific element in virtual output stack for namespace-aware writers. It provides support for URI-to-prefix mappings as well as namespace mapping generation.

One noteworthy feature of the class is that it is designed to allow "short-term recycling", ie. instances can be reused within context of a simple document output. While reuse/recycling of such lightweight object is often useless or even counter productive, here it may be worth using, due to simplicity of the scheme (basically using a very simple free-elements linked list).

Field Summary
`protected String` | `_defaultNsURI`
`protected BijectiveNsMap` | `_nsMapping` Mapping of namespace prefixes to URIs and back.
`protected boolean` | `_nsMapShared` True, if `_nsMapping` is a shared copy from the parent; false if a local copy was created (which happens when namespaces get bound etc).
`protected NamespaceContext` | `_rootNsContext` Namespace context end application may have supplied, and that (if given) should be used to augment explicitly defined bindings.
`static int` | `PREFIX_MISBOUND`
`static int` | `PREFIX_OK`
`static int` | `PREFIX_UNBOUND`

Constructor Summary
`protected` | `OutputElementBase()` Constructor for the virtual root element
`protected` | `OutputElementBase(OutputElementBase parent, BijectiveNsMap ns)`

Method Summary
`void` | `addPrefix(String prefix, String uri)`
`String` | `generateMapping(String prefixBase, String uri, int[] seqArr)`
`String` | `getDefaultNsUri()`
`String` | `getExplicitPrefix(String uri)` Method similar to `getPrefix(java.lang.String)`, but one that will not accept the default namespace, only an explicit one.
`abstract String` | `getNameDesc()`
`String` | `getNamespaceURI(String prefix)`
`String` | `getPrefix(String uri)`
`Iterator<String>` | `getPrefixes(String uri)`
`int` | `isPrefixValid(String prefix, String nsURI, boolean isElement)` Method that verifies that passed-in prefix indeed maps to the specified namespace URI; and depending on how it goes returns a status for caller.
`abstract boolean` | `isRoot()`
`protected void` | `relink(OutputElementBase parent)` Method called to reuse a pooled instance.
`abstract void` | `setDefaultNsUri(String uri)`
`protected abstract void` | `setRootNsContext(NamespaceContext ctxt)`
`protected void` | `throwOutputError(String msg)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### PREFIX_UNBOUND

    public static final int PREFIX_UNBOUND

See Also:
  Constant Field Values

### PREFIX_OK

    public static final int PREFIX_OK

See Also:
  Constant Field Values

### PREFIX_MISBOUND

    public static final int PREFIX_MISBOUND

See Also:
  Constant Field Values

### _rootNsContext

    protected NamespaceContext _rootNsContext

  Namespace context end application may have supplied, and that (if given) should be used to augment explicitly defined bindings.

### _defaultNsURI

    protected String _defaultNsURI

### _nsMapping

    protected BijectiveNsMap _nsMapping

  Mapping of namespace prefixes to URIs and back.

### _nsMapShared

    protected boolean _nsMapShared

  True, if `_nsMapping` is a shared copy from the parent; false if a local copy was created (which happens when namespaces get bound etc).

Constructor Detail

### OutputElementBase

    protected OutputElementBase()

  Constructor for the virtual root element

### OutputElementBase

    protected OutputElementBase(OutputElementBase parent,
                                BijectiveNsMap ns)

Method Detail

### relink

    protected void relink(OutputElementBase parent)

  Method called to reuse a pooled instance.

### setRootNsContext

    protected abstract void setRootNsContext(NamespaceContext ctxt)

### isRoot

    public abstract boolean isRoot()

### getNameDesc

    public abstract String getNameDesc()

  Returns:
    String presentation of the fully-qualified name, in "prefix:localName" format (no URI). Useful for error and debugging messages.

### getDefaultNsUri

    public final String getDefaultNsUri()

### getExplicitPrefix

    public final String getExplicitPrefix(String uri)

  Method similar to `getPrefix(java.lang.String)`, but one that will not accept the default namespace, only an explicit one. Usually used when trying to find a prefix for attributes.

### isPrefixValid

    public final int isPrefixValid(String prefix,
                                   String nsURI,
                                   boolean isElement)
                            throws XMLStreamException

  Method that verifies that passed-in prefix indeed maps to the specified namespace URI; and depending on how it goes returns a status for caller.

  Parameters:
    `isElement` - If true, rules for the default NS are those of elements (ie. empty prefix can map to non-default namespace); if false, rules are those of attributes (only non-default prefix can map to a non-default namespace).
  Returns:
    PREFIX_OK, if passed-in prefix matches matched-in namespace URI in current scope; PREFIX_UNBOUND if it's not bound to anything, and PREFIX_MISBOUND if it's bound to another URI.
  Throws:
    `XMLStreamException` - True if default (no) prefix is allowed to match a non-default URI (elements); false if not (attributes)

### setDefaultNsUri

    public abstract void setDefaultNsUri(String uri)

### generateMapping

    public final String generateMapping(String prefixBase,
                                        String uri,
                                        int[] seqArr)

### addPrefix

    public final void addPrefix(String prefix,
                                String uri)

### getNamespaceURI

    public final String getNamespaceURI(String prefix)

  Specified by:
    `getNamespaceURI` in interface `NamespaceContext`

### getPrefix

    public final String getPrefix(String uri)

  Specified by:
    `getPrefix` in interface `NamespaceContext`

### getPrefixes

    public final Iterator<String> getPrefixes(String uri)

  Specified by:
    `getPrefixes` in interface `NamespaceContext`

### throwOutputError

    protected final void throwOutputError(String msg)
                                   throws XMLStreamException

  Throws:
    `XMLStreamException`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2012 Fasterxml.com. All Rights Reserved.