~ubuntu-branches/ubuntu/quantal/netbeans/quantal

« back to all changes in this revision

Viewing changes to xml/schema/api/src/org/netbeans/modules/xml/schema/model/impl/SchemaElementNodeVisitor.java

  • Committer: Bazaar Package Importer
  • Author(s): Marek Slama
  • Date: 2008-01-29 14:11:22 UTC
  • Revision ID: james.westby@ubuntu.com-20080129141122-fnzjbo11ntghxfu7
Tags: upstream-6.0.1
ImportĀ upstreamĀ versionĀ 6.0.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 
3
 *
 
4
 * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
 
5
 *
 
6
 * The contents of this file are subject to the terms of either the GNU
 
7
 * General Public License Version 2 only ("GPL") or the Common
 
8
 * Development and Distribution License("CDDL") (collectively, the
 
9
 * "License"). You may not use this file except in compliance with the
 
10
 * License. You can obtain a copy of the License at
 
11
 * http://www.netbeans.org/cddl-gplv2.html
 
12
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
 
13
 * specific language governing permissions and limitations under the
 
14
 * License.  When distributing the software, include this License Header
 
15
 * Notice in each file and include the License file at
 
16
 * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
 
17
 * particular file as subject to the "Classpath" exception as provided
 
18
 * by Sun in the GPL Version 2 section of the License file that
 
19
 * accompanied this code. If applicable, add the following below the
 
20
 * License Header, with the fields enclosed by brackets [] replaced by
 
21
 * your own identifying information:
 
22
 * "Portions Copyrighted [year] [name of copyright owner]"
 
23
 *
 
24
 * Contributor(s):
 
25
 *
 
26
 * The Original Software is NetBeans. The Initial Developer of the Original
 
27
 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
 
28
 * Microsystems, Inc. All Rights Reserved.
 
29
 *
 
30
 * If you wish your version of this file to be governed by only the CDDL
 
31
 * or only the GPL Version 2, indicate your decision by adding
 
32
 * "[Contributor] elects to include this software in this distribution
 
33
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
 
34
 * single choice of license, a recipient has the option to distribute
 
35
 * your version of this file under either the CDDL, the GPL Version 2 or
 
36
 * to extend the choice of license to its licensees as provided above.
 
37
 * However, if you add GPL Version 2 code and therefore, elected the GPL
 
38
 * Version 2 license, then the option applies only if the new code is
 
39
 * made subject to such option by the copyright holder.
 
40
 */
 
41
 
 
42
package org.netbeans.modules.xml.schema.model.impl;
 
43
import java.util.Collection;
 
44
import org.netbeans.modules.xml.schema.model.*;
 
45
import org.netbeans.modules.xml.schema.model.Attribute.Use;
 
46
import org.netbeans.modules.xml.schema.model.visitor.SchemaVisitor;
 
47
import org.netbeans.modules.xml.xam.dom.NamedComponentReference;
 
48
import org.w3c.dom.Node;
 
49
 
 
50
/**
 
51
 * This class provides the algorithm to determine what classes to create
 
52
 * based on the current node context.
 
53
 * @author Chris Webster
 
54
 */
 
