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