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 import java.util.StringTokenizer;
44       import java.util.HashSet;
45 
46 
47 class wildcardBody extends NGCCHandler {
48     private AnnotationImpl annotation;
49     private Locator locator;
50     private String modeValue;
51     private String ns;
52     private ForeignAttributesImpl fa;
53     protected final NGCCRuntimeEx $runtime;
54     private int $_ngcc_current_state;
55     protected String $uri;
56     protected String $localName;
57     protected String $qname;
58 
getRuntime()59     public final NGCCRuntime getRuntime() {
60         return($runtime);
61     }
62 
wildcardBody(NGCCHandler parent, NGCCEventSource source, NGCCRuntimeEx runtime, int cookie, Locator _locator)63     public wildcardBody(NGCCHandler parent, NGCCEventSource source, NGCCRuntimeEx runtime, int cookie, Locator _locator) {
64         super(source, parent, cookie);
65         $runtime = runtime;
66         this.locator = _locator;
67         $_ngcc_current_state = 10;
68     }
69 
wildcardBody(NGCCRuntimeEx runtime, Locator _locator)70     public wildcardBody(NGCCRuntimeEx runtime, Locator _locator) {
71         this(null, runtime, runtime, -1, _locator);
72     }
73 
enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs)74     public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
75         int $ai;
76         $uri = $__uri;
77         $localName = $__local;
78         $qname = $__qname;
79         switch($_ngcc_current_state) {
80         case 1:
81             {
82                 if(($ai = $runtime.getAttributeIndex("","namespace"))>=0) {
83                     $runtime.consumeAttribute($ai);
84                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
85                 }
86                 else {
87                     $_ngcc_current_state = 0;
88                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
89                 }
90             }
91             break;
92         case 5:
93             {
94                 if(($ai = $runtime.getAttributeIndex("","processContents"))>=0) {
95                     $runtime.consumeAttribute($ai);
96                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
97                 }
98                 else {
99                     $_ngcc_current_state = 1;
100                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
101                 }
102             }
103             break;
104         case 9:
105             {
106                 if((($ai = $runtime.getAttributeIndex("","namespace"))>=0 || ($ai = $runtime.getAttributeIndex("","processContents"))>=0)) {
107                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 409, null);
108                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
109                 }
110                 else {
111                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 409, null);
112                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
113                 }
114             }
115             break;
116         case 10:
117             {
118                 if(($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("annotation"))) {
119                     NGCCHandler h = new annotation(this, super._source, $runtime, 411, null,AnnotationContext.WILDCARD);
120                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
121                 }
122                 else {
123                     $_ngcc_current_state = 9;
124                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
125                 }
126             }
127             break;
128         case 0:
129             {
130                 revertToParentFromEnterElement(makeResult(), super._cookie, $__uri, $__local, $__qname, $attrs);
131             }
132             break;
133         default:
134             {
135                 unexpectedEnterElement($__qname);
136             }
137             break;
138         }
139     }
140 
leaveElement(String $__uri, String $__local, String $__qname)141     public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
142         int $ai;
143         $uri = $__uri;
144         $localName = $__local;
145         $qname = $__qname;
146         switch($_ngcc_current_state) {
147         case 1:
148             {
149                 if(($ai = $runtime.getAttributeIndex("","namespace"))>=0) {
150                     $runtime.consumeAttribute($ai);
151                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
152                 }
153                 else {
154                     $_ngcc_current_state = 0;
155                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
156                 }
157             }
158             break;
159         case 5:
160             {
161                 if(($ai = $runtime.getAttributeIndex("","processContents"))>=0) {
162                     $runtime.consumeAttribute($ai);
163                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
164                 }
165                 else {
166                     $_ngcc_current_state = 1;
167                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
168                 }
169             }
170             break;
171         case 9:
172             {
173                 if((($ai = $runtime.getAttributeIndex("","namespace"))>=0 || ($ai = $runtime.getAttributeIndex("","processContents"))>=0)) {
174                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 409, null);
175                     spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
176                 }
177                 else {
178                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 409, null);
179                     spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
180                 }
181             }
182             break;
183         case 10:
184             {
185                 $_ngcc_current_state = 9;
186                 $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
187             }
188             break;
189         case 0:
190             {
191                 revertToParentFromLeaveElement(makeResult(), super._cookie, $__uri, $__local, $__qname);
192             }
193             break;
194         default:
195             {
196                 unexpectedLeaveElement($__qname);
197             }
198             break;
199         }
200     }
201 
enterAttribute(String $__uri, String $__local, String $__qname)202     public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
203         int $ai;
204         $uri = $__uri;
205         $localName = $__local;
206         $qname = $__qname;
207         switch($_ngcc_current_state) {
208         case 1:
209             {
210                 if(($__uri.equals("") && $__local.equals("namespace"))) {
211                     $_ngcc_current_state = 3;
212                 }
213                 else {
214                     $_ngcc_current_state = 0;
215                     $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
216                 }
217             }
218             break;
219         case 5:
220             {
221                 if(($__uri.equals("") && $__local.equals("processContents"))) {
222                     $_ngcc_current_state = 7;
223                 }
224                 else {
225                     $_ngcc_current_state = 1;
226                     $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
227                 }
228             }
229             break;
230         case 9:
231             {
232                 if((($__uri.equals("") && $__local.equals("namespace")) || ($__uri.equals("") && $__local.equals("processContents")))) {
233                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 409, null);
234                     spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
235                 }
236                 else {
237                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 409, null);
238                     spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
239                 }
240             }
241             break;
242         case 10:
243             {
244                 $_ngcc_current_state = 9;
245                 $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
246             }
247             break;
248         case 0:
249             {
250                 revertToParentFromEnterAttribute(makeResult(), super._cookie, $__uri, $__local, $__qname);
251             }
252             break;
253         default:
254             {
255                 unexpectedEnterAttribute($__qname);
256             }
257             break;
258         }
259     }
260 
leaveAttribute(String $__uri, String $__local, String $__qname)261     public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
262         int $ai;
263         $uri = $__uri;
264         $localName = $__local;
265         $qname = $__qname;
266         switch($_ngcc_current_state) {
267         case 1:
268             {
269                 $_ngcc_current_state = 0;
270                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
271             }
272             break;
273         case 5:
274             {
275                 $_ngcc_current_state = 1;
276                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
277             }
278             break;
279         case 6:
280             {
281                 if(($__uri.equals("") && $__local.equals("processContents"))) {
282                     $_ngcc_current_state = 1;
283                 }
284                 else {
285                     unexpectedLeaveAttribute($__qname);
286                 }
287             }
288             break;
289         case 9:
290             {
291                 NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 409, null);
292                 spawnChildFromLeaveAttribute(h, $__uri, $__local, $__qname);
293             }
294             break;
295         case 10:
296             {
297                 $_ngcc_current_state = 9;
298                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
299             }
300             break;
301         case 0:
302             {
303                 revertToParentFromLeaveAttribute(makeResult(), super._cookie, $__uri, $__local, $__qname);
304             }
305             break;
306         case 2:
307             {
308                 if(($__uri.equals("") && $__local.equals("namespace"))) {
309                     $_ngcc_current_state = 0;
310                 }
311                 else {
312                     unexpectedLeaveAttribute($__qname);
313                 }
314             }
315             break;
316         default:
317             {
318                 unexpectedLeaveAttribute($__qname);
319             }
320             break;
321         }
322     }
323 
text(String $value)324     public void text(String $value) throws SAXException {
325         int $ai;
326         switch($_ngcc_current_state) {
327         case 1:
328             {
329                 if(($ai = $runtime.getAttributeIndex("","namespace"))>=0) {
330                     $runtime.consumeAttribute($ai);
331                     $runtime.sendText(super._cookie, $value);
332                 }
333                 else {
334                     $_ngcc_current_state = 0;
335                     $runtime.sendText(super._cookie, $value);
336                 }
337             }
338             break;
339         case 3:
340             {
341                 ns = $value;
342                 $_ngcc_current_state = 2;
343             }
344             break;
345         case 5:
346             {
347                 if(($ai = $runtime.getAttributeIndex("","processContents"))>=0) {
348                     $runtime.consumeAttribute($ai);
349                     $runtime.sendText(super._cookie, $value);
350                 }
351                 else {
352                     $_ngcc_current_state = 1;
353                     $runtime.sendText(super._cookie, $value);
354                 }
355             }
356             break;
357         case 9:
358             {
359                 if(($ai = $runtime.getAttributeIndex("","processContents"))>=0) {
360                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 409, null);
361                     spawnChildFromText(h, $value);
362                 }
363                 else {
364                     if(($ai = $runtime.getAttributeIndex("","namespace"))>=0) {
365                         NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 409, null);
366                         spawnChildFromText(h, $value);
367                     }
368                     else {
369                         NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 409, null);
370                         spawnChildFromText(h, $value);
371                     }
372                 }
373             }
374             break;
375         case 10:
376             {
377                 $_ngcc_current_state = 9;
378                 $runtime.sendText(super._cookie, $value);
379             }
380             break;
381         case 0:
382             {
383                 revertToParentFromText(makeResult(), super._cookie, $value);
384             }
385             break;
386         case 7:
387             {
388                 modeValue = $value;
389                 $_ngcc_current_state = 6;
390             }
391             break;
392         }
393     }
394 
onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)395     public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
396         switch($__cookie__) {
397         case 409:
398             {
399                 fa = ((ForeignAttributesImpl)$__result__);
400                 $_ngcc_current_state = 5;
401             }
402             break;
403         case 411:
404             {
405                 annotation = ((AnnotationImpl)$__result__);
406                 $_ngcc_current_state = 9;
407             }
408             break;
409         }
410     }
411 
accepted()412     public boolean accepted() {
413         return((($_ngcc_current_state == 0) || (($_ngcc_current_state == 5) || ($_ngcc_current_state == 1))));
414     }
415 
416 
makeResult()417       private WildcardImpl makeResult() {
418         if(modeValue==null) modeValue="strict";
419 
420         int mode=-1;
421         if(modeValue.equals("strict"))      mode = XSWildcard.STRTICT;
422         if(modeValue.equals("lax"))         mode = XSWildcard.LAX;
423         if(modeValue.equals("skip"))        mode = XSWildcard.SKIP;
424         if(mode==-1)        throw new InternalError();
425 
426         if(ns==null || ns.equals("##any"))
427             return new WildcardImpl.Any( $runtime.document, annotation,locator,fa,mode);
428 
429         if(ns.equals("##other"))
430             return new WildcardImpl.Other( $runtime.document,
431                 annotation,locator,fa,
432                 $runtime.currentSchema.getTargetNamespace(),mode);
433 
434         StringTokenizer tokens = new StringTokenizer(ns);
435         HashSet s = new HashSet();
436         while(tokens.hasMoreTokens()) {
437             String ns = tokens.nextToken();
438             if(ns.equals("##local")) ns="";
439             if(ns.equals("##targetNamespace")) ns=$runtime.currentSchema.getTargetNamespace();
440             s.add(ns);
441         }
442 
443         return new WildcardImpl.Finite( $runtime.document, annotation,locator,fa,s,mode);
444       }
445 
446 }
447