c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v1.0.6-b27-fcs
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk// Any modifications to this file will be lost upon recompilation of the source schema.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk// Generated on: 2012.06.11 at 10:34:16 AM PDT
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenkpackage com.sun.identity.wsfederation.jaxb.entityconfig.impl.runtime;
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenkimport javax.xml.bind.helpers.ParseConversionEventImpl;
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenkimport javax.xml.bind.helpers.ValidationEventImpl;
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenkimport javax.xml.bind.helpers.ValidationEventLocatorImpl;
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * Convenient default implementation of
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * {@link UnmarshallingEventHandler}
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * to minimize code generation.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * For historical reasons, sometimes this type is used where
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * {@link UnmarshallingEventHandler} should be used.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * Once an exception is in the form of UnmarshalException, we consider
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * it to be already reported to the client app.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenkpublic abstract class AbstractUnmarshallingEventHandlerImpl implements UnmarshallingEventHandler
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk public AbstractUnmarshallingEventHandlerImpl(UnmarshallingContext _ctxt,
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * Text type of states encoded into a string.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * 'L' means a list state.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk// methods that will be provided by the generated code.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // internal events
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk public void enterElement(String uri, String local, String qname, Attributes atts) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk public void leaveElement(String uri, String local, String qname) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk public final void text(String text) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // in list state, we don't need to care about whitespaces.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // if the text is all whitespace, this won't generate a text event,
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // so it would be just fine.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk StringTokenizer tokens = new StringTokenizer(text);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // the handler can be switched during the text processing,
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // so the current handler has to be obtained inside the loop
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk context.getCurrentHandler().text(tokens.nextToken());
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // otherwise process this token
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected void handleText(String s) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk public void enterAttribute(String uri, String local, String qname) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk public void leaveAttribute(String uri, String local, String qname) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk public void leaveChild(int nextState) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * Checks if the current state is marked as a list state.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk /** Current state of this automaton. */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk// utility methods
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk /** Called when a RuntimeException is thrown during unmarshalling a text. */
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected void handleUnexpectedTextException( String text, RuntimeException e ) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // report this as an error
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk reportError( Messages.format(Messages.UNEXPECTED_TEXT,text), e, true );
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * Last resort when something goes terribly wrong within the unmarshaller.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected void handleGenericException( Exception e ) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk private void reportError( String msg, boolean canRecover ) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk private void reportError( String msg, Exception nested, boolean canRecover ) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk canRecover? ValidationEvent.ERROR : ValidationEvent.FATAL_ERROR,
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk new ValidationEventLocatorImpl(context.getLocator()),
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final void unexpectedEnterElement( String uri, String local, String qname, Attributes atts ) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // notify the error
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk reportError( Messages.format(Messages.UNEXPECTED_ENTER_ELEMENT, uri, local ), true );
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // then recover by ignoring the whole element.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk context.pushContentHandler(new Discarder(context),state);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk context.getCurrentHandler().enterElement(uri,local,qname,atts);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final void unexpectedLeaveElement( String uri, String local, String qname ) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk reportError( Messages.format(Messages.UNEXPECTED_LEAVE_ELEMENT, uri, local ), false );
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final void unexpectedEnterAttribute( String uri, String local, String qname ) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk reportError( Messages.format(Messages.UNEXPECTED_ENTER_ATTRIBUTE, uri, local ), false );
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final void unexpectedLeaveAttribute( String uri, String local, String qname ) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk reportError( Messages.format(Messages.UNEXPECTED_LEAVE_ATTRIBUTE, uri, local ), false );
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final void unexpectedText( String str ) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // make str printable
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk str = str.replace('\r',' ').replace('\n',' ').replace('\t',' ').trim();
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk reportError( Messages.format(Messages.UNEXPECTED_TEXT, str ), true );
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final void unexpectedLeaveChild() throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // I believe this is really a bug of the compiler,
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // since when an object spawns a child object, it must be "prepared"
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // to receive this event.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk Messages.format( Messages.UNEXPECTED_LEAVE_CHILD ) );
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * This method is called by the generated derived class
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk * when a datatype parse method throws an exception.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected void handleParseConversionException(Exception e) throws SAXException {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk if( e instanceof RuntimeException )
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk throw (RuntimeException)e; // don't catch the runtime exception. just let it go.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // wrap it into a ParseConversionEvent and report it
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk ParseConversionEvent pce = new ParseConversionEventImpl(
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk new ValidationEventLocatorImpl(context.getLocator()), e );
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk// spawn a new child object
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk private UnmarshallingEventHandler spawnChild( Class clazz, int memento ) {
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk child = (UnmarshallableObject)clazz.newInstance();
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk UnmarshallingEventHandler handler = child.createUnmarshaller(context);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final Object spawnChildFromEnterElement(Class clazz, int memento, String uri, String local, String qname, Attributes atts)
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk UnmarshallingEventHandler ueh = spawnChild(clazz,memento);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final Object spawnChildFromEnterAttribute(Class clazz, int memento, String uri, String local, String qname)
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk UnmarshallingEventHandler ueh = spawnChild(clazz,memento);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final Object spawnChildFromText(Class clazz, int memento, String value)
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk UnmarshallingEventHandler ueh = spawnChild(clazz,memento);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // these methods can be used if a child object can be nullable
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final Object spawnChildFromLeaveElement(Class clazz, int memento, String uri, String local, String qname)
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk UnmarshallingEventHandler ueh = spawnChild(clazz,memento);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final Object spawnChildFromLeaveAttribute(Class clazz, int memento, String uri, String local, String qname)
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk UnmarshallingEventHandler ueh = spawnChild(clazz,memento);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final Element spawnWildcard( int memento, String uri, String local, String qname, Attributes atts )
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk UnmarshallingEventHandler ueh = context.getGrammarInfo().createUnmarshaller(uri,local,context);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // if no class is available to unmarshal this element, discard
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk // the sub-tree by feeding events to discarder.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk context.pushContentHandler( new Discarder(context), memento );
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk context.getCurrentHandler().enterElement(uri,local,qname,atts);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk return null; // return null so that the discarder will be ignored
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk// spawn a new child handler.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk// used for super class and RELAXNG interleave handling.
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final void spawnHandlerFromEnterElement(
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk UnmarshallingEventHandler unm, int memento, String uri, String local, String qname, Attributes atts )
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final void spawnHandlerFromEnterAttribute(
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk UnmarshallingEventHandler unm, int memento, String uri, String local, String qname)
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk UnmarshallingEventHandler unm, int memento, String value)
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final void spawnHandlerFromLeaveElement(
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk UnmarshallingEventHandler unm, int memento, String uri, String local, String qname)
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final void spawnHandlerFromLeaveAttribute(
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk UnmarshallingEventHandler unm, int memento, String uri, String local, String qname)
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk UnmarshallingEventHandler unm, int memento, String text )
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk// revert to parent
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final void revertToParentFromEnterElement(String uri,String local, String qname,Attributes atts)
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk context.getCurrentHandler().enterElement(uri,local,qname,atts);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final void revertToParentFromLeaveElement(String uri,String local, String qname)
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk context.getCurrentHandler().leaveElement(uri,local,qname);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final void revertToParentFromEnterAttribute(String uri,String local, String qname)
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk context.getCurrentHandler().enterAttribute(uri,local,qname);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final void revertToParentFromLeaveAttribute(String uri,String local, String qname)
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk context.getCurrentHandler().leaveAttribute(uri,local,qname);
c1350cf5bc50458ba79cc93ff9e0e5fe3f1aeeb0jeff.schenk protected final void revertToParentFromText(String value)