001: /* this file is generated by RelaxNGCC */
002: package com.sun.xml.xsom.impl.parser.state;
003:
004: import org.xml.sax.SAXException;
005: import org.xml.sax.XMLReader;
006: import org.xml.sax.Attributes;
007: import com.sun.xml.xsom.impl.parser.NGCCRuntimeEx;
008:
009: import com.sun.xml.xsom.*;
010: import com.sun.xml.xsom.parser.*;
011: import com.sun.xml.xsom.impl.*;
012: import com.sun.xml.xsom.impl.parser.*;
013: import org.xml.sax.Locator;
014: import org.xml.sax.ContentHandler;
015: import org.xml.sax.helpers.*;
016: import java.util.*;
017:
018: class simpleType extends NGCCHandler {
019: private AnnotationImpl annotation;
020: private String name;
021: private ForeignAttributesImpl fa;
022: private String finalValue;
023: protected final NGCCRuntimeEx $runtime;
024: private int $_ngcc_current_state;
025: protected String $uri;
026: protected String $localName;
027: protected String $qname;
028:
029: public final NGCCRuntime getRuntime() {
030: return ($runtime);
031: }
032:
033: public simpleType(NGCCHandler parent, NGCCEventSource source,
034: NGCCRuntimeEx runtime, int cookie) {
035: super (source, parent, cookie);
036: $runtime = runtime;
037: $_ngcc_current_state = 19;
038: }
039:
040: public simpleType(NGCCRuntimeEx runtime) {
041: this (null, runtime, runtime, -1);
042: }
043:
044: private void action0() throws SAXException {
045: finalSet = makeFinalSet(finalValue);
046: }
047:
048: private void action1() throws SAXException {
049: locator = $runtime.copyLocator();
050: }
051:
052: public void enterElement(String $__uri, String $__local,
053: String $__qname, Attributes $attrs) throws SAXException {
054: int $ai;
055: $uri = $__uri;
056: $localName = $__local;
057: $qname = $__qname;
058: switch ($_ngcc_current_state) {
059: case 8: {
060: if (($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local
061: .equals("annotation"))) {
062: NGCCHandler h = new annotation(this , super ._source,
063: $runtime, 632, null,
064: AnnotationContext.SIMPLETYPE_DECL);
065: spawnChildFromEnterElement(h, $__uri, $__local,
066: $__qname, $attrs);
067: } else {
068: $_ngcc_current_state = 7;
069: $runtime.sendEnterElement(super ._cookie, $__uri,
070: $__local, $__qname, $attrs);
071: }
072: }
073: break;
074: case 19: {
075: if (($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local
076: .equals("simpleType"))) {
077: $runtime.onEnterElementConsumed($__uri, $__local,
078: $__qname, $attrs);
079: action1();
080: $_ngcc_current_state = 15;
081: } else {
082: unexpectedEnterElement($__qname);
083: }
084: }
085: break;
086: case 11: {
087: if (($ai = $runtime.getAttributeIndex("", "name")) >= 0) {
088: $runtime.consumeAttribute($ai);
089: $runtime.sendEnterElement(super ._cookie, $__uri,
090: $__local, $__qname, $attrs);
091: } else {
092: $_ngcc_current_state = 10;
093: $runtime.sendEnterElement(super ._cookie, $__uri,
094: $__local, $__qname, $attrs);
095: }
096: }
097: break;
098: case 0: {
099: revertToParentFromEnterElement(result, super ._cookie,
100: $__uri, $__local, $__qname, $attrs);
101: }
102: break;
103: case 15: {
104: if (($ai = $runtime.getAttributeIndex("", "final")) >= 0) {
105: $runtime.consumeAttribute($ai);
106: $runtime.sendEnterElement(super ._cookie, $__uri,
107: $__local, $__qname, $attrs);
108: } else {
109: $_ngcc_current_state = 11;
110: $runtime.sendEnterElement(super ._cookie, $__uri,
111: $__local, $__qname, $attrs);
112: }
113: }
114: break;
115: case 7: {
116: action0();
117: $_ngcc_current_state = 2;
118: $runtime.sendEnterElement(super ._cookie, $__uri, $__local,
119: $__qname, $attrs);
120: }
121: break;
122: case 2: {
123: if (($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local
124: .equals("restriction"))) {
125: NGCCHandler h = new SimpleType_Restriction(this ,
126: super ._source, $runtime, 628, annotation,
127: locator, fa, name, finalSet);
128: spawnChildFromEnterElement(h, $__uri, $__local,
129: $__qname, $attrs);
130: } else {
131: if (($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local
132: .equals("list"))) {
133: NGCCHandler h = new SimpleType_List(this ,
134: super ._source, $runtime, 629, annotation,
135: locator, fa, name, finalSet);
136: spawnChildFromEnterElement(h, $__uri, $__local,
137: $__qname, $attrs);
138: } else {
139: if (($__uri
140: .equals("http://www.w3.org/2001/XMLSchema") && $__local
141: .equals("union"))) {
142: NGCCHandler h = new SimpleType_Union(this ,
143: super ._source, $runtime, 623,
144: annotation, locator, fa, name, finalSet);
145: spawnChildFromEnterElement(h, $__uri, $__local,
146: $__qname, $attrs);
147: } else {
148: unexpectedEnterElement($__qname);
149: }
150: }
151: }
152: }
153: break;
154: case 10: {
155: if ((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local
156: .equals("restriction")) || (($__uri
157: .equals("http://www.w3.org/2001/XMLSchema") && $__local
158: .equals("annotation")) || (($__uri
159: .equals("http://www.w3.org/2001/XMLSchema") && $__local
160: .equals("union")) || ($__uri
161: .equals("http://www.w3.org/2001/XMLSchema") && $__local
162: .equals("list")))))) {
163: NGCCHandler h = new foreignAttributes(this ,
164: super ._source, $runtime, 634, fa);
165: spawnChildFromEnterElement(h, $__uri, $__local,
166: $__qname, $attrs);
167: } else {
168: unexpectedEnterElement($__qname);
169: }
170: }
171: break;
172: default: {
173: unexpectedEnterElement($__qname);
174: }
175: break;
176: }
177: }
178:
179: public void leaveElement(String $__uri, String $__local,
180: String $__qname) throws SAXException {
181: int $ai;
182: $uri = $__uri;
183: $localName = $__local;
184: $qname = $__qname;
185: switch ($_ngcc_current_state) {
186: case 8: {
187: $_ngcc_current_state = 7;
188: $runtime.sendLeaveElement(super ._cookie, $__uri, $__local,
189: $__qname);
190: }
191: break;
192: case 11: {
193: if (($ai = $runtime.getAttributeIndex("", "name")) >= 0) {
194: $runtime.consumeAttribute($ai);
195: $runtime.sendLeaveElement(super ._cookie, $__uri,
196: $__local, $__qname);
197: } else {
198: $_ngcc_current_state = 10;
199: $runtime.sendLeaveElement(super ._cookie, $__uri,
200: $__local, $__qname);
201: }
202: }
203: break;
204: case 0: {
205: revertToParentFromLeaveElement(result, super ._cookie,
206: $__uri, $__local, $__qname);
207: }
208: break;
209: case 15: {
210: if (($ai = $runtime.getAttributeIndex("", "final")) >= 0) {
211: $runtime.consumeAttribute($ai);
212: $runtime.sendLeaveElement(super ._cookie, $__uri,
213: $__local, $__qname);
214: } else {
215: $_ngcc_current_state = 11;
216: $runtime.sendLeaveElement(super ._cookie, $__uri,
217: $__local, $__qname);
218: }
219: }
220: break;
221: case 1: {
222: if (($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local
223: .equals("simpleType"))) {
224: $runtime.onLeaveElementConsumed($__uri, $__local,
225: $__qname);
226: $_ngcc_current_state = 0;
227: } else {
228: unexpectedLeaveElement($__qname);
229: }
230: }
231: break;
232: case 7: {
233: action0();
234: $_ngcc_current_state = 2;
235: $runtime.sendLeaveElement(super ._cookie, $__uri, $__local,
236: $__qname);
237: }
238: break;
239: default: {
240: unexpectedLeaveElement($__qname);
241: }
242: break;
243: }
244: }
245:
246: public void enterAttribute(String $__uri, String $__local,
247: String $__qname) throws SAXException {
248: int $ai;
249: $uri = $__uri;
250: $localName = $__local;
251: $qname = $__qname;
252: switch ($_ngcc_current_state) {
253: case 8: {
254: $_ngcc_current_state = 7;
255: $runtime.sendEnterAttribute(super ._cookie, $__uri,
256: $__local, $__qname);
257: }
258: break;
259: case 11: {
260: if (($__uri.equals("") && $__local.equals("name"))) {
261: $_ngcc_current_state = 13;
262: } else {
263: $_ngcc_current_state = 10;
264: $runtime.sendEnterAttribute(super ._cookie, $__uri,
265: $__local, $__qname);
266: }
267: }
268: break;
269: case 0: {
270: revertToParentFromEnterAttribute(result, super ._cookie,
271: $__uri, $__local, $__qname);
272: }
273: break;
274: case 15: {
275: if (($__uri.equals("") && $__local.equals("final"))) {
276: $_ngcc_current_state = 17;
277: } else {
278: $_ngcc_current_state = 11;
279: $runtime.sendEnterAttribute(super ._cookie, $__uri,
280: $__local, $__qname);
281: }
282: }
283: break;
284: case 7: {
285: action0();
286: $_ngcc_current_state = 2;
287: $runtime.sendEnterAttribute(super ._cookie, $__uri,
288: $__local, $__qname);
289: }
290: break;
291: default: {
292: unexpectedEnterAttribute($__qname);
293: }
294: break;
295: }
296: }
297:
298: public void leaveAttribute(String $__uri, String $__local,
299: String $__qname) throws SAXException {
300: int $ai;
301: $uri = $__uri;
302: $localName = $__local;
303: $qname = $__qname;
304: switch ($_ngcc_current_state) {
305: case 8: {
306: $_ngcc_current_state = 7;
307: $runtime.sendLeaveAttribute(super ._cookie, $__uri,
308: $__local, $__qname);
309: }
310: break;
311: case 12: {
312: if (($__uri.equals("") && $__local.equals("name"))) {
313: $_ngcc_current_state = 10;
314: } else {
315: unexpectedLeaveAttribute($__qname);
316: }
317: }
318: break;
319: case 11: {
320: $_ngcc_current_state = 10;
321: $runtime.sendLeaveAttribute(super ._cookie, $__uri,
322: $__local, $__qname);
323: }
324: break;
325: case 0: {
326: revertToParentFromLeaveAttribute(result, super ._cookie,
327: $__uri, $__local, $__qname);
328: }
329: break;
330: case 15: {
331: $_ngcc_current_state = 11;
332: $runtime.sendLeaveAttribute(super ._cookie, $__uri,
333: $__local, $__qname);
334: }
335: break;
336: case 16: {
337: if (($__uri.equals("") && $__local.equals("final"))) {
338: $_ngcc_current_state = 11;
339: } else {
340: unexpectedLeaveAttribute($__qname);
341: }
342: }
343: break;
344: case 7: {
345: action0();
346: $_ngcc_current_state = 2;
347: $runtime.sendLeaveAttribute(super ._cookie, $__uri,
348: $__local, $__qname);
349: }
350: break;
351: default: {
352: unexpectedLeaveAttribute($__qname);
353: }
354: break;
355: }
356: }
357:
358: public void text(String $value) throws SAXException {
359: int $ai;
360: switch ($_ngcc_current_state) {
361: case 8: {
362: $_ngcc_current_state = 7;
363: $runtime.sendText(super ._cookie, $value);
364: }
365: break;
366: case 11: {
367: if (($ai = $runtime.getAttributeIndex("", "name")) >= 0) {
368: $runtime.consumeAttribute($ai);
369: $runtime.sendText(super ._cookie, $value);
370: } else {
371: $_ngcc_current_state = 10;
372: $runtime.sendText(super ._cookie, $value);
373: }
374: }
375: break;
376: case 0: {
377: revertToParentFromText(result, super ._cookie, $value);
378: }
379: break;
380: case 13: {
381: name = $value;
382: $_ngcc_current_state = 12;
383: }
384: break;
385: case 15: {
386: if (($ai = $runtime.getAttributeIndex("", "final")) >= 0) {
387: $runtime.consumeAttribute($ai);
388: $runtime.sendText(super ._cookie, $value);
389: } else {
390: $_ngcc_current_state = 11;
391: $runtime.sendText(super ._cookie, $value);
392: }
393: }
394: break;
395: case 7: {
396: action0();
397: $_ngcc_current_state = 2;
398: $runtime.sendText(super ._cookie, $value);
399: }
400: break;
401: case 17: {
402: finalValue = $value;
403: $_ngcc_current_state = 16;
404: }
405: break;
406: }
407: }
408:
409: public void onChildCompleted(Object $__result__, int $__cookie__,
410: boolean $__needAttCheck__) throws SAXException {
411: switch ($__cookie__) {
412: case 634: {
413: fa = ((ForeignAttributesImpl) $__result__);
414: $_ngcc_current_state = 8;
415: }
416: break;
417: case 632: {
418: annotation = ((AnnotationImpl) $__result__);
419: $_ngcc_current_state = 7;
420: }
421: break;
422: case 628: {
423: result = ((RestrictionSimpleTypeImpl) $__result__);
424: $_ngcc_current_state = 1;
425: }
426: break;
427: case 629: {
428: result = ((ListSimpleTypeImpl) $__result__);
429: $_ngcc_current_state = 1;
430: }
431: break;
432: case 623: {
433: result = ((UnionSimpleTypeImpl) $__result__);
434: $_ngcc_current_state = 1;
435: }
436: break;
437: }
438: }
439:
440: public boolean accepted() {
441: return (($_ngcc_current_state == 0));
442: }
443:
444: /** computed simple type object */
445: private SimpleTypeImpl result;
446:
447: private Locator locator;
448:
449: private Set finalSet;
450:
451: private Set makeFinalSet(String finalValue) {
452: if (finalValue == null)
453: return Collections.EMPTY_SET;
454:
455: Set s = new HashSet();
456: StringTokenizer tokens = new StringTokenizer(finalValue);
457: while (tokens.hasMoreTokens()) {
458: String token = tokens.nextToken();
459: if (token.equals("#all")) {
460: s.add(XSVariety.ATOMIC);
461: s.add(XSVariety.UNION);
462: s.add(XSVariety.LIST);
463: }
464: if (token.equals("list")) {
465: s.add(XSVariety.LIST);
466: }
467: if (token.equals("union")) {
468: s.add(XSVariety.UNION);
469: }
470: if (token.equals("restriction")) {
471: s.add(XSVariety.ATOMIC);
472: }
473: }
474: return s;
475: }
476:
477: }
|