com.sun.msv.reader

Class State

Implemented Interfaces:
ContentHandler
Known Direct Subclasses:
IgnoreState, NamespaceState, SimpleState

public abstract class State
extends Object
implements ContentHandler

base interface of 'parsing state'. parsing of XML representation of a grammar is done by using various states.

Each State-derived class is responsible for a particular type of declaration of the grammar. For example, SequenceState is responsible for parsing <sequence> element of RELAX module.

State objects interact each other. There are two ways of interaction.

The first type of communication occurs only when a child state object is created. The last type of communication occurs usually (but not limited to) when a child state sees its end tag.

In this level of inheritance, contract is somewhat abstract.

  1. When a State object is created, its init method is called and various information is set. Particularly, start tag information (if any) and the parent state is set. This process should only be initiated by GrammarReader.
  2. After that, startSelf method is called. Usually, this is the place to do something useful.
  3. State object is registered as a ContentHandler, and therefore will receive SAX events from now on.
  4. Derived classes are expected to do something useful by receiving SAX events.
  5. When a State object finishes its own part, it should call GrammarReader.popState method. It will remove the current State object and registers the parent state as a ContentHandler again.
Of course some derived classes introduce more restricted contract. See SimpleState.

this class also provides:

Author:
Kohsuke KAWAGUCHI

Field Summary

GrammarReader
reader
reader object who is the owner of this object.

Method Summary

static void
_assert(boolean b)
void
characters(char[] buffer, int from, int len)
void
endPrefixMapping(String prefix)
String
getBaseURI()
Locator
getLocation()
State
getParentState()
StartTagInfo
getStartTag()
void
ignorableWhitespace(char[] buffer, int from, int len)
void
processingInstruction(String target, String data)
void
setDocumentLocator(Locator loc)
void
skippedEntity(String name)
void
startDocument()
void
startPrefixMapping(String prefix, String uri)

Field Details

reader

public GrammarReader reader
reader object who is the owner of this object. This information is avaiable after init method is called.

Method Details

_assert

public static void _assert(boolean b)

characters

public void characters(char[] buffer,
                       int from,
                       int len)
            throws SAXException

endPrefixMapping

public void endPrefixMapping(String prefix)
            throws SAXException

getBaseURI

public String getBaseURI()

getLocation

public Locator getLocation()

getParentState

public final State getParentState()

getStartTag

public StartTagInfo getStartTag()

ignorableWhitespace

public void ignorableWhitespace(char[] buffer,
                                int from,
                                int len)
            throws SAXException

processingInstruction

public void processingInstruction(String target,
                                  String data)
            throws SAXException

setDocumentLocator

public void setDocumentLocator(Locator loc)

skippedEntity

public void skippedEntity(String name)
            throws SAXException

startDocument

public final void startDocument()
            throws SAXException

startPrefixMapping

public void startPrefixMapping(String prefix,
                               String uri)
            throws SAXException