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