1 /*
   2  * Copyright (c) 1997, 2013, 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 simpleType extends NGCCHandler {
  46     private AnnotationImpl annotation;
  47     private String name;
  48     private ForeignAttributesImpl fa;
  49     private String finalValue;
  50     protected final NGCCRuntimeEx $runtime;
  51     private int $_ngcc_current_state;
  52     protected String $uri;
  53     protected String $localName;
  54     protected String $qname;
  55 
  56     public final NGCCRuntime getRuntime() {
  57         return($runtime);
  58     }
  59 
  60     public simpleType(NGCCHandler parent, NGCCEventSource source, NGCCRuntimeEx runtime, int cookie) {
  61         super(source, parent, cookie);
  62         $runtime = runtime;
  63         $_ngcc_current_state = 19;
  64     }
  65 
  66     public simpleType(NGCCRuntimeEx runtime) {
  67         this(null, runtime, runtime, -1);
  68     }
  69 
  70     private void action0()throws SAXException {
  71         finalSet = makeFinalSet(finalValue);
  72 }
  73 
  74     private void action1()throws SAXException {
  75         locator=$runtime.copyLocator();
  76 }
  77 
  78     public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
  79         int $ai;
  80         $uri = $__uri;
  81         $localName = $__local;
  82         $qname = $__qname;
  83         switch($_ngcc_current_state) {
  84         case 15:
  85             {
  86                 if(($ai = $runtime.getAttributeIndex("","final"))>=0) {
  87                     $runtime.consumeAttribute($ai);
  88                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
  89                 }
  90                 else {
  91                     $_ngcc_current_state = 11;
  92                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
  93                 }
  94             }
  95             break;
  96         case 11:
  97             {
  98                 if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
  99                     $runtime.consumeAttribute($ai);
 100                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 101                 }
 102                 else {
 103                     $_ngcc_current_state = 10;
 104                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 105                 }
 106             }
 107             break;
 108         case 19:
 109             {
 110                 if(($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("simpleType"))) {
 111                     $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
 112                     action1();
 113                     $_ngcc_current_state = 15;
 114                 }
 115                 else {
 116                     unexpectedEnterElement($__qname);
 117                 }
 118             }
 119             break;
 120         case 8:
 121             {
 122                 if(($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("annotation"))) {
 123                     NGCCHandler h = new annotation(this, super._source, $runtime, 89, null,AnnotationContext.SIMPLETYPE_DECL);
 124                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
 125                 }
 126                 else {
 127                     $_ngcc_current_state = 7;
 128                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 129                 }
 130             }
 131             break;
 132         case 10:
 133             {
 134                 if((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("annotation")) || (($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("restriction")) || (($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("union")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("list")))))) {
 135                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 91, fa);
 136                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
 137                 }
 138                 else {
 139                     unexpectedEnterElement($__qname);
 140                 }
 141             }
 142             break;
 143         case 7:
 144             {
 145                 action0();
 146                 $_ngcc_current_state = 2;
 147                 $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 148             }
 149             break;
 150         case 0:
 151             {
 152                 revertToParentFromEnterElement(result, super._cookie, $__uri, $__local, $__qname, $attrs);
 153             }
 154             break;
 155         case 2:
 156             {
 157                 if(($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("restriction"))) {
 158                     NGCCHandler h = new SimpleType_Restriction(this, super._source, $runtime, 85, annotation,locator,fa,name,finalSet);
 159                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
 160                 }
 161                 else {
 162                     if(($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("list"))) {
 163                         NGCCHandler h = new SimpleType_List(this, super._source, $runtime, 86, annotation,locator,fa,name,finalSet);
 164                         spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
 165                     }
 166                     else {
 167                         if(($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("union"))) {
 168                             NGCCHandler h = new SimpleType_Union(this, super._source, $runtime, 80, annotation,locator,fa,name,finalSet);
 169                             spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
 170                         }
 171                         else {
 172                             unexpectedEnterElement($__qname);
 173                         }
 174                     }
 175                 }
 176             }
 177             break;
 178         default:
 179             {
 180                 unexpectedEnterElement($__qname);
 181             }
 182             break;
 183         }
 184     }
 185 
 186     public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
 187         int $ai;
 188         $uri = $__uri;
 189         $localName = $__local;
 190         $qname = $__qname;
 191         switch($_ngcc_current_state) {
 192         case 15:
 193             {
 194                 if(($ai = $runtime.getAttributeIndex("","final"))>=0) {
 195                     $runtime.consumeAttribute($ai);
 196                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 197                 }
 198                 else {
 199                     $_ngcc_current_state = 11;
 200                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 201                 }
 202             }
 203             break;
 204         case 11:
 205             {
 206                 if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
 207                     $runtime.consumeAttribute($ai);
 208                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 209                 }
 210                 else {
 211                     $_ngcc_current_state = 10;
 212                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 213                 }
 214             }
 215             break;
 216         case 8:
 217             {
 218                 $_ngcc_current_state = 7;
 219                 $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 220             }
 221             break;
 222         case 7:
 223             {
 224                 action0();
 225                 $_ngcc_current_state = 2;
 226                 $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 227             }
 228             break;
 229         case 1:
 230             {
 231                 if(($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("simpleType"))) {
 232                     $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
 233                     $_ngcc_current_state = 0;
 234                 }
 235                 else {
 236                     unexpectedLeaveElement($__qname);
 237                 }
 238             }
 239             break;
 240         case 0:
 241             {
 242                 revertToParentFromLeaveElement(result, super._cookie, $__uri, $__local, $__qname);
 243             }
 244             break;
 245         default:
 246             {
 247                 unexpectedLeaveElement($__qname);
 248             }
 249             break;
 250         }
 251     }
 252 
 253     public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
 254         int $ai;
 255         $uri = $__uri;
 256         $localName = $__local;
 257         $qname = $__qname;
 258         switch($_ngcc_current_state) {
 259         case 15:
 260             {
 261                 if(($__uri.equals("") && $__local.equals("final"))) {
 262                     $_ngcc_current_state = 17;
 263                 }
 264                 else {
 265                     $_ngcc_current_state = 11;
 266                     $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 267                 }
 268             }
 269             break;
 270         case 11:
 271             {
 272                 if(($__uri.equals("") && $__local.equals("name"))) {
 273                     $_ngcc_current_state = 13;
 274                 }
 275                 else {
 276                     $_ngcc_current_state = 10;
 277                     $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 278                 }
 279             }
 280             break;
 281         case 8:
 282             {
 283                 $_ngcc_current_state = 7;
 284                 $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 285             }
 286             break;
 287         case 7:
 288             {
 289                 action0();
 290                 $_ngcc_current_state = 2;
 291                 $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 292             }
 293             break;
 294         case 0:
 295             {
 296                 revertToParentFromEnterAttribute(result, super._cookie, $__uri, $__local, $__qname);
 297             }
 298             break;
 299         default:
 300             {
 301                 unexpectedEnterAttribute($__qname);
 302             }
 303             break;
 304         }
 305     }
 306 
 307     public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
 308         int $ai;
 309         $uri = $__uri;
 310         $localName = $__local;
 311         $qname = $__qname;
 312         switch($_ngcc_current_state) {
 313         case 15:
 314             {
 315                 $_ngcc_current_state = 11;
 316                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 317             }
 318             break;
 319         case 11:
 320             {
 321                 $_ngcc_current_state = 10;
 322                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 323             }
 324             break;
 325         case 8:
 326             {
 327                 $_ngcc_current_state = 7;
 328                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 329             }
 330             break;
 331         case 7:
 332             {
 333                 action0();
 334                 $_ngcc_current_state = 2;
 335                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 336             }
 337             break;
 338         case 12:
 339             {
 340                 if(($__uri.equals("") && $__local.equals("name"))) {
 341                     $_ngcc_current_state = 10;
 342                 }
 343                 else {
 344                     unexpectedLeaveAttribute($__qname);
 345                 }
 346             }
 347             break;
 348         case 16:
 349             {
 350                 if(($__uri.equals("") && $__local.equals("final"))) {
 351                     $_ngcc_current_state = 11;
 352                 }
 353                 else {
 354                     unexpectedLeaveAttribute($__qname);
 355                 }
 356             }
 357             break;
 358         case 0:
 359             {
 360                 revertToParentFromLeaveAttribute(result, super._cookie, $__uri, $__local, $__qname);
 361             }
 362             break;
 363         default:
 364             {
 365                 unexpectedLeaveAttribute($__qname);
 366             }
 367             break;
 368         }
 369     }
 370 
 371     public void text(String $value) throws SAXException {
 372         int $ai;
 373         switch($_ngcc_current_state) {
 374         case 13:
 375             {
 376                 name = $value;
 377                 $_ngcc_current_state = 12;
 378             }
 379             break;
 380         case 15:
 381             {
 382                 if(($ai = $runtime.getAttributeIndex("","final"))>=0) {
 383                     $runtime.consumeAttribute($ai);
 384                     $runtime.sendText(super._cookie, $value);
 385                 }
 386                 else {
 387                     $_ngcc_current_state = 11;
 388                     $runtime.sendText(super._cookie, $value);
 389                 }
 390             }
 391             break;
 392         case 11:
 393             {
 394                 if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
 395                     $runtime.consumeAttribute($ai);
 396                     $runtime.sendText(super._cookie, $value);
 397                 }
 398                 else {
 399                     $_ngcc_current_state = 10;
 400                     $runtime.sendText(super._cookie, $value);
 401                 }
 402             }
 403             break;
 404         case 8:
 405             {
 406                 $_ngcc_current_state = 7;
 407                 $runtime.sendText(super._cookie, $value);
 408             }
 409             break;
 410         case 7:
 411             {
 412                 action0();
 413                 $_ngcc_current_state = 2;
 414                 $runtime.sendText(super._cookie, $value);
 415             }
 416             break;
 417         case 17:
 418             {
 419                 finalValue = $value;
 420                 $_ngcc_current_state = 16;
 421             }
 422             break;
 423         case 0:
 424             {
 425                 revertToParentFromText(result, super._cookie, $value);
 426             }
 427             break;
 428         }
 429     }
 430 
 431     public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
 432         switch($__cookie__) {
 433         case 89:
 434             {
 435                 annotation = ((AnnotationImpl)$__result__);
 436                 $_ngcc_current_state = 7;
 437             }
 438             break;
 439         case 91:
 440             {
 441                 fa = ((ForeignAttributesImpl)$__result__);
 442                 $_ngcc_current_state = 8;
 443             }
 444             break;
 445         case 85:
 446             {
 447                 result = ((RestrictionSimpleTypeImpl)$__result__);
 448                 $_ngcc_current_state = 1;
 449             }
 450             break;
 451         case 86:
 452             {
 453                 result = ((ListSimpleTypeImpl)$__result__);
 454                 $_ngcc_current_state = 1;
 455             }
 456             break;
 457         case 80:
 458             {
 459                 result = ((UnionSimpleTypeImpl)$__result__);
 460                 $_ngcc_current_state = 1;
 461             }
 462             break;
 463         }
 464     }
 465 
 466     public boolean accepted() {
 467         return(($_ngcc_current_state == 0));
 468     }
 469 
 470 
 471                 /** computed simple type object */
 472                 private SimpleTypeImpl result;
 473 
 474                 private Locator locator;
 475 
 476       private Set finalSet;
 477 
 478       private Set makeFinalSet(String finalValue) {
 479         if(finalValue==null)
 480           return Collections.EMPTY_SET;
 481 
 482         Set s = new HashSet();
 483         StringTokenizer tokens = new StringTokenizer(finalValue);
 484         while(tokens.hasMoreTokens()) {
 485           String token = tokens.nextToken();
 486           if(token.equals("#all")) {
 487             s.add(XSVariety.ATOMIC);
 488             s.add(XSVariety.UNION);
 489             s.add(XSVariety.LIST);
 490           }
 491           if(token.equals("list")) {
 492             s.add(XSVariety.LIST);
 493           }
 494           if(token.equals("union")) {
 495             s.add(XSVariety.UNION);
 496           }
 497           if(token.equals("restriction")) {
 498             s.add(XSVariety.ATOMIC);
 499           }
 500         }
 501         return s;
 502       }
 503 
 504 }