1313
1414class JSJAXBClass {
1515
16- // C$.__ANN__ = [
17- // [null,'XmlRootElement','@XmlRootElement(name="RootOrdered",namespace="www.jalview.org")']
18- // ,[null,'XmlAccessorType','@XmlAccessorType(XmlAccessType.FIELD)']
19- // ,[null,'XmlType','@XmlType(propOrder={"c","b","a"})']
20- // ];
21-
22- final static int TYPE_PUBLIC_MEMBER = 0 ;
16+ // C$.__ANN__ = [[[null,'test.jaxb.Root_ORDERED.SomewhatComplex'],['@XmlAccessorType(XmlAccessType.FIELD)','@XmlType(name="MoreComplex",namespace="st.Olaf")']],
17+ // [['id','String'],['@XmlID','@XmlElement']],
18+ // [['ca','String'],['@XmlElement']],
19+ // [['cb','String'],['@XmlAttribute(namespace="www.jalview.org2")']],
20+ // [['bytes','byte[]'],['@XmlAttribute']]];
21+ // })()
22+
23+ final static int TYPE_NONE = 0 ;
2324 final static int TYPE_FIELD = 1 ;
24- final static int TYPE_PROPERTY = 2 ;
25+ final static int TYPE_PUBLIC_MEMBER = 2 ;
26+ final static int TYPE_PROPERTY = 3 ;
2527
28+ /**
29+ * this class's accessorType, which is not implemented yet. We need explicit
30+ * propOrder or XmlAttribute or XmlElement.
31+ */
2632 int accessorType = TYPE_PUBLIC_MEMBER ;
2733
34+ QName qname = new QName ("" , "##default" , "" );
35+ QName qualifiedTypeName ;
36+
37+ /**
38+ * for the root, null, but for fields that need unmarshalling, the field that
39+ * is being filled by this unmarshalling
40+ */
41+ JSJAXBField tagField ;
42+
43+ /**
44+ * from XmlType(name=""), but not used
45+ */
46+ boolean isAnonymous ;
47+
48+ /**
49+ * XmlIDREF
50+ */
51+ boolean isXmlIDREF ;
52+ JSJAXBField xmlIDField ;
53+
54+ boolean isEnum ;
55+
2856 List <String > propOrder = new ArrayList <String >();
2957 List <JSJAXBField > fields = new ArrayList <JSJAXBField >();
30- QName qname = new QName ( "" , "" , "" );
58+
3159 private Map <String , JSJAXBField > fieldMap = new Hashtable <String , JSJAXBField >();
3260
33- boolean isAnonymous ;
34- boolean isXmlIDREF ;
35-
36- JSJAXBField field ;
37- QName qualifiedTypeName ;
61+ /**
62+ * holds the enum name/value pairs for marshaller and unmarshaller
63+ */
64+ Map < Object , Object > enumMap ;
65+ String enumClassType ;
3866
39- JSJAXBField xmlValueField , xmlIDField ;
67+ JSJAXBField xmlValueField ;
68+ private String defaultNamespace ;
69+ private String [] seeAlso ;
70+ final Map <String , JSJAXBField > bindingMap = new Hashtable <String , JSJAXBField >();
4071
72+ final static Map <String , JSJAXBField > seeAlsoMap = new Hashtable <String , JSJAXBField >();
73+ final static Map <String , Boolean > classMap = new Hashtable <String , Boolean >();
74+ private final static Map <String , JSJAXBClass > knownClasses = new Hashtable <>();
75+ private static final Map <String , String > marshallerNamespacePrefixes = new Hashtable <String , String >();
76+ private final static Map <String , XmlAdapter > adapterMap = new HashMap <String , XmlAdapter >();
77+
78+ static void clearStatics () {
79+ seeAlsoMap .clear ();
80+ classMap .clear ();
81+ knownClasses .clear ();
82+ marshallerNamespacePrefixes .clear ();
83+ adapterMap .clear ();
84+ }
85+
86+ private static int prefixIndex = 1 ;
87+
88+
4189
4290 JSJAXBClass (Class <?> javaClass , Object javaObject , boolean isXmlIDREF ) {
4391 checkC$__ANN__ (this , javaClass , javaObject , isXmlIDREF );
@@ -116,25 +164,6 @@ static String getXmlNameFromClassName(String className) {
116164 return className ;
117165 }
118166
119- // private static boolean hasNull(Object[] list) {
120- // for (int i = list.length; --i >= 0;)
121- // if (list[i] == null)
122- // return true;
123- // return false;
124- // }
125- //
126- // private static boolean hasNull(List<?> list) {
127- // for (int i = list.size(); --i >= 0;)
128- // if (list.get(i) == null)
129- // return true;
130- // return false;
131- // }
132- //
133- String defaultNamespace ;
134- private String [] seeAlso ;
135- final Map <String , JSJAXBField > bindingMap = new Hashtable <String , JSJAXBField >();
136- final static Map <String , JSJAXBField > seeAlsoMap = new Hashtable <String , JSJAXBField >();
137-
138167 void prepareForUnmarshalling (String defaultNamespace ) {
139168 this .defaultNamespace = defaultNamespace ;
140169 if (seeAlso != null ) {
@@ -144,7 +173,7 @@ void prepareForUnmarshalling(String defaultNamespace) {
144173 addSeeAlso (cl );
145174 System .out .println ("JSJAXBClass seeAlso: " + seeAlso [i ]);
146175 } catch (ClassNotFoundException e ) {
147- System .out .println ("JSJAXBClass[" + i + "] not found: " + seeAlso [i ]);
176+ System .out .println ("JSJAXBClass seeAlso [" + i + "] not found: " + seeAlso [i ]);
148177 }
149178 }
150179 }
@@ -205,7 +234,6 @@ public boolean mustUnmarshal(JSJAXBField field) {
205234 return isMarshallable (field );
206235 }
207236
208- final static Map <String , Boolean > classMap = new Hashtable <String , Boolean >();
209237
210238 static boolean isMarshallable (JSJAXBField field ) {
211239 boolean isMarshallable = false ;
@@ -223,8 +251,6 @@ static boolean isMarshallable(JSJAXBField field) {
223251 return isMarshallable ;
224252 }
225253
226- static Map <String , JSJAXBClass > knownClasses = new Hashtable <>();
227-
228254 static JSJAXBClass newUnmarshalledInstance (Class <?> javaClass , Object javaObject ) {
229255 String name = javaClass .getCanonicalName ();
230256 JSJAXBClass jjc = knownClasses .get (name );
@@ -251,9 +277,6 @@ static boolean needsMarshalling(Object value) {
251277 false );
252278 }
253279
254- private static final Map <String , String > marshallerNamespacePrefixes = new Hashtable <String , String >();
255- private static int prefixIndex = 1 ;
256-
257280 /**
258281 * Prepend @Xml......: to the tag name to avoid internal collision when
259282 * combining all annotations into one.
@@ -268,8 +291,6 @@ static String getNamespacePrefix(String namespace) {
268291 return prefix ;
269292 }
270293
271- private final static Map <String , XmlAdapter > adapterMap = new HashMap <String , XmlAdapter >();
272-
273294 static XmlAdapter getAdapter (String adapterClass ) {
274295 XmlAdapter adapter = adapterMap .get (adapterClass );
275296 if (adapter == null && !adapterMap .containsKey (adapterClass )) {
@@ -278,4 +299,16 @@ static XmlAdapter getAdapter(String adapterClass) {
278299 return adapter ;
279300 }
280301
302+ public Object setEnumValue (Class <?> javaClass , String name ) {
303+ name = ((JSJAXBField ) enumMap .get (name )).javaName ;
304+ Object o = null ;
305+ /**
306+ * @j2sNative
307+ *
308+ * o = Enum.valueOf$Class$S(javaClass, name);
309+ */
310+ return o ;
311+ }
312+
313+
281314}
0 commit comments