com.sun.msv.verifier.regexp

Class ComplexAcceptorBaseImpl

Implemented Interfaces:
Acceptor
Known Direct 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
onText2(String literal, IDContextProvider2 context, StringRef refErr, DatatypeRef refType)
eats string literal
boolean
stepForward(Acceptor child, StringRef errRef)
eats a child element

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

Methods inherited from class com.sun.msv.verifier.regexp.ContentModelAcceptor

getOwnerType, stepForward

Methods inherited from class com.sun.msv.verifier.regexp.ExpressionAcceptor

createChildAcceptor, getExpression, getStringCareLevel, isAcceptState, onAttribute, onAttribute2, onEndAttributes, onText, onText2, stepForwardByContinuation

Constructor Details

ComplexAcceptorBaseImpl

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

Method Details

onEndAttributes

public boolean onEndAttributes(StartTagInfo sti,
                               StringRef refErr)
notifies the end of attributes.

This method needs to be called after the Acceptor.onAttribute(String,String,String,String,IDContextProvider,StringRef,DatatypeRef) method is called for each present attribute.

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

Specified by:
onEndAttributes in interface Acceptor
Overrides:
onEndAttributes in interface ExpressionAcceptor
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.

onText2

public final boolean onText2(String literal,
                             IDContextProvider2 context,
                             StringRef refErr,
                             DatatypeRef refType)
eats string literal
Specified by:
onText2 in interface Acceptor
Overrides:
onText2 in interface ExpressionAcceptor

stepForward

public final boolean stepForward(Acceptor child,
                                 StringRef errRef)
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.

Specified by:
stepForward in interface Acceptor
Overrides:
stepForward in interface ContentModelAcceptor
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.