1
2
3
4
5
6
7
8
9
10
11
12
13
14 package org.exolab.castor.builder.types;
15
16 import org.exolab.javasource.JClass;
17 import org.exolab.javasource.JSourceCode;
18 import org.exolab.javasource.JType;
19
20
21
22
23
24
25
26
27 public final class XSBoolean extends AbstractWhiteSpaceFacet {
28
29
30
31 public static final String NAME = "boolean";
32
33
34 public static final short TYPE = XSType.BOOLEAN_TYPE;
35
36
37
38
39 private final JType _jType;
40
41
42 private final boolean _asWrapper;
43
44
45
46
47
48
49 public XSBoolean() {
50 this(false);
51 }
52
53
54
55
56
57
58 public XSBoolean(final boolean asWrapper) {
59 super();
60
61 _asWrapper = asWrapper;
62 if (_asWrapper) {
63 _jType = new JClass("java.lang.Boolean");
64 } else {
65 _jType = JType.BOOLEAN;
66 }
67 }
68
69
70
71
72
73
74 public String getName() {
75 return NAME;
76 }
77
78
79
80
81 public short getType() {
82 return TYPE;
83 }
84
85
86
87
88 public boolean isPrimitive() {
89 return true;
90 }
91
92
93
94
95 public boolean isDateTime() {
96 return false;
97 }
98
99
100
101
102 public JType getJType() {
103 return _jType;
104 }
105
106
107
108
109 public String newInstanceCode() {
110 return "new java.lang.Boolean(false);";
111 }
112
113
114
115
116 public String createDefaultValueWithString(final String variableName) {
117 if (_asWrapper) {
118 return "new java.lang.Boolean(" + variableName + ").booleanValue()";
119 }
120 return "new java.lang.Boolean(" + variableName + ").booleanValue()";
121 }
122
123
124
125
126 public String createToJavaObjectCode(final String variableName) {
127 if (_asWrapper) {
128 return variableName;
129 }
130 return "(" + variableName + " ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE)";
131 }
132
133
134
135
136 public String createFromJavaObjectCode(final String variableName) {
137 if (_asWrapper) {
138 return "((java.lang.Boolean) " + variableName + ")";
139 }
140 return "((java.lang.Boolean) " + variableName + ").booleanValue()";
141 }
142
143
144
145
146
147
148 public void validationCode(final JSourceCode jsc, final String fixedValue,
149 final String validatorInstanceName) {
150 jsc.add("org.exolab.castor.xml.validators.BooleanValidator typeValidator;\n"
151 + "typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();\n"
152 + "{0}.setValidator(typeValidator);", validatorInstanceName);
153
154 if (fixedValue != null) {
155 jsc.add("typeValidator.setFixed(" + fixedValue + ");");
156 }
157
158 codePatternFacet(jsc, "typeValidator");
159 codeWhiteSpaceFacet(jsc, "typeValidator");
160 }
161
162
163 }