org.eclipse.emf.ecore.xmi.impl
Class XMLParserPoolImpl

java.lang.Object
  extended byorg.eclipse.emf.ecore.xmi.impl.XMLParserPoolImpl
All Implemented Interfaces:
XMLParserPool

public class XMLParserPoolImpl
extends Object
implements XMLParserPool

This is the default thread safe implementation of XMLParserPool. This implementation is tuned for caching parsers and handlers created using same loading options. To avoid possible memory leak (in case user is trying to parse documents using different options for every parse), there is a restriction on the size of the pool. The key used for handler caching is based on the option map passed to load.


Constructor Summary
XMLParserPoolImpl()
          Creates an instance that caches only parsers but not handlers.
XMLParserPoolImpl(boolean useHandlerCache)
          Creates an instance that caches parsers and caches handlers as specified.
XMLParserPoolImpl(int size, boolean useHandlerCache)
          Creates an instance that caches parsers and caches handlers as specified.
 
Method Summary
 SAXParser get(Map features, Map properties, boolean useLexicalHandler)
          Retrieves a parser from the pool given specified properties and features.
 XMLDefaultHandler getDefaultHandler(XMLResource resource, XMLLoad xmlLoad, XMLHelper helper, Map options)
          Retrives XMLDefaultHandler from the pool and initializes / prepares it.
 void release(SAXParser parser, Map features, Map properties, boolean useLexicalHandler)
          Returns the parser to the pool.
 void releaseDefaultHandler(XMLDefaultHandler handler, Map options)
          Returns the XMLDefaultHandler to the pool.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XMLParserPoolImpl

public XMLParserPoolImpl()
Creates an instance that caches only parsers but not handlers.

See Also:
XMLParserPoolImpl(boolean)

XMLParserPoolImpl

public XMLParserPoolImpl(boolean useHandlerCache)
Creates an instance that caches parsers and caches handlers as specified.

Parameters:
useHandlerCache - indicates whether handler caching should be use.
See Also:
XMLParserPoolImpl(boolean)

XMLParserPoolImpl

public XMLParserPoolImpl(int size,
                         boolean useHandlerCache)
Creates an instance that caches parsers and caches handlers as specified.

Parameters:
size - indicates the maximum number of instances parser or handler instances that will be cached.
useHandlerCache - indicates whether handler caching should be use.
See Also:
XMLParserPoolImpl(boolean)
Method Detail

get

public SAXParser get(Map features,
                     Map properties,
                     boolean useLexicalHandler)
              throws ParserConfigurationException,
                     SAXException
Description copied from interface: XMLParserPool
Retrieves a parser from the pool given specified properties and features. If parser can't be created using specified properties or features, an exception can be thrown.

Specified by:
get in interface XMLParserPool
Parameters:
features - a map of the parser features and their values.
properties - a map of a parser properties and their values.
useLexicalHandler - whether a lexical handler was set during loading.
Returns:
A parser instance with given features and properties.
Throws:
ParserConfigurationException
SAXException
See Also:
XMLParserPool.get(Map, Map, boolean)

release

public void release(SAXParser parser,
                    Map features,
                    Map properties,
                    boolean useLexicalHandler)
Description copied from interface: XMLParserPool
Returns the parser to the pool.

Specified by:
release in interface XMLParserPool
Parameters:
parser - the parser to return to the pool.
features - a map of the parser features and their values.
properties - a map of a parser properties and their values.
useLexicalHandler - whether a lexical handler was set during loading.
See Also:
XMLParserPool.release(SAXParser, Map, Map, boolean)

getDefaultHandler

public XMLDefaultHandler getDefaultHandler(XMLResource resource,
                                           XMLLoad xmlLoad,
                                           XMLHelper helper,
                                           Map options)
Description copied from interface: XMLParserPool
Retrives XMLDefaultHandler from the pool and initializes / prepares it.

Specified by:
getDefaultHandler in interface XMLParserPool
Parameters:
resource - - the resource
xmlLoad - - the XMLLoad
helper - - XMLHelper
options -

releaseDefaultHandler

public void releaseDefaultHandler(XMLDefaultHandler handler,
                                  Map options)
Description copied from interface: XMLParserPool
Returns the XMLDefaultHandler to the pool.

Specified by:
releaseDefaultHandler in interface XMLParserPool
Parameters:
handler - the handler to return to the pool
options -

Copyright 2001-2006 IBM Corporation and others.
All Rights Reserved.