/** * Return the class for a given qualified XML Schema type. If the class is a primitive the * corresponding wrapper class is returned * * @param qname The qualified name of the XML Schema type to use as a key in the lookup * @return The class associated with the specified schema type, if no corresponding match found * returns null */ public Class getJavaClass(QName qname) { if (userXMLTypes != null) { if (userXMLTypes.containsKey(qname)) { return (Class) userXMLTypes.get(qname); } } Class javaClass = (Class) XMLConversionManager.getDefaultXMLManager().getDefaultXMLTypes().get(qname); return XMLConversionManager.getObjectClass(javaClass); }
/** INTERNAL: */ public Object convertValueBasedOnSchemaType( Object value, XMLConversionManager xmlConversionManager) { Object convertedValue = value; for (int i = 0; i < schemaTypes.size(); i++) { QName nextQName = (QName) schemaTypes.get(i); try { if (nextQName != null) { Class javaClass = getType(); javaClass = getJavaClass(nextQName); convertedValue = xmlConversionManager.convertObject(value, javaClass, nextQName); break; } } catch (ConversionException ce) { if (i == (schemaTypes.size() - 1)) { throw ce; } } } return convertedValue; }