com.sun.msv.reader
Class ExpressionWithChildState

java.lang.Object
  extended by com.sun.msv.reader.State
      extended by com.sun.msv.reader.SimpleState
          extended by com.sun.msv.reader.ExpressionState
              extended by com.sun.msv.reader.ExpressionWithChildState
All Implemented Interfaces:
ExpressionOwner, ContentHandler
Direct Known Subclasses:
AttributeState, ChoiceState, ComplexContentState, ConcurState, ElementDeclState, InterleaveState, MixedState, RedefinableDeclState, SequenceState, SimpleContentState

public abstract class ExpressionWithChildState
extends ExpressionState
implements ExpressionOwner

State that parses Expression which contains other expressions.

Author:
Kohsuke KAWAGUCHI

Field Summary
protected  Expression exp
          expression object that is being created.
 
Fields inherited from class com.sun.msv.reader.State
baseURI, location, parentState, reader, startTag
 
Constructor Summary
ExpressionWithChildState()
           
 
Method Summary
protected  Expression annealExpression(Expression exp)
          performs final wrap-up and returns a fully created Expression object that represents this element.
protected abstract  Expression castExpression(Expression halfCastedExpression, Expression newChildExpression)
          combines half-made expression and newly found child expression into the expression.
protected  State createChildState(StartTagInfo tag)
          creates appropriate child state object for this element
protected  Expression defaultExpression()
          computes default expression.
protected  Expression initialExpression()
          sets initial pattern
protected  Expression makeExpression()
          This method is called from endElement method.
 void onEndChild(Expression childExpression)
          receives a Pattern object that is contained in this element.
protected  void startSelf()
          performs a task that should be done before reading any child elements.
 
Methods inherited from class com.sun.msv.reader.ExpressionState
endSelf
 
Methods inherited from class com.sun.msv.reader.SimpleState
endDocument, endElement, isGrammarElement, startElement
 
Methods inherited from class com.sun.msv.reader.State
_assert, callInterceptExpression, characters, endPrefixMapping, getBaseURI, getLocation, getParentState, getStartTag, ignorableWhitespace, init, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

exp

protected Expression exp
expression object that is being created. See #castPattern and #annealPattern methods for how will a pattern be created.

Constructor Detail

ExpressionWithChildState

public ExpressionWithChildState()
Method Detail

startSelf

protected void startSelf()
Description copied from class: State
performs a task that should be done before reading any child elements. derived-class can safely read startTag and/or parentState values.

Overrides:
startSelf in class State

initialExpression

protected Expression initialExpression()
sets initial pattern


defaultExpression

protected Expression defaultExpression()
computes default expression. this method is called before annealExpression when no child expression is given during parsing. return null to signal an error.


onEndChild

public final void onEndChild(Expression childExpression)
receives a Pattern object that is contained in this element.

Specified by:
onEndChild in interface ExpressionOwner

makeExpression

protected final Expression makeExpression()
Description copied from class: ExpressionState
This method is called from endElement method. Implementation has to provide Expression object that represents the content of this element.

Specified by:
makeExpression in class ExpressionState

createChildState

protected State createChildState(StartTagInfo tag)
Description copied from class: SimpleState
creates appropriate child state object for this element

Specified by:
createChildState in class SimpleState

castExpression

protected abstract Expression castExpression(Expression halfCastedExpression,
                                             Expression newChildExpression)
combines half-made expression and newly found child expression into the expression.

Say this container has three child expression exp1,exp2, and exp3. Then, the expression of this state will be made by the following method invocations.

   annealExpression(
     castExpression(
       castExpression(
         castExpression(null,exp1), exp2), exp3 ) )
 


annealExpression

protected Expression annealExpression(Expression exp)
performs final wrap-up and returns a fully created Expression object that represents this element.



MSV