2
* Copyright © 2008-2012 NetAllied Systems GmbH, Ravensburg, Germany.
4
* Licensed under the MIT Open Source License,
5
* for details please see LICENSE file or the website
6
* http://www.opensource.org/licenses/mit-license.php
8
package de.netallied.xsd2cppsax.TypeMapping;
10
import de.netallied.xsd2cppsax.Variety;
11
import de.netallied.xsd2cppsax.printers.FPrintfParserPrinter;
14
* Contains C++ types/conversions for a XSD type. XSD types may be used as
15
* attribute or as char data and they may have different varieties (
16
* {@link Variety}). Furthermore they may have simple type validation facet
17
* 'enumeration' in which case we generate an additional C++ type. All these
18
* different cases require different C++ code to be generated. This leads to a
19
* lot of code templates for each XSD type.
22
public class TypeMap {
25
* C++ type when XSD type is used as attribute with variety atomic.
27
private String attrAtomicType;
30
* C++ code to convert XSD type to C++ type when used as attribute with
33
private String attrAtomicTypeConversion;
36
* C++ code required after conversion when type is used as attribute with
39
private String attrAtomicTypePostConversion;
42
* C++ code required before conversion when type is used as attribute with
45
private String attrAtomicTypePreConversion;
48
* C++ type when XSD type is used as attribute with variety list.
50
private String attrListType;
53
* C++ code to convert XSD type to C++ type when used as attribute with
54
* variety list and list items shall be validated.
56
private String attrListTypeConversionItemValidation;
59
* C++ code to convert XSD type to C++ type when used as attribute with
60
* variety list and list items shall not be validated.
62
private String attrListTypeConversionNoItemValidation;
65
* C++ code required after conversion when type is used as attribute with
68
private String attrListTypePostConversion;
71
* C++ code required before conversion when type is used as attribute with
74
private String attrListTypePreConversion;
77
* C++ implementation of data-method when XSD type is used as char data with
80
private String dataAtomicDataMethodImpl;
83
* C++ implementation of data-method when XSD type is used as char data with
84
* variety atomic and has simple type validation facet pattern.
86
private String dataAtomicDataMethodImplFacetPattern;
89
* C++ type when XSD type is used as char data with variety atomic.
91
private String dataAtomicType;
94
* C++ code to convert XSD type to C++ type when used as char data with
97
private String dataAtomicTypeConversion;
100
* C++ code required after conversion when type is used as char data with
103
private String dataAtomicTypePostConversion;
106
* C++ code required before conversion when type is used as char data with
109
private String dataAtomicTypePreConversion;
112
* C++ implementation of generated validateEnd method when type is used as
113
* char data with variety atomic.
115
private String dataAtomicValidateEndImpl;
118
* C++ implementation of generated validateEnd method when type is used as
119
* char data with variety atomic and has simple type validation facet
122
private String dataAtomicValidateEndImplFacetPattern;
125
* C++ implementation of generated validateEnd method when type is used as
126
* char data with variety list and simple type validation shall not be used.
128
private String dataListEnd;
131
* C++ implementation of generated validateEnd method when type is used as
132
* char data with variety list and simple type validation shall be used.
134
private String dataListEndValidation;
137
* C++ type when XSD type is used as char data with variety list.
139
private String dataListType;
142
* C++ code to convert XSD type to C++ type when used as char data with
143
* variety list and simple type validation shall not be used.
145
private String dataListTypeConversion;
148
* C++ code to convert XSD type to C++ type when used as char data with
149
* variety list and simple type validation shall be used.
151
private String dataListTypeConversionValidation;
154
* C++ code to convert XSD type to C++ type when used as attribute with
155
* variety atomic and XSD type has simple type validation facet enumeration.
157
private String enumAttrAtomicTypeConversion;
160
* C++ code required after conversion when type is used as attribute with
161
* variety atomic and XSD type has simple type validation facet enumeration.
163
private String enumAttrAtomicTypePostConversion;
166
* C++ code required before conversion when type is used as attribute with
167
* variety atomic and XSD type has simple type validation facet enumeration.
169
private String enumAttrAtomicTypePreConversion;
172
* C++ code to convert XSD type to C++ type when used as char data with
173
* variety atomic and XSD type has simple type validation facet enumeration.
175
private String enumDataAtomicTypeConversion;
178
* C++ implementation of generated validateEnd method when type is used as
179
* char data with variety list and XSD type has simple type validation facet
182
private String enumDataListEnd;
185
* C++ code to convert XSD type to C++ type when used as char data with
186
* variety list and XSD type has simple type validation facet enumeration.
188
private String enumDataListTypeConversion;
191
* C++ code to initialize C++ type. Required when C++ classes are used.
193
private String initialize;
196
* C++ code required before initialization of C++ type when XSD type is used
197
* with variety atomic. Required when C++ classes are used.
199
private String initializePreAtomic;
202
* C++ code required before initialization of C++ type when XSD type is used
203
* with variety list. Required when C++ classes are used.
205
private String initializePreList;
208
* C++ code to convert C++ type to a C++ string. Used by
209
* {@link FPrintfParserPrinter}. Required when C++ classes are used.
211
private String toString;
214
* C++ type when XSD type is used as member of a XSD type with variety
217
private String unionAtomicType;
220
* C++ code to convert XSD union member type.
222
private String unionAtomicTypeConversion;
226
* C++ Type a XSD enum is based on.
233
* <simpleType name="stringEnumType">
234
* <restriction base="string">
235
* <enumeration value="bli" />
236
* <enumeration value="bla" />
237
* <enumeration value="blub" />
238
* </restriction>
239
* </simpleType>
245
* <simpleType name="floatEnumType">
246
* <restriction base="float">
247
* <enumeration value="1.1" />
248
* <enumeration value="2.2" />
249
* <enumeration value="3.3" />
250
* </restriction>
251
* </simpleType>
254
private String unionEnumBaseType;
257
* C++ code to convert XSD enum base type.
259
* @see #unionEnumBaseType
261
private String unionEnumBaseTypeConversion;
264
* Name of XSD type this object represents.
266
private String xsdType;
276
* @see #attrAtomicType
278
public String getAttrAtomicType() {
279
return attrAtomicType;
283
* @see #attrAtomicTypeConversion
285
public String getAttrAtomicTypeConversion() {
286
return attrAtomicTypeConversion;
290
* @see #attrAtomicTypePostConversion
292
public String getAttrAtomicTypePostConversion() {
293
return attrAtomicTypePostConversion;
297
* @see #attrAtomicTypePreConversion
299
public String getAttrAtomicTypePreConversion() {
300
return attrAtomicTypePreConversion;
306
public String getAttrListType() {
311
* @see #attrListTypeConversionItemValidation
313
public String getAttrListTypeConversionItemValidation() {
314
return attrListTypeConversionItemValidation;
318
* @see #attrListTypeConversionNoItemValidation
320
public String getAttrListTypeConversionNoItemValidation() {
321
return attrListTypeConversionNoItemValidation;
325
* @see #attrListTypePostConversion
327
public String getAttrListTypePostConversion() {
328
return attrListTypePostConversion;
332
* @see #attrListTypePreConversion
334
public String getAttrListTypePreConversion() {
335
return attrListTypePreConversion;
339
* @see #dataAtomicDataMethodImpl
341
public String getDataAtomicDataMethodImpl() {
342
return dataAtomicDataMethodImpl;
346
* @see #dataAtomicDataMethodImplFacetPattern
348
public String getDataAtomicDataMethodImplFacetPattern() {
349
return dataAtomicDataMethodImplFacetPattern;
353
* @see #dataAtomicType
355
public String getDataAtomicType() {
356
return dataAtomicType;
360
* @see #dataAtomicTypeConversion
362
public String getDataAtomicTypeConversion() {
363
return dataAtomicTypeConversion;
367
* @see #dataAtomicTypePostConversion
369
public String getDataAtomicTypePostConversion() {
370
return dataAtomicTypePostConversion;
374
* @see #dataAtomicTypePreConversion
376
public String getDataAtomicTypePreConversion() {
377
return dataAtomicTypePreConversion;
381
* @see #dataAtomicValidateEndImpl
383
public String getDataAtomicValidateEndImpl() {
384
return dataAtomicValidateEndImpl;
388
* @see #dataAtomicValidateEndImplFacetPattern
390
public String getDataAtomicValidateEndImplFacetPattern() {
391
return dataAtomicValidateEndImplFacetPattern;
397
public String getDataListEnd() {
402
* @see #dataListEndValidation
404
public String getDataListEndValidation() {
405
return dataListEndValidation;
411
public String getDataListType() {
416
* @see #dataListTypeConversion
418
public String getDataListTypeConversion() {
419
return dataListTypeConversion;
423
* @see #dataListTypeConversionValidation
425
public String getDataListTypeConversionValidation() {
426
return dataListTypeConversionValidation;
430
* @see #enumAttrAtomicTypeConversion
432
public String getEnumAttrAtomicTypeConversion() {
433
return enumAttrAtomicTypeConversion;
437
* @see #enumAttrAtomicTypePostConversion
439
public String getEnumAttrAtomicTypePostConversion() {
440
return enumAttrAtomicTypePostConversion;
444
* @see #enumAttrAtomicTypePreConversion
446
public String getEnumAttrAtomicTypePreConversion() {
447
return enumAttrAtomicTypePreConversion;
451
* @see #enumDataAtomicTypeConversion
453
public String getEnumDataAtomicTypeConversion() {
454
return enumDataAtomicTypeConversion;
458
* @see #enumDataListEnd
460
public String getEnumDataListEnd() {
461
return enumDataListEnd;
465
* @see #enumDataListTypeConversion
467
public String getEnumDataListTypeConversion() {
468
return enumDataListTypeConversion;
474
public String getInitialize() {
479
* @see #initializePreAtomic
481
public String getInitializePreAtomic() {
482
return initializePreAtomic;
486
* @see #initializePreList
488
public String getInitializePreList() {
489
return initializePreList;
495
public String getToString() {
500
* @see #unionAtomicType
502
public String getUnionAtomicType() {
503
return unionAtomicType;
507
* @see #unionAtomicTypeConversion
509
public String getUnionAtomicTypeConversion() {
510
return unionAtomicTypeConversion;
514
* @see #unionEnumBaseType
516
public String getUnionEnumBaseType() {
517
return unionEnumBaseType;
521
* @see #unionEnumBaseTypeConversion
523
public String getUnionEnumBaseTypeConversion() {
524
return unionEnumBaseTypeConversion;
530
public String getXsdType() {
535
* @see #attrAtomicType
537
public void setAttrAtomicType(String attrAtomicType) {
538
this.attrAtomicType = attrAtomicType;
542
* @see #attrAtomicTypeConversion
544
public void setAttrAtomicTypeConversion(String attrAtomicTypeConversion) {
545
this.attrAtomicTypeConversion = attrAtomicTypeConversion;
549
* @see #attrAtomicTypePostConversion
551
public void setAttrAtomicTypePostConversion(String attrAtomicTypePostConversion) {
552
this.attrAtomicTypePostConversion = attrAtomicTypePostConversion;
556
* @see #attrAtomicTypePreConversion
558
public void setAttrAtomicTypePreConversion(String attrAtomicTypePreConversion) {
559
this.attrAtomicTypePreConversion = attrAtomicTypePreConversion;
565
public void setAttrListType(String attrListType) {
566
this.attrListType = attrListType;
570
* @see #attrListTypeConversionItemValidation
572
public void setAttrListTypeConversionItemValidation(String attrListTypeConversionItemValidation) {
573
this.attrListTypeConversionItemValidation = attrListTypeConversionItemValidation;
577
* @see #attrListTypeConversionNoItemValidation
579
public void setAttrListTypeConversionNoItemValidation(String attrListTypeConversionNoItemValidation) {
580
this.attrListTypeConversionNoItemValidation = attrListTypeConversionNoItemValidation;
584
* @see #attrListTypePostConversion
586
public void setAttrListTypePostConversion(String attrListTypePostConversion) {
587
this.attrListTypePostConversion = attrListTypePostConversion;
591
* @see #attrListTypePreConversion
593
public void setAttrListTypePreConversion(String attrListTypePreConversion) {
594
this.attrListTypePreConversion = attrListTypePreConversion;
598
* @see #dataAtomicDataMethodImpl
600
public void setDataAtomicDataMethodImpl(String dataAtomicDataMethodImpl) {
601
this.dataAtomicDataMethodImpl = dataAtomicDataMethodImpl;
605
* @see #dataAtomicDataMethodImplFacetPattern
607
public void setDataAtomicDataMethodImplFacetPattern(String dataAtomicDataMethodImplFacetPattern) {
608
this.dataAtomicDataMethodImplFacetPattern = dataAtomicDataMethodImplFacetPattern;
612
* @see #dataAtomicType
614
public void setDataAtomicType(String dataAtomicType) {
615
this.dataAtomicType = dataAtomicType;
619
* @see #dataAtomicTypeConversion
621
public void setDataAtomicTypeConversion(String dataAtomicTypeConversion) {
622
this.dataAtomicTypeConversion = dataAtomicTypeConversion;
626
* @see #dataAtomicTypePostConversion
628
public void setDataAtomicTypePostConversion(String dataAtomicTypePostConversion) {
629
this.dataAtomicTypePostConversion = dataAtomicTypePostConversion;
633
* @see #dataAtomicTypePreConversion
635
public void setDataAtomicTypePreConversion(String dataAtomicTypePreConversion) {
636
this.dataAtomicTypePreConversion = dataAtomicTypePreConversion;
640
* @see #dataAtomicValidateEndImpl
642
public void setDataAtomicValidateEndImpl(String dataAtomicValidateEndImpl) {
643
this.dataAtomicValidateEndImpl = dataAtomicValidateEndImpl;
647
* @see #dataAtomicValidateEndImplFacetPattern
649
public void setDataAtomicValidateEndImplFacetPattern(String dataAtomicValidateEndImplFacetPattern) {
650
this.dataAtomicValidateEndImplFacetPattern = dataAtomicValidateEndImplFacetPattern;
656
public void setDataListEnd(String dataListEnd) {
657
this.dataListEnd = dataListEnd;
661
* @see #dataListEndValidation
663
public void setDataListEndValidation(String dataListEndValidation) {
664
this.dataListEndValidation = dataListEndValidation;
670
public void setDataListType(String dataListType) {
671
this.dataListType = dataListType;
675
* @see #dataListTypeConversion
677
public void setDataListTypeConversion(String dataListTypeConversion) {
678
this.dataListTypeConversion = dataListTypeConversion;
682
* @see #dataListTypeConversionValidation
684
public void setDataListTypeConversionValidation(String dataListTypeConversionValidation) {
685
this.dataListTypeConversionValidation = dataListTypeConversionValidation;
689
* @see #enumAttrAtomicTypeConversion
691
public void setEnumAttrAtomicTypeConversion(String enumAttrAtomicTypeConversion) {
692
this.enumAttrAtomicTypeConversion = enumAttrAtomicTypeConversion;
696
* @see #enumAttrAtomicTypePostConversion
698
public void setEnumAttrAtomicTypePostConversion(String enumAttrAtomicTypePostConversion) {
699
this.enumAttrAtomicTypePostConversion = enumAttrAtomicTypePostConversion;
703
* @see #enumAttrAtomicTypePreConversion
705
public void setEnumAttrAtomicTypePreConversion(String enumAttrAtomicTypePreConversion) {
706
this.enumAttrAtomicTypePreConversion = enumAttrAtomicTypePreConversion;
710
* @see #enumDataAtomicTypeConversion
712
public void setEnumDataAtomicTypeConversion(String enumDataAtomicTypeConversion) {
713
this.enumDataAtomicTypeConversion = enumDataAtomicTypeConversion;
717
* @see #enumDataListEnd
719
public void setEnumDataListEnd(String enumDataListEnd) {
720
this.enumDataListEnd = enumDataListEnd;
724
* @see #enumDataListTypeConversion
726
public void setEnumDataListTypeConversion(String enumDataListTypeConversion) {
727
this.enumDataListTypeConversion = enumDataListTypeConversion;
733
public void setInitialize(String initialize) {
734
this.initialize = initialize;
738
* @see #initializePreAtomic
740
public void setInitializePreAtomic(String initializePreAtomic) {
741
this.initializePreAtomic = initializePreAtomic;
745
* @see #initializePreList
747
public void setInitializePreList(String initializePreList) {
748
this.initializePreList = initializePreList;
754
public void setToString(String toString) {
755
this.toString = toString;
759
* @see #unionAtomicType
761
public void setUnionAtomicType(String unionAtomicType) {
762
this.unionAtomicType = unionAtomicType;
766
* @see #unionAtomicTypeConversion
768
public void setUnionAtomicTypeConversion(String unionAtomicTypeConversion) {
769
this.unionAtomicTypeConversion = unionAtomicTypeConversion;
773
* @see #unionEnumBaseType
775
public void setUnionEnumBaseType(String unionEnumBaseType) {
776
this.unionEnumBaseType = unionEnumBaseType;
780
* @see #unionEnumBaseTypeConversion
782
public void setUnionEnumBaseTypeConversion(String unionEnumBaseTypeConversion) {
783
this.unionEnumBaseTypeConversion = unionEnumBaseTypeConversion;
789
public void setXsdType(String xsdType) {
790
this.xsdType = xsdType;