## org.exist.validation
Class GrammarPool

    java.lang.Object
      org.exist.validation.GrammarPool

All Implemented Interfaces:
  org.apache.xerces.xni.grammars.XMLGrammarPool

public class GrammarPool
extends java.lang.Object
implements org.apache.xerces.xni.grammars.XMLGrammarPool

Wrapper around the Xerces XMLGrammarPoolImpl, so debugging of actions can be monitored. Javadoc copied from xml.apache.org.

Author:
  dizzzz
See Also:
  `XMLGrammarPool`

Constructor Summary
`GrammarPool()` Constructs a grammar pool with a default number of buckets.
`GrammarPool(org.apache.xerces.xni.grammars.XMLGrammarPool pool)` Constructs a grammar pool with a default number of buckets.

Method Summary
`void` `cacheGrammars(java.lang.String type, org.apache.xerces.xni.grammars.Grammar[] grammar)` Return the final set of grammars that the validator ended up with.
`void` `clear()` Removes all grammars from the pool.
`void` `lockPool()` Causes the XMLGrammarPool not to store any grammars when the cacheGrammars(String, Grammar[[]) method is called.
`org.apache.xerces.xni.grammars.Grammar` `retrieveGrammar(org.apache.xerces.xni.grammars.XMLGrammarDescription xgd)` This method requests that the application retrieve a grammar corresponding to the given GrammarIdentifier from its cache.
`org.apache.xerces.xni.grammars.Grammar[]` `retrieveInitialGrammarSet(java.lang.String type)` Retrieve the initial known set of grammars.
`void` `unlockPool()` Allows the XMLGrammarPool to store grammars when its cacheGrammars(String, Grammar[]) method is called.

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

Constructor Detail

### GrammarPool

    public GrammarPool()

  Constructs a grammar pool with a default number of buckets.

### GrammarPool

    public GrammarPool(org.apache.xerces.xni.grammars.XMLGrammarPool pool)

  Constructs a grammar pool with a default number of buckets. The supplied grammar pool is reused

Method Detail

### retrieveInitialGrammarSet

    public org.apache.xerces.xni.grammars.Grammar[] retrieveInitialGrammarSet(java.lang.String type)

  Retrieve the initial known set of grammars. this method is called by a validator before the validation starts. the application can provide an initial set of grammars available to the current validation attempt.

  Specified by:
    `retrieveInitialGrammarSet` in interface `org.apache.xerces.xni.grammars.XMLGrammarPool`
  Parameters:
    `type` - The type of the grammar, from the org.apache.xerces.xni.grammars.Grammar interface.
  Returns:
    The set of grammars the validator may put in its "bucket"

### cacheGrammars

    public void cacheGrammars(java.lang.String type,
                              org.apache.xerces.xni.grammars.Grammar[] grammar)

  Return the final set of grammars that the validator ended up with.

  Specified by:
    `cacheGrammars` in interface `org.apache.xerces.xni.grammars.XMLGrammarPool`
  Parameters:
    `type` - The type of the grammars being returned
    `grammar` - an array containing the set of grammars being returned; order is not significant.

### unlockPool

    public void unlockPool()

  Allows the XMLGrammarPool to store grammars when its cacheGrammars(String, Grammar[]) method is called. This is the default state of the object.

  Specified by:
    `unlockPool` in interface `org.apache.xerces.xni.grammars.XMLGrammarPool`

### retrieveGrammar

    public org.apache.xerces.xni.grammars.Grammar retrieveGrammar(org.apache.xerces.xni.grammars.XMLGrammarDescription xgd)

  This method requests that the application retrieve a grammar corresponding to the given GrammarIdentifier from its cache. If it cannot do so it must return null; the parser will then call the EntityResolver. An application must not call its EntityResolver itself from this method; this may result in infinite recursions.

  Specified by:
    `retrieveGrammar` in interface `org.apache.xerces.xni.grammars.XMLGrammarPool`
  Parameters:
    `xgd` - The description of the Grammar being requested.
  Returns:
    the Grammar corresponding to this description or null if no such Grammar is known.

### lockPool

    public void lockPool()

  Causes the XMLGrammarPool not to store any grammars when the cacheGrammars(String, Grammar[[]) method is called.

  Specified by:
    `lockPool` in interface `org.apache.xerces.xni.grammars.XMLGrammarPool`

### clear

    public void clear()

  Removes all grammars from the pool.

  Specified by:
    `clear` in interface `org.apache.xerces.xni.grammars.XMLGrammarPool`

Copyright (C) Wolfgang Meier. All rights reserved.