Class ContentModelAcceptor

java.lang.Object
com.sun.msv.verifier.regexp.ExpressionAcceptor
com.sun.msv.verifier.regexp.ContentModelAcceptor
All Implemented Interfaces:
Acceptor
Direct Known Subclasses:
ComplexAcceptorBaseImpl, SimpleAcceptor

public abstract class ContentModelAcceptor extends ExpressionAcceptor
base implementation for SimpleAcceptor and ComplexAcceptor
Author:
Kohsuke KAWAGUCHI
  • Constructor Details

  • Method Details

    • stepForward

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

      A child acceptor created by the Acceptor.createChildAcceptor(com.sun.msv.util.StartTagInfo,com.sun.msv.util.StringRef) 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.

      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.
    • createAcceptor

      protected Acceptor createAcceptor(Expression combined, Expression continuation, ElementExp[] primitives, int numPrimitives)
      creates actual Acceptor object from the computed result.
      Specified by:
      createAcceptor in class ExpressionAcceptor
    • getOwnerType

      public Object getOwnerType()
      Description copied from interface: Acceptor
      gets the "type" object for which this acceptor is working. This method is used for type assignment. Actual Java type of return value depends on the implementation.
      Returns:
      null the callee should return null when it doesn't support type-assignment feature, or type-assignment is impossible for this acceptor (for example by ambiguous grammar).