public class

XMLGrammarPoolImpl

extends Object
implements XMLGrammarPool
java.lang.Object
   ↳ org.apache.xerces.util.XMLGrammarPoolImpl
Known Direct Subclasses

Class Overview

Stores grammars in a pool associated to a specific key. This grammar pool implementation stores two types of grammars: those keyed by the root element name, and those keyed by the grammar's target namespace. This is the default implementation of the GrammarPool interface. As we move forward, this will become more function-rich and robust.

Summary

Nested Classes
class XMLGrammarPoolImpl.Entry This class is a grammar pool entry. 
Constants
int TABLE_SIZE Default size.
Fields
protected int fGrammarCount
protected Entry[] fGrammars Grammars.
protected boolean fPoolIsLocked
Public Constructors
XMLGrammarPoolImpl()
Constructs a grammar pool with a default number of buckets.
XMLGrammarPoolImpl(int initialCapacity)
Constructs a grammar pool with a specified number of buckets.
Public Methods
void cacheGrammars(String grammarType, Grammar[] grammars)

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

void clear()
Removes all grammars from the pool.
boolean containsGrammar(XMLGrammarDescription desc)
Returns true if the grammar pool contains a grammar associated to the specified grammar description.
boolean equals(XMLGrammarDescription desc1, XMLGrammarDescription desc2)
This method checks whether two grammars are the same.
Grammar getGrammar(XMLGrammarDescription desc)
Returns the grammar associated to the specified grammar description.
int hashCode(XMLGrammarDescription desc)
Returns the hash code value for the given grammar description.
void lockPool()
Causes the XMLGrammarPool not to store any grammars when the cacheGrammars(String, Grammar[[]) method is called.
void putGrammar(Grammar grammar)
Puts the specified grammar into the grammar pool and associates it to its root element name or its target namespace.
Grammar removeGrammar(XMLGrammarDescription desc)
Removes the grammar associated to the specified grammar description from the grammar pool and returns the removed grammar.
Grammar retrieveGrammar(XMLGrammarDescription desc)

This method requests that the application retrieve a grammar corresponding to the given GrammarIdentifier from its cache.

Grammar[] retrieveInitialGrammarSet(String grammarType)

retrieve the initial known set of grammars.

void unlockPool()
Allows the XMLGrammarPool to store grammars when its cacheGrammars(String, Grammar[]) method is called.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.apache.xerces.xni.grammars.XMLGrammarPool

Constants

protected static final int TABLE_SIZE

Default size.

Constant Value: 11 (0x0000000b)

Fields

protected int fGrammarCount

protected Entry[] fGrammars

Grammars.

protected boolean fPoolIsLocked

Public Constructors

public XMLGrammarPoolImpl ()

Constructs a grammar pool with a default number of buckets.

public XMLGrammarPoolImpl (int initialCapacity)

Constructs a grammar pool with a specified number of buckets.

Public Methods

public void cacheGrammars (String grammarType, Grammar[] grammars)

return the final set of grammars that the validator ended up with. This method is called after the validation finishes. The application may then choose to cache some of the returned grammars.

Parameters
grammarType the type of the grammars being returned;
grammars an array containing the set of grammars being returned; order is not significant.

public void clear ()

Removes all grammars from the pool.

public boolean containsGrammar (XMLGrammarDescription desc)

Returns true if the grammar pool contains a grammar associated to the specified grammar description. Currently, the root element name is used as the key for DTD grammars and the target namespace is used as the key for Schema grammars.

Parameters
desc The Grammar Description.

public boolean equals (XMLGrammarDescription desc1, XMLGrammarDescription desc2)

This method checks whether two grammars are the same. Currently, we compare the root element names for DTD grammars and the target namespaces for Schema grammars. The application can override this behaviour and add its own logic.

Parameters
desc1 The grammar description
desc2 The grammar description of the grammar to be compared to
Returns
  • True if the grammars are equal, otherwise false

public Grammar getGrammar (XMLGrammarDescription desc)

Returns the grammar associated to the specified grammar description. Currently, the root element name is used as the key for DTD grammars and the target namespace is used as the key for Schema grammars.

Parameters
desc The Grammar Description.

public int hashCode (XMLGrammarDescription desc)

Returns the hash code value for the given grammar description.

Parameters
desc The grammar description
Returns
  • The hash code value

public void lockPool ()

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

public void putGrammar (Grammar grammar)

Puts the specified grammar into the grammar pool and associates it to its root element name or its target namespace.

Parameters
grammar The Grammar.

public Grammar removeGrammar (XMLGrammarDescription desc)

Removes the grammar associated to the specified grammar description from the grammar pool and returns the removed grammar. Currently, the root element name is used as the key for DTD grammars and the target namespace is used as the key for Schema grammars.

Parameters
desc The Grammar Description.
Returns
  • The removed grammar.

public Grammar retrieveGrammar (XMLGrammarDescription desc)

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.

Parameters
desc The description of the Grammar being requested.
Returns
  • the Grammar corresponding to this description or null if no such Grammar is known.

public Grammar[] retrieveInitialGrammarSet (String grammarType)

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.

Parameters
grammarType 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"

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.