com.sun.msv.verifier.regexp
Class ComplexAcceptorBaseImpl

java.lang.Object
  |
  +--com.sun.msv.verifier.regexp.ExpressionAcceptor
        |
        +--com.sun.msv.verifier.regexp.ContentModelAcceptor
              |
              +--com.sun.msv.verifier.regexp.ComplexAcceptorBaseImpl
All Implemented Interfaces:
Acceptor
Direct Known Subclasses:
ComplexAcceptor, RulesAcceptor

public abstract class ComplexAcceptorBaseImpl
extends ContentModelAcceptor

base implementation of ComplexAcceptor.

Author:
Kohsuke KAWAGUCHI

Fields inherited from interface com.sun.msv.verifier.Acceptor
STRING_IGNORE, STRING_PROHIBITED, STRING_STRICT
 
Constructor Summary
ComplexAcceptorBaseImpl(REDocumentDeclaration docDecl, Expression combined, Expression[] contents, boolean ignoreUndeclaredAttributes)
           
 
Method Summary
 boolean onEndAttributes(StartTagInfo sti, StringRef refErr)
          notifies the end of attributes.
 boolean onText(String literal, IDContextProvider context, StringRef refErr, DatatypeRef refType)
          eats string literal
 boolean stepForward(Acceptor child, StringRef errRef)
          eats a child element
 
Methods inherited from class com.sun.msv.verifier.regexp.ContentModelAcceptor
getOwnerType
 
Methods inherited from class com.sun.msv.verifier.regexp.ExpressionAcceptor
createChildAcceptor, getExpression, getStringCareLevel, isAcceptState, onAttribute, stepForwardByContinuation
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.sun.msv.verifier.Acceptor
createClone
 

Constructor Detail

ComplexAcceptorBaseImpl

public ComplexAcceptorBaseImpl(REDocumentDeclaration docDecl,
                               Expression combined,
                               Expression[] contents,
                               boolean ignoreUndeclaredAttributes)
Method Detail

onText

public final boolean onText(String literal,
                            IDContextProvider context,
                            StringRef refErr,
                            DatatypeRef refType)
eats string literal
Overrides:
onText in class ExpressionAcceptor
Following copied from interface: com.sun.msv.verifier.Acceptor
Parameters:
context - an object that provides context information necessary to validate some datatypes.
refErr - if this parameter is non-null, the implementation should try to detect the reason of error and recover from it. and this object should have the error message as its str field.
refType - if this parameter is non-null and the callee supports type-assignment, the callee will assign the DataType object to this variable. Caller must initialize refType.type to null before calling this method. If the callee doesn't support type-assignment or type-assignment is impossible for this literal (possibly by ambiguous grammar), this variable must kept null.
Returns:
false if the literal at this position is not allowed.

stepForward

public final boolean stepForward(Acceptor child,
                                 StringRef errRef)
Description copied from interface: Acceptor
eats a child element

A child acceptor created by the createChildAcceptor method will be ultimately consumed by the parent through this method.

It is the caller's responsibility to make sure that child acceptor is in the accept state. If it's not, that indicates that some required elements are missing (in other words, contents are not allowed to end here).

It is the callee's responsibility to recover from error of unsatisified child acceptor. That is, even if the caller finds that there are missing elements, it is possible to call this method as if there was no such error.

Overrides:
stepForward in class ContentModelAcceptor
Following copied from interface: com.sun.msv.verifier.Acceptor
Returns:
false if an error happens. For example, if the implementation passes an acceptor which is NOT a child of this acceptor, then the callee can return false.

onEndAttributes

public boolean onEndAttributes(StartTagInfo sti,
                               StringRef refErr)
Description copied from interface: Acceptor
notifies the end of attributes.

This method needs to be called after the Acceptor.onAttribute(java.lang.String, java.lang.String, java.lang.String, java.lang.String, com.sun.msv.grammar.IDContextProvider, com.sun.msv.util.StringRef, com.sun.msv.util.DatatypeRef) method is called for each present attribute.

An error at this method typically indicates that some required attributes are missing.

Overrides:
onEndAttributes in class ExpressionAcceptor
Following copied from interface: com.sun.msv.verifier.Acceptor
Parameters:
sti - This information is used to produce the error message if that is necessary.
refErr - In case of an error, this object will receive the localized error message. Null is a valid value for this parameter. The implementation must provide some kind of message.
Returns:
false if an error happens and refErr parameter was not provided. Otherwise true.