1 /*
   2  * Copyright (c) 1997, 2011, 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  */
  25 
  26 /* this file is generated by RelaxNGCC */
  27 package com.sun.xml.internal.xsom.impl.parser.state;
  28 import org.xml.sax.SAXException;
  29 import org.xml.sax.XMLReader;
  30 import org.xml.sax.Attributes;
  31 import com.sun.xml.internal.xsom.impl.parser.NGCCRuntimeEx;
  32 
  33     import com.sun.xml.internal.xsom.*;
  34     import com.sun.xml.internal.xsom.parser.*;
  35     import com.sun.xml.internal.xsom.impl.*;
  36     import com.sun.xml.internal.xsom.impl.parser.*;
  37     import org.xml.sax.Locator;
  38     import org.xml.sax.ContentHandler;
  39     import org.xml.sax.helpers.*;
  40     import java.util.*;
  41     import java.math.BigInteger;
  42 
  43 
  44 
  45 class attributeDeclBody extends NGCCHandler {
  46     private String name;
  47     private ForeignAttributesImpl fa;
  48     private AnnotationImpl annotation;
  49     private Locator locator;
  50     private boolean isLocal;
  51     private String defaultValue;
  52     private UName typeName;
  53     private String fixedValue;
  54     protected final NGCCRuntimeEx $runtime;
  55     private int $_ngcc_current_state;
  56     protected String $uri;
  57     protected String $localName;
  58     protected String $qname;
  59 
  60     public final NGCCRuntime getRuntime() {
  61         return($runtime);
  62     }
  63 
  64     public attributeDeclBody(NGCCHandler parent, NGCCEventSource source, NGCCRuntimeEx runtime, int cookie, Locator _locator, boolean _isLocal, String _defaultValue, String _fixedValue) {
  65         super(source, parent, cookie);
  66         $runtime = runtime;
  67         this.locator = _locator;
  68         this.isLocal = _isLocal;
  69         this.defaultValue = _defaultValue;
  70         this.fixedValue = _fixedValue;
  71         $_ngcc_current_state = 13;
  72     }
  73 
  74     public attributeDeclBody(NGCCRuntimeEx runtime, Locator _locator, boolean _isLocal, String _defaultValue, String _fixedValue) {
  75         this(null, runtime, runtime, -1, _locator, _isLocal, _defaultValue, _fixedValue);
  76     }
  77 
  78     private void action0()throws SAXException {
  79 
  80           type = new DelayedRef.SimpleType(
  81             $runtime, locator, $runtime.currentSchema, typeName );
  82 
  83 }
  84 
  85     private void action1()throws SAXException {
  86         formSpecified = true;
  87 }
  88 
  89     public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
  90         int $ai;
  91         $uri = $__uri;
  92         $localName = $__local;
  93         $qname = $__qname;
  94         switch($_ngcc_current_state) {
  95         case 0:
  96             {
  97                 revertToParentFromEnterElement(makeResult(), super._cookie, $__uri, $__local, $__qname, $attrs);
  98             }
  99             break;
 100         case 12:
 101             {
 102                 if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
 103                     $runtime.consumeAttribute($ai);
 104                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 105                 }
 106                 else {
 107                     unexpectedEnterElement($__qname);
 108                 }
 109             }
 110             break;
 111         case 7:
 112             {
 113                 if(($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("annotation"))) {
 114                     NGCCHandler h = new annotation(this, super._source, $runtime, 388, null,AnnotationContext.ATTRIBUTE_DECL);
 115                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
 116                 }
 117                 else {
 118                     $_ngcc_current_state = 1;
 119                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 120                 }
 121             }
 122             break;
 123         case 9:
 124             {
 125                 if((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("annotation")) || ((($ai = $runtime.getAttributeIndex("","type"))>=0 && (($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("simpleType")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("annotation")))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("simpleType"))))) {
 126                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 390, fa);
 127                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
 128                 }
 129                 else {
 130                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 390, fa);
 131                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
 132                 }
 133             }
 134             break;
 135         case 13:
 136             {
 137                 if(($ai = $runtime.getAttributeIndex("","form"))>=0) {
 138                     $runtime.consumeAttribute($ai);
 139                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 140                 }
 141                 else {
 142                     $_ngcc_current_state = 12;
 143                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 144                 }
 145             }
 146             break;
 147         case 1:
 148             {
 149                 if(($ai = $runtime.getAttributeIndex("","type"))>=0) {
 150                     $runtime.consumeAttribute($ai);
 151                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 152                 }
 153                 else {
 154                     if(($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("simpleType"))) {
 155                         NGCCHandler h = new simpleType(this, super._source, $runtime, 379);
 156                         spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
 157                     }
 158                     else {
 159                         $_ngcc_current_state = 0;
 160                         $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 161                     }
 162                 }
 163             }
 164             break;
 165         default:
 166             {
 167                 unexpectedEnterElement($__qname);
 168             }
 169             break;
 170         }
 171     }
 172 
 173     public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
 174         int $ai;
 175         $uri = $__uri;
 176         $localName = $__local;
 177         $qname = $__qname;
 178         switch($_ngcc_current_state) {
 179         case 0:
 180             {
 181                 revertToParentFromLeaveElement(makeResult(), super._cookie, $__uri, $__local, $__qname);
 182             }
 183             break;
 184         case 12:
 185             {
 186                 if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
 187                     $runtime.consumeAttribute($ai);
 188                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 189                 }
 190                 else {
 191                     unexpectedLeaveElement($__qname);
 192                 }
 193             }
 194             break;
 195         case 7:
 196             {
 197                 $_ngcc_current_state = 1;
 198                 $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 199             }
 200             break;
 201         case 9:
 202             {
 203                 if(($ai = $runtime.getAttributeIndex("","type"))>=0) {
 204                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 390, fa);
 205                     spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
 206                 }
 207                 else {
 208                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 390, fa);
 209                     spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
 210                 }
 211             }
 212             break;
 213         case 13:
 214             {
 215                 if(($ai = $runtime.getAttributeIndex("","form"))>=0) {
 216                     $runtime.consumeAttribute($ai);
 217                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 218                 }
 219                 else {
 220                     $_ngcc_current_state = 12;
 221                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 222                 }
 223             }
 224             break;
 225         case 1:
 226             {
 227                 if(($ai = $runtime.getAttributeIndex("","type"))>=0) {
 228                     $runtime.consumeAttribute($ai);
 229                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 230                 }
 231                 else {
 232                     $_ngcc_current_state = 0;
 233                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 234                 }
 235             }
 236             break;
 237         default:
 238             {
 239                 unexpectedLeaveElement($__qname);
 240             }
 241             break;
 242         }
 243     }
 244 
 245     public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
 246         int $ai;
 247         $uri = $__uri;
 248         $localName = $__local;
 249         $qname = $__qname;
 250         switch($_ngcc_current_state) {
 251         case 0:
 252             {
 253                 revertToParentFromEnterAttribute(makeResult(), super._cookie, $__uri, $__local, $__qname);
 254             }
 255             break;
 256         case 12:
 257             {
 258                 if(($__uri.equals("") && $__local.equals("name"))) {
 259                     $_ngcc_current_state = 11;
 260                 }
 261                 else {
 262                     unexpectedEnterAttribute($__qname);
 263                 }
 264             }
 265             break;
 266         case 7:
 267             {
 268                 $_ngcc_current_state = 1;
 269                 $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 270             }
 271             break;
 272         case 9:
 273             {
 274                 if(($__uri.equals("") && $__local.equals("type"))) {
 275                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 390, fa);
 276                     spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
 277                 }
 278                 else {
 279                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 390, fa);
 280                     spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
 281                 }
 282             }
 283             break;
 284         case 13:
 285             {
 286                 if(($__uri.equals("") && $__local.equals("form"))) {
 287                     $_ngcc_current_state = 15;
 288                 }
 289                 else {
 290                     $_ngcc_current_state = 12;
 291                     $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 292                 }
 293             }
 294             break;
 295         case 1:
 296             {
 297                 if(($__uri.equals("") && $__local.equals("type"))) {
 298                     $_ngcc_current_state = 5;
 299                 }
 300                 else {
 301                     $_ngcc_current_state = 0;
 302                     $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 303                 }
 304             }
 305             break;
 306         default:
 307             {
 308                 unexpectedEnterAttribute($__qname);
 309             }
 310             break;
 311         }
 312     }
 313 
 314     public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
 315         int $ai;
 316         $uri = $__uri;
 317         $localName = $__local;
 318         $qname = $__qname;
 319         switch($_ngcc_current_state) {
 320         case 0:
 321             {
 322                 revertToParentFromLeaveAttribute(makeResult(), super._cookie, $__uri, $__local, $__qname);
 323             }
 324             break;
 325         case 14:
 326             {
 327                 if(($__uri.equals("") && $__local.equals("form"))) {
 328                     $_ngcc_current_state = 12;
 329                 }
 330                 else {
 331                     unexpectedLeaveAttribute($__qname);
 332                 }
 333             }
 334             break;
 335         case 7:
 336             {
 337                 $_ngcc_current_state = 1;
 338                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 339             }
 340             break;
 341         case 10:
 342             {
 343                 if(($__uri.equals("") && $__local.equals("name"))) {
 344                     $_ngcc_current_state = 9;
 345                 }
 346                 else {
 347                     unexpectedLeaveAttribute($__qname);
 348                 }
 349             }
 350             break;
 351         case 9:
 352             {
 353                 NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 390, fa);
 354                 spawnChildFromLeaveAttribute(h, $__uri, $__local, $__qname);
 355             }
 356             break;
 357         case 13:
 358             {
 359                 $_ngcc_current_state = 12;
 360                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 361             }
 362             break;
 363         case 1:
 364             {
 365                 $_ngcc_current_state = 0;
 366                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 367             }
 368             break;
 369         case 4:
 370             {
 371                 if(($__uri.equals("") && $__local.equals("type"))) {
 372                     $_ngcc_current_state = 0;
 373                 }
 374                 else {
 375                     unexpectedLeaveAttribute($__qname);
 376                 }
 377             }
 378             break;
 379         default:
 380             {
 381                 unexpectedLeaveAttribute($__qname);
 382             }
 383             break;
 384         }
 385     }
 386 
 387     public void text(String $value) throws SAXException {
 388         int $ai;
 389         switch($_ngcc_current_state) {
 390         case 0:
 391             {
 392                 revertToParentFromText(makeResult(), super._cookie, $value);
 393             }
 394             break;
 395         case 12:
 396             {
 397                 if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
 398                     $runtime.consumeAttribute($ai);
 399                     $runtime.sendText(super._cookie, $value);
 400                 }
 401             }
 402             break;
 403         case 7:
 404             {
 405                 $_ngcc_current_state = 1;
 406                 $runtime.sendText(super._cookie, $value);
 407             }
 408             break;
 409         case 9:
 410             {
 411                 if(($ai = $runtime.getAttributeIndex("","type"))>=0) {
 412                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 390, fa);
 413                     spawnChildFromText(h, $value);
 414                 }
 415                 else {
 416                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 390, fa);
 417                     spawnChildFromText(h, $value);
 418                 }
 419             }
 420             break;
 421         case 13:
 422             {
 423                 if(($ai = $runtime.getAttributeIndex("","form"))>=0) {
 424                     $runtime.consumeAttribute($ai);
 425                     $runtime.sendText(super._cookie, $value);
 426                 }
 427                 else {
 428                     $_ngcc_current_state = 12;
 429                     $runtime.sendText(super._cookie, $value);
 430                 }
 431             }
 432             break;
 433         case 15:
 434             {
 435                 if($value.equals("unqualified")) {
 436                     NGCCHandler h = new qualification(this, super._source, $runtime, 395);
 437                     spawnChildFromText(h, $value);
 438                 }
 439                 else {
 440                     if($value.equals("qualified")) {
 441                         NGCCHandler h = new qualification(this, super._source, $runtime, 395);
 442                         spawnChildFromText(h, $value);
 443                     }
 444                 }
 445             }
 446             break;
 447         case 1:
 448             {
 449                 if(($ai = $runtime.getAttributeIndex("","type"))>=0) {
 450                     $runtime.consumeAttribute($ai);
 451                     $runtime.sendText(super._cookie, $value);
 452                 }
 453                 else {
 454                     $_ngcc_current_state = 0;
 455                     $runtime.sendText(super._cookie, $value);
 456                 }
 457             }
 458             break;
 459         case 11:
 460             {
 461                 name = $value;
 462                 $_ngcc_current_state = 10;
 463             }
 464             break;
 465         case 5:
 466             {
 467                 NGCCHandler h = new qname(this, super._source, $runtime, 381);
 468                 spawnChildFromText(h, $value);
 469             }
 470             break;
 471         }
 472     }
 473 
 474     public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
 475         switch($__cookie__) {
 476         case 388:
 477             {
 478                 annotation = ((AnnotationImpl)$__result__);
 479                 $_ngcc_current_state = 1;
 480             }
 481             break;
 482         case 379:
 483             {
 484                 type = ((SimpleTypeImpl)$__result__);
 485                 $_ngcc_current_state = 0;
 486             }
 487             break;
 488         case 390:
 489             {
 490                 fa = ((ForeignAttributesImpl)$__result__);
 491                 $_ngcc_current_state = 7;
 492             }
 493             break;
 494         case 395:
 495             {
 496                 form = ((Boolean)$__result__).booleanValue();
 497                 action1();
 498                 $_ngcc_current_state = 14;
 499             }
 500             break;
 501         case 381:
 502             {
 503                 typeName = ((UName)$__result__);
 504                 action0();
 505                 $_ngcc_current_state = 4;
 506             }
 507             break;
 508         }
 509     }
 510 
 511     public boolean accepted() {
 512         return((($_ngcc_current_state == 0) || (($_ngcc_current_state == 1) || ($_ngcc_current_state == 7))));
 513     }
 514 
 515 
 516       private boolean form;
 517       private boolean formSpecified = false;
 518 
 519       private AttributeDeclImpl makeResult() {
 520 
 521         if(type==null)
 522           // type defaults to anySimpleType
 523           type = $runtime.parser.schemaSet.anySimpleType;
 524 
 525         if(!formSpecified) form = $runtime.attributeFormDefault;
 526           // global attributes are always qualified
 527           if(!isLocal)       form = true;
 528 
 529         String tns;
 530         if(form==true)  tns = $runtime.currentSchema.getTargetNamespace();
 531         else            tns = "";
 532 
 533         // proper handling of anonymous types
 534         return new AttributeDeclImpl( $runtime.document, tns, name,
 535           annotation, locator, fa, isLocal,
 536           $runtime.createXmlString(defaultValue),
 537           $runtime.createXmlString(fixedValue),
 538           type );
 539       }
 540       private Ref.SimpleType type;
 541 
 542 }