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.castor.xml.schema.Facet;
17 import org.exolab.javasource.JClass;
18 import org.exolab.javasource.JSourceCode;
19 import org.exolab.javasource.JType;
20
21
22
23
24
25
26
27
28 public final class XSString extends AbstractLengthFacet {
29
30
31
32 public static final String NAME = "string";
33
34
35 public static final short TYPE = XSType.STRING_TYPE;
36
37
38 private static final JType JTYPE = new JClass("java.lang.String");
39
40
41
42
43
44
45 public XSString() {
46 super(false);
47
48 setWhiteSpace(Facet.WHITESPACE_PRESERVE);
49 }
50
51
52
53
54
55
56 public String getName() {
57 return NAME;
58 }
59
60
61
62
63 public short getType() {
64 return TYPE;
65 }
66
67
68
69
70 public boolean isPrimitive() {
71 return false;
72 }
73
74
75
76
77 public boolean isDateTime() {
78 return false;
79 }
80
81
82
83
84 public JType getJType() {
85 return JTYPE;
86 }
87
88
89
90
91 public String newInstanceCode() {
92 return "new java.lang.String();";
93 }
94
95
96
97
98 public String createToJavaObjectCode(final String variableName) {
99 return variableName;
100 }
101
102
103
104
105 public String createFromJavaObjectCode(final String variableName) {
106 return "(java.lang.String) " + variableName;
107 }
108
109
110
111
112
113
114 public void validationCode(final JSourceCode jsc, final String fixedValue,
115 final String validatorInstanceName) {
116 jsc.add("org.exolab.castor.xml.validators.StringValidator typeValidator;\n"
117 + "typeValidator = new org.exolab.castor.xml.validators.StringValidator();\n"
118 + "{0}.setValidator(typeValidator);", validatorInstanceName);
119
120 if (fixedValue != null) {
121 jsc.add("typeValidator.setFixed(" + fixedValue + ");");
122 }
123
124 codePatternFacet(jsc, "typeValidator");
125 codeWhiteSpaceFacet(jsc, "typeValidator");
126 codeLengthFacet(jsc, "typeValidator");
127 }
128
129
130 }