src/share/jaxws_classes/com/sun/tools/internal/jxc/gen/config/NGCCHandler.java

Tue, 09 Apr 2013 14:51:13 +0100

author
alanb
date
Tue, 09 Apr 2013 14:51:13 +0100
changeset 368
0989ad8c0860
parent 286
f50545b5e2f1
child 397
b99d7e355d4b
permissions
-rw-r--r--

8010393: Update JAX-WS RI to 2.2.9-b12941
Reviewed-by: alanb, erikj
Contributed-by: miroslav.kos@oracle.com, martin.grebac@oracle.com

     1 /*
     2  * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     8  * particular file as subject to the "Classpath" exception as provided
     9  * by Oracle in the LICENSE file that accompanied this code.
    10  *
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14  * version 2 for more details (a copy is included in the LICENSE file that
    15  * accompanied this code).
    16  *
    17  * You should have received a copy of the GNU General Public License version
    18  * 2 along with this work; if not, write to the Free Software Foundation,
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  *
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    24  */
    26 package com.sun.tools.internal.jxc.gen.config;
    28 import org.xml.sax.Attributes;
    29 import org.xml.sax.SAXException;
    31 /**
    32  *
    33  *
    34  * @version $Id: NGCCHandler.java,v 1.9 2002/09/29 02:55:48 okajima Exp $
    35  * @author Kohsuke Kawaguchi (kk@kohsuke.org)
    36  */
    37 public abstract class NGCCHandler implements NGCCEventReceiver {
    38     protected NGCCHandler( NGCCEventSource source, NGCCHandler parent, int parentCookie ) {
    40         _parent = parent;
    41         _source = source;
    42         _cookie = parentCookie;
    43     }
    45     /**
    46      * Parent NGCCHandler, if any.
    47      * If this is the root handler, this field will be null.
    48      */
    49     protected final NGCCHandler _parent;
    51     /**
    52      * Event source.
    53      */
    54     protected final NGCCEventSource _source;
    56     /**
    57      * This method will be implemented by the generated code
    58      * and returns a reference to the current runtime.
    59      */
    60     protected abstract NGCCRuntime getRuntime();
    62     /**
    63      * Cookie assigned by the parent.
    64      *
    65      * This value will be passed to the onChildCompleted handler
    66      * of the parent.
    67      */
    68     protected final int _cookie;
    70     // used to copy parameters to (enter|leave)(Element|Attribute) events.
    71     //protected String localName,uri,qname;
    74     /**
    75      * Notifies the completion of a child object.
    76      *
    77      * @param result
    78      *      The parsing result of the child state.
    79      * @param cookie
    80      *      The cookie value passed to the child object
    81      *      when it is created.
    82      * @param needAttCheck
    83      *      This flag is true when the callee needs to call the
    84      *      processAttribute method to check attribute transitions.
    85      *      This flag is set to false when this method is triggered by
    86      *      attribute transition.
    87      */
    88     protected abstract void onChildCompleted( Object result, int cookie, boolean needAttCheck ) throws SAXException;
    90 //
    91 //
    92 // spawns a new child object from event handlers.
    93 //
    94 //
    95     public void spawnChildFromEnterElement( NGCCEventReceiver child,
    96         String uri, String localname, String qname, Attributes atts) throws SAXException {
    98         int id = _source.replace(this,child);
    99         _source.sendEnterElement(id,uri,localname,qname,atts);
   100     }
   101     public void spawnChildFromEnterAttribute( NGCCEventReceiver child,
   102         String uri, String localname, String qname) throws SAXException {
   104         int id = _source.replace(this,child);
   105         _source.sendEnterAttribute(id,uri,localname,qname);
   106     }
   107     public void spawnChildFromLeaveElement( NGCCEventReceiver child,
   108         String uri, String localname, String qname) throws SAXException {
   110         int id = _source.replace(this,child);
   111         _source.sendLeaveElement(id,uri,localname,qname);
   112     }
   113     public void spawnChildFromLeaveAttribute( NGCCEventReceiver child,
   114         String uri, String localname, String qname) throws SAXException {
   116         int id = _source.replace(this,child);
   117         _source.sendLeaveAttribute(id,uri,localname,qname);
   118     }
   119     public void spawnChildFromText( NGCCEventReceiver child,
   120         String value) throws SAXException {
   122         int id = _source.replace(this,child);
   123         _source.sendText(id,value);
   124     }
   126 //
   127 //
   128 // reverts to the parent object from the child handler
   129 //
   130 //
   131     public void revertToParentFromEnterElement( Object result, int cookie,
   132         String uri,String local,String qname, Attributes atts ) throws SAXException {
   134         int id = _source.replace(this,_parent);
   135         _parent.onChildCompleted(result,cookie,true);
   136         _source.sendEnterElement(id,uri,local,qname,atts);
   137     }
   138     public void revertToParentFromLeaveElement( Object result, int cookie,
   139         String uri,String local,String qname ) throws SAXException {
   141         if(uri==NGCCRuntime.IMPOSSIBLE && uri==local && uri==qname && _parent==null )
   142             // all the handlers are properly finalized.
   143             // quit now, because we don't have any more NGCCHandler.
   144             // see the endDocument handler for detail
   145             return;
   147         int id = _source.replace(this,_parent);
   148         _parent.onChildCompleted(result,cookie,true);
   149         _source.sendLeaveElement(id,uri,local,qname);
   150     }
   151     public void revertToParentFromEnterAttribute( Object result, int cookie,
   152         String uri,String local,String qname ) throws SAXException {
   154         int id = _source.replace(this,_parent);
   155         _parent.onChildCompleted(result,cookie,true);
   156         _source.sendEnterAttribute(id,uri,local,qname);
   157     }
   158     public void revertToParentFromLeaveAttribute( Object result, int cookie,
   159         String uri,String local,String qname ) throws SAXException {
   161         int id = _source.replace(this,_parent);
   162         _parent.onChildCompleted(result,cookie,true);
   163         _source.sendLeaveAttribute(id,uri,local,qname);
   164     }
   165     public void revertToParentFromText( Object result, int cookie,
   166         String text ) throws SAXException {
   168         int id = _source.replace(this,_parent);
   169         _parent.onChildCompleted(result,cookie,true);
   170         _source.sendText(id,text);
   171     }
   174 //
   175 //
   176 // error handler
   177 //
   178 //
   179     public void unexpectedEnterElement(String qname) throws SAXException {
   180         getRuntime().unexpectedX('<'+qname+'>');
   181     }
   182     public void unexpectedLeaveElement(String qname) throws SAXException {
   183         getRuntime().unexpectedX("</"+qname+'>');
   184     }
   185     public void unexpectedEnterAttribute(String qname) throws SAXException {
   186         getRuntime().unexpectedX('@'+qname);
   187     }
   188     public void unexpectedLeaveAttribute(String qname) throws SAXException {
   189         getRuntime().unexpectedX("/@"+qname);
   190     }
   191 }

mercurial