55
class SchemaElementNodeVisitor implements SchemaVisitor {
 
56
    
 
57
    /**
 
58
     * This method determines the incoming component and creates the appropriate
 
59
     * subcomponent.
 
60
     * 
 
61
     * @return SchemaComponent for the specified element or null if the
 
62
     * element is not recognized as a type specified in schema.
 
63
     */
 
64
    public SchemaComponent createSubComponent(
 
65
        SchemaComponent parent,
 
66
        org.w3c.dom.Element e,
 
67
        SchemaModelImpl model) {
 
68
        assert model != null;
 
69
        this.e = e;
 
70
        setNewComponent(null);
 
71
        this.model = model;
 
72
        if (parent == null) {
 
73
            if (SchemaElements.SCHEMA.getName().equals(e.getLocalName())) {
 
74
                setNewComponent(new SchemaImpl(model,e));
 
75
            }
 
76
        } else {
 
77
            if (SchemaElements.ANNOTATION.getName().equals(e.getLocalName())) {
 
78
                setNewComponent(new AnnotationImpl(model,e));
 
79
            } else {
 
80
                parent.accept(this);
 
81
            }
 
82
        }
 
83
        return newCommonSchemaComponent;
 
84
    }
 
85
    
 
86
    public void visit(SimpleTypeRestriction str) {
 
87
        allSimpleRestriction();
 
88
    }
 
89
    
 
90
    public void visit(GlobalAttributeGroup gag) {
 
91
        recognizeAttributes();
 
92
    }
 
93
    
 
94
    public void visit(MinLength ml) {
 
95
        // only annotation
 
96
    }
 
97
    
 
98
    public void visit(AnyAttribute anyAttr) {
 
99
        // only child is annotation
 
100
    }
 
101
    
 
102
    public void visit(AttributeGroupReference agr) {
 
103
        // only child is annotation
 
104
    }
 
105
    
 
106
    public void visit(SimpleContentRestriction scr) {
 
107
        allSimpleRestriction();
 
108
        recognizeAttributes();
 
109
    }
 
110
    
 
111
    public void visit(LocalSimpleType type) {
 
112
        allSimpleType();
 
113
    }
 
114
    
 
115
    public void visit(MaxInclusive mi) {
 
116
        // only annotation
 
117
    }
 
118
    
 
119
    public void visit(Documentation d) {
 
120
        // any content
 
121
    }
 
122
 
 
123
    public void visit(AppInfo d) {
 
124
        // any content
 
125
    }
 
126
    
 
127
    public void visit(Notation d) {
 
128
        // only annotation
 
129
    }
 
130
    
 
131
    public void visit(ComplexExtension ce) {
 
132
        recognizeGroupAllChoiceSequence();
 
133
        recognizeAttributes();
 
134
    }
 
135
    
 
136
    public void visit(Field f) {
 
137
        // only annotation
 
138
    }
 
139
    
 
140
    public void visit(Schema s) {
 
141
        if (SchemaElements.INCLUDE.getName().equals(e.getLocalName())) {
 
142
            setNewComponent(new IncludeImpl(model,e));
 
143
            
 
144
        } else if (SchemaElements.IMPORT.getName().equals(e.getLocalName())) {
 
145
            setNewComponent(new ImportImpl(model,e));
 
146
            
 
147
        } else if (SchemaElements.REDEFINE.getName().equals(e.getLocalName())) {
 
148
            setNewComponent(new RedefineImpl(model,e));
 
149
            
 
150
        } else if (SchemaElements.SIMPLE_TYPE.getName().equals(
 
151
            e.getLocalName())) {
 
152
            setNewComponent(new GlobalSimpleTypeImpl(model,e));
 
153
            
 
154
        } else if (SchemaElements.COMPLEX_TYPE.getName().equals(
 
155
            e.getLocalName())) {
 
156
            setNewComponent(new GlobalComplexTypeImpl(model,e));
 
157
            
 
158
        } else if (SchemaElements.GROUP.getName().equals(e.getLocalName())) {
 
159
            setNewComponent(new GlobalGroupImpl(model,e));
 
160
            
 
161
        } else if (SchemaElements.ATTRIBUTE_GROUP.getName().equals(
 
162
            e.getLocalName())) {
 
163
            setNewComponent(new GlobalAttributeGroupImpl(model,e));
 
164
            
 
165
        } else if (SchemaElements.ELEMENT.getName().equals(e.getLocalName())) {
 
166
            setNewComponent(new GlobalElementImpl(model,e));
 
167
            
 
168
        } else if (SchemaElements.ATTRIBUTE.getName().equals(e.getLocalName())) {
 
169
            setNewComponent(new GlobalAttributeImpl(model,e));
 
170
            
 
171
        } else if (SchemaElements.NOTATION.getName().equals(e.getLocalName())) {
 
172
            setNewComponent(new NotationImpl(model,e));
 
173
            
 
174
        }
 
175
    }
 
176
    
 
177
    public void visit(Union u) {
 
178
        if (SchemaElements.SIMPLE_TYPE.getName().equals(e.getLocalName())) {
 
179
            setNewComponent(new LocalSimpleTypeImpl(model,e));
 
180
        }
 
181
    }
 
182
    
 
183
    public void visit(MinExclusive me) {
 
184
        // only annotation
 
185
    }
 
186
    
 
187
    public void visit(Whitespace ws) {
 
188
        // only annotation
 
189
    }
 
190
    
 
191
    public void visit(MinInclusive mi) {
 
192
        // only annotation
 
193
    }
 
194
    
 
195
    public void visit(Redefine rd) {
 
196
        if (SchemaElements.SIMPLE_TYPE.getName().equals(e.getLocalName())) {
 
197
            setNewComponent(new GlobalSimpleTypeImpl(model,e));
 
198
            
 
199
        } else if (SchemaElements.COMPLEX_TYPE.getName().equals(e.getLocalName())) {
 
200
            setNewComponent(new GlobalComplexTypeImpl(model,e));
 
201
            
 
202
        } else if (SchemaElements.GROUP.getName().equals(e.getLocalName())) {
 
203
            setNewComponent(new GlobalGroupImpl(model,e));
 
204
            
 
205
        } else if (SchemaElements.ATTRIBUTE_GROUP.getName().equals(e.getLocalName())) {
 
206
            setNewComponent(new GlobalAttributeGroupImpl(model,e));
 
207
        }
 
208
    }
 
209
    
 
210
    public void visit(Choice choice) {
 
211
        allChoice();
 
212
    }
 
213
    
 
214
    public void visit(GroupReference gr) {
 
215
        // only annotation
 
216
    }
 
217
    
 
218
    public void visit(FractionDigits fd) {
 
219
        // only annotation
 
220
    }
 
221
    
 
222
    public void visit(GlobalGroup gd) {
 
223
        if (SchemaElements.ALL.getName().equals(e.getLocalName())) {
 
224
            setNewComponent(new AllImpl(model,e));
 
225
            
 
226
        } else if (SchemaElements.CHOICE.getName().equals(e.getLocalName())) {
 
227
            setNewComponent(new ChoiceImpl(model,e));
 
228
            
 
229
        } else if (SchemaElements.SEQUENCE.getName().equals(e.getLocalName())) {
 
230
            setNewComponent(new SequenceImpl(model,e));
 
231
        }
 
232
    }
 
233
    
 
234
    public void visit(GlobalElement ge) {
 
235
        allElement();
 
236
    }
 
237
    
 
238
    public void visit(All all) {
 
239
        allCreation();
 
240
    }
 
241
    
 
242
    public void visit(ComplexContent cc) {
 
243
        if (SchemaElements.RESTRICTION.getName().equals(e.getLocalName())) {
 
244
            setNewComponent(new ComplexContentRestrictionImpl(model,e));
 
245
            
 
246
        } else if (SchemaElements.EXTENSION.getName().equals(e.getLocalName())) {
 
247
            setNewComponent(new ComplexExtensionImpl(model,e));
 
248
        }
 
249
        
 
250
    }
 
251
    
 
252
    public void visit(LocalComplexType type) {
 
253
        allComplexType();
 
254
    }
 
255
    
 
256
    public void visit(MaxExclusive me) {
 
257
        // annotation only
 
258
    }
 
259
    
 
260
    public void visit(Include include) {
 
261
        // only annotation
 
262
    }
 
263
    
 
264
    public void visit(ComplexContentRestriction ccr) {
 
265
        recognizeGroupAllChoiceSequence();
 
266
        recognizeAttributes();
 
267
    }
 
268
    
 
269
    public void visit(GlobalComplexType gct) {
 
270
        allComplexType();
 
271
    }
 
272
    
 
273
    public void visit(GlobalAttribute ga) {
 
274
        recognizeInlineSimpleType();
 
275
    }
 
276
    
 
277
    public void visit(Annotation ann) {
 
278
        // TODO add appinfo
 
279
        if (SchemaElements.DOCUMENTATION.getName().equals(e.getLocalName())) {
 
280
            setNewComponent(new DocumentationImpl(model,e));
 
281
        } else if (SchemaElements.APPINFO.getName().equals(e.getLocalName())) {
 
282
            setNewComponent(new AppInfoImpl(model, e));
 
283
        }
 
284
    }
 
285
    
 
286
    public void visit(SimpleContent sc) {
 
287
        if (SchemaElements.RESTRICTION.getName().equals(e.getLocalName())) {
 
288
            setNewComponent(new SimpleContentRestrictionImpl(model,e));
 
289
            
 
290
        } else if (SchemaElements.EXTENSION.getName().equals(e.getLocalName())) {
 
291
            setNewComponent(new SimpleExtensionImpl(model,e));
 
292
        }
 
293
    }
 
294
    
 
295
    public void visit(Key key) {
 
296
        recognizeSelectorAndField();
 
297
    }
 
298
    
 
299
    public void visit(KeyRef kr) {
 
300
        recognizeSelectorAndField();
 
301
    }
 
302
    
 
303
    public void visit(LocalElement le) {
 
304
        allElement();
 
305
    }
 
306
    
 
307
    public void visit(MaxLength ml) {
 
308
        // annotation only
 
309
    }
 
310
    
 
311
    public void visit(Sequence s) {
 
312
        recognizeGroupAnyChoiceSequenceElement();
 
313
    }
 
314
    
 
315
    public void visit(Pattern p) {
 
316
        // only annotation
 
317
    }
 
318
    
 
319
    public void visit(List l) {
 
320
        if (SchemaElements.SIMPLE_TYPE.getName().equals(e.getLocalName())) {
 
321
            setNewComponent(new LocalSimpleTypeImpl(model,e));
 
322
        }
 
323
    }
 
324
    
 
325
    public void visit(Import im) {
 
326
        // only annotation
 
327
    }
 
328
    
 
329
    public void visit(Enumeration e) {
 
330
        // only child is annotation
 
331
    }
 
332
    
 
333
    public void visit(AnyElement any) {
 
334
        // only child is annotation
 
335
    }
 
336
    
 
337
    public void visit(LocalAttribute la) {
 
338
        recognizeInlineSimpleType();
 
339
    }
 
340
    
 
341
    public void visit(GlobalSimpleType gst) {
 
342
        allSimpleType();
 
343
    }
 
344
    
 
345
    public void visit(TotalDigits td) {
 
346
        // annotation only
 
347
    }
 
348
    
 
349
    public void visit(Unique u) {
 
350
        recognizeSelectorAndField();
 
351
    }
 
352
    
 
353
    public void visit(Length length) {
 
354
        // annotation only
 
355
    }
 
356
    
 
357
    public void visit(Selector selector) {
 
358
        // annotation only 
 
359
    }
 
360
    
 
361
    public void visit(SimpleExtension se) {
 
362
        recognizeAttributes();
 
363
    }
 
364
    
 
365
    public void visit(ElementReference er) {
 
366
        // annotation only
 
367
    }
 
368
    
 
369
    public void visit(AttributeReference reference) {
 
370
        // annotation only
 
371
    }
 
372
    
 
373
    private void allSimpleRestriction() {
 
374
        if (SchemaElements.SIMPLE_TYPE.getName().equals(e.getLocalName())) {
 
375
            setNewComponent(new LocalSimpleTypeImpl(model,e));
 
376
            
 
377
        } else if (SchemaElements.MIN_EXCLUSIVE.getName().equals(
 
378
            e.getLocalName())) {
 
379
            setNewComponent(new MinExclusiveImpl(model,e));
 
380
            
 
381
        } else if (SchemaElements.MIN_INCLUSIVE.getName().equals(
 
382
            e.getLocalName())) {
 
383
            setNewComponent(new MinInclusiveImpl(model,e));
 
384
            
 
385
        } else if (SchemaElements.MAX_EXCLUSIVE.getName().equals(
 
386
            e.getLocalName())) {
 
387
            setNewComponent(new MaxExclusiveImpl(model,e));
 
388
            
 
389
        } else if (SchemaElements.MAX_INCLUSIVE.getName().equals(
 
390
            e.getLocalName())) {
 
391
            setNewComponent(new MaxInclusiveImpl(model,e));
 
392
            
 
393
        } else if (SchemaElements.TOTAL_DIGITS.getName().equals(
 
394
            e.getLocalName())) {
 
395
            setNewComponent(new TotalDigitsImpl(model,e));
 
396
            
 
397
        } else if (SchemaElements.FRACTION_DIGITS.getName().equals(
 
398
            e.getLocalName())) {
 
399
            setNewComponent(new FractionDigitsImpl(model,e));
 
400
            
 
401
        } else if (SchemaElements.LENGTH.getName().equals(
 
402
            e.getLocalName())) {
 
403
            setNewComponent(new LengthImpl(model,e));
 
404
            
 
405
        } else if (SchemaElements.MIN_LENGTH.getName().equals(
 
406
            e.getLocalName())) {
 
407
            setNewComponent(new MinLengthImpl(model,e));
 
408
            
 
409
        } else if (SchemaElements.MAX_LENGTH.getName().equals(
 
410
            e.getLocalName())) {
 
411
            setNewComponent(new MaxLengthImpl(model,e));
 
412
            
 
413
        } else if (SchemaElements.ENUMERATION.getName().equals(
 
414
            e.getLocalName())) {
 
415
            setNewComponent(new EnumerationImpl(model,e));
 
416
            
 
417
        } else if (SchemaElements.WHITESPACE.getName().equals(
 
418
            e.getLocalName())) {
 
419
            setNewComponent(new WhitespaceImpl(model,e));
 
420
            
 
421
        } else if (SchemaElements.PATTERN.getName().equals(e.getLocalName())) {
 
422
            setNewComponent(new PatternImpl(model,e));
 
423
        }
 
424
        
 
425
    }
 
426
    
 
427
    private void recognizeSelectorAndField() {
 
428
        if (SchemaElements.SELECTOR.getName().equals(e.getLocalName())) {
 
429
            setNewComponent(new SelectorImpl(model,e));
 
430
            
 
431
        } else if (SchemaElements.FIELD.getName().equals(e.getLocalName())) {
 
432
            setNewComponent(new FieldImpl(model,e));
 
433
        }
 
434
    }
 
435
    
 
436
    private void recognizeAttributes() {
 
437
        if (SchemaElements.ATTRIBUTE.getName().equals(e.getLocalName())) {
 
438
            if (isAttributeDefined(SchemaAttributes.REF)) {
 
439
                setNewComponent(new AttributeReferenceImpl(model,e));
 
440
            } else {
 
441
                setNewComponent(new LocalAttributeImpl(model,e));
 
442
            }
 
443
        } else if (SchemaElements.ATTRIBUTE_GROUP.getName().equals(
 
444
            e.getLocalName())) {
 
445
            setNewComponent(new AttributeGroupReferenceImpl(model,e));
 
446
        } else if (SchemaElements.ANY_ATTRIBUTE.getName().equals(
 
447
            e.getLocalName())) {
 
448
            setNewComponent(new AnyAttributeImpl(model,e));
 
449
        }
 
450
    }
 
451
    
 
452
    private void allComplexType() {
 
453
        recognizeAttributes();
 
454
        recognizeGroupAllChoiceSequence();
 
455
        if (SchemaElements.SIMPLE_CONTENT.getName().equals(e.getLocalName())) {
 
456
            setNewComponent(new SimpleContentImpl(model,e));
 
457
        } else if (SchemaElements.COMPLEX_CONTENT.getName().equals(e.getLocalName())) {
 
458
            setNewComponent(new ComplexContentImpl(model,e));
 
459
        }
 
460
    }
 
461
    
 
462
    private boolean isAttributeDefined(SchemaAttributes attribute) {
 
463
        return e.getAttribute(attribute.getName()) != null;
 
464
    }
 
465
    
 
466
    private void createLocalElement() {
 
467
        if (isAttributeDefined(SchemaAttributes.REF)) {
 
468
            setNewComponent(new ElementReferenceImpl(model,e));
 
469
        } else {
 
470
            setNewComponent(new LocalElementImpl(model,e));
 
471
        }
 
472
    }
 
473
    
 
474
    private void recognizeGroupAnyChoiceSequenceElement() {
 
475
        if (SchemaElements.ELEMENT.getName().equals(e.getLocalName())) {
 
476
            createLocalElement();
 
477
        } else {
 
478
            recognizeGroupChoiceSequenceAny();
 
479
        }
 
480
    }
 
481
    
 
482
    private void recognizeGroupAllChoiceSequence() {
 
483
        if (SchemaElements.ALL.getName().equals(e.getLocalName())) {
 
484
            setNewComponent(new AllImpl(model,e));
 
485
        } else {
 
486
            recognizeGroupChoiceSequence();
 
487
        }
 
488
    }
 
489
    
 
490
    private void allElement() {
 
491
        if (SchemaElements.SIMPLE_TYPE.getName().equals(e.getLocalName())) {
 
492
            setNewComponent(new LocalSimpleTypeImpl(model,e));
 
493
            
 
494
        } else if (SchemaElements.COMPLEX_TYPE.getName().equals(e.getLocalName())) {
 
495
            setNewComponent(new LocalComplexTypeImpl(model,e));
 
496
            
 
497
        } else if (SchemaElements.UNIQUE.getName().equals(e.getLocalName())) {
 
498
            setNewComponent(new UniqueImpl(model,e));
 
499
            
 
500
        } else if (SchemaElements.KEY.getName().equals(e.getLocalName())) {
 
501
            setNewComponent(new KeyImpl(model,e));
 
502
            
 
503
        } else if (SchemaElements.KEYREF.getName().equals(e.getLocalName())) {
 
504
            setNewComponent(new KeyRefImpl(model,e));
 
505
        }
 
506
    }
 
507
    
 
508
    private void allChoice() {
 
509
        if (SchemaElements.ELEMENT.getName().equals(e.getLocalName())) {
 
510
            createLocalElement();
 
511
        } else {
 
512
            recognizeGroupChoiceSequenceAny();
 
513
        }
 
514
    }
 
515
    
 
516
    
 
517
    
 
518
    private void recognizeGroupChoiceSequenceAny() {
 
519
        if (SchemaElements.ANY.getName().equals(e.getLocalName())) {
 
520
            setNewComponent(new AnyImpl(model,e));
 
521
        } else {
 
522
            recognizeGroupChoiceSequence();
 
523
        }
 
524
    }
 
525
    
 
526
    private void recognizeGroupChoiceSequence() {
 
527
        if (SchemaElements.GROUP.getName().equals(e.getLocalName())) {
 
528
            setNewComponent(new GroupReferenceImpl(model,e));
 
529
            
 
530
        } else if (SchemaElements.CHOICE.getName().equals(e.getLocalName())) {
 
531
            setNewComponent(new ChoiceImpl(model,e));
 
532
            
 
533
        } else if (SchemaElements.SEQUENCE.getName().equals(e.getLocalName())) {
 
534
            setNewComponent(new SequenceImpl(model,e));
 
535
            
 
536
        }
 
537
    }
 
538
    
 
539
    private void recognizeInlineSimpleType() {
 
540
        if (SchemaElements.SIMPLE_TYPE.getName().equals(e.getLocalName())) {
 
541
            setNewComponent(new LocalSimpleTypeImpl(model,e));
 
542
        }
 
543
    }
 
544
    
 
545
    private void allSimpleType() {
 
546
        if (SchemaElements.RESTRICTION.getName().equals(e.getLocalName())) {
 
547
            setNewComponent(new SimpleTypeRestrictionImpl(model,e));
 
548
            
 
549
        } else if (SchemaElements.LIST.getName().equals(e.getLocalName())) {
 
550
            setNewComponent(new ListImpl(model,e));
 
551
            
 
552
        } else  if (SchemaElements.UNION.getName().equals(e.getLocalName())) {
 
553
            setNewComponent(new UnionImpl(model,e));
 
554
            
 
555
        }
 
556
    }
 
557
    
 
558
    private void allCreation() {
 
559
        if (SchemaElements.ELEMENT.getName().equals(e.getLocalName())) {
 
560
            if (isAttributeDefined(SchemaAttributes.REF)) {
 
561
                setNewComponent(new ElementReferenceImpl(model,e));
 
562
            } else {
 
563
                setNewComponent(new LocalElementImpl(model,e));
 
564
            }
 
565
        }
 
566
    }
 
567
    
 
568
    private void setNewComponent(SchemaComponent c) {
 
569
        newCommonSchemaComponent = c;
 
570
    }
 
571
    
 
572
    private SchemaComponent newCommonSchemaComponent;
 
573
    private org.w3c.dom.Element e;
 
574
    private SchemaModelImpl model;
 
575
}