org.apache.xerces.util

Class XMLGrammarPoolImpl

Implemented Interfaces:
org.apache.xerces.xni.grammars.XMLGrammarPool
Known Direct Subclasses:
CachingParserPool.ShadowedGrammarPool, XSGrammarPool

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

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.
Version:
$Id: XMLGrammarPoolImpl.java,v 1.8 2004/03/25 04:03:22 mrglavas Exp $
Authors:
Jeffrey Rodriguez, IBM
Andy Clark, IBM
Neil Graham, IBM
Pavani Mukthipudi, Sun Microsystems
Neeraj Bajaj, SUN Microsystems

Nested Class Summary

protected static class
XMLGrammarPoolImpl.Entry
This class is a grammar pool entry.

Field Summary

protected static int
TABLE_SIZE
Default size.
protected int
fGrammarCount
protected XMLGrammarPoolImpl.Entry[]
fGrammars
Grammars.
protected boolean
fPoolIsLocked

Constructor Summary

XMLGrammarPoolImpl()
Constructs a grammar pool with a default number of buckets.
XMLGrammarPoolImpl(int initialCapacity)
Constructs a grammar pool with a specified number of buckets.

Method Summary

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

Field Details

TABLE_SIZE

protected static final int TABLE_SIZE
Default size.
Field Value:
11

fGrammarCount

protected int fGrammarCount

fGrammars

protected XMLGrammarPoolImpl.Entry[] fGrammars
Grammars.

fPoolIsLocked

protected boolean fPoolIsLocked

Constructor Details

XMLGrammarPoolImpl

public XMLGrammarPoolImpl()
Constructs a grammar pool with a default number of buckets.

XMLGrammarPoolImpl

public XMLGrammarPoolImpl(int initialCapacity)
Constructs a grammar pool with a specified number of buckets.

Method Details

cacheGrammars

public void cacheGrammars(String grammarType,
                          org.apache.xerces.xni.grammars.Grammar[] grammars)
Specified by:
cacheGrammars in interface org.apache.xerces.xni.grammars.XMLGrammarPool

clear

public void clear()
Specified by:
clear in interface org.apache.xerces.xni.grammars.XMLGrammarPool

containsGrammar

public boolean containsGrammar(org.apache.xerces.xni.grammars.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.

equals

public boolean equals(org.apache.xerces.xni.grammars.XMLGrammarDescription desc1,
                      org.apache.xerces.xni.grammars.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

getGrammar

public org.apache.xerces.xni.grammars.Grammar getGrammar(org.apache.xerces.xni.grammars.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.

hashCode

public int hashCode(org.apache.xerces.xni.grammars.XMLGrammarDescription desc)
Returns the hash code value for the given grammar description.
Parameters:
desc - The grammar description
Returns:
The hash code value

lockPool

public void lockPool()
Specified by:
lockPool in interface org.apache.xerces.xni.grammars.XMLGrammarPool

putGrammar

public void putGrammar(org.apache.xerces.xni.grammars.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.

removeGrammar

public org.apache.xerces.xni.grammars.Grammar removeGrammar(org.apache.xerces.xni.grammars.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.

retrieveGrammar

public org.apache.xerces.xni.grammars.Grammar retrieveGrammar(org.apache.xerces.xni.grammars.XMLGrammarDescription desc)
Specified by:
retrieveGrammar in interface org.apache.xerces.xni.grammars.XMLGrammarPool

retrieveInitialGrammarSet

public org.apache.xerces.xni.grammars.Grammar[] retrieveInitialGrammarSet(String grammarType)
Specified by:
retrieveInitialGrammarSet in interface org.apache.xerces.xni.grammars.XMLGrammarPool

unlockPool

public void unlockPool()
Specified by:
unlockPool in interface org.apache.xerces.xni.grammars.XMLGrammarPool

Copyright B) 1999-2005 Apache XML Project. All Rights Reserved.