/** * @since EclipseLink 2.6.0 * @param schemaType The type you want to find a corresponding Java class for. * @return the Java class for the XML schema type. */ @Override public Class<?> javaType(QName schemaType) { return (Class<?>) getDefaultXMLTypes().get(schemaType); }
/** * @since EclipseLink 2.6.0 * @param schemaType The type you want to find a corresponding Java class for. * @return the Java class for the XML schema type. */ @Override public Class<?> javaType(QName schemaType) { return (Class<?>) getDefaultXMLTypes().get(schemaType); }
/** * Return the class for a given qualified XML Schema type * @param qname The qualified name of the XML Schema type to use as a key in the lookup * @return The class corresponding to the specified schema type, if no corresponding match found returns null */ public Class getJavaClass(QName qname) { if (userXMLTypes != null) { Class theClass = (Class)userXMLTypes.get(qname); if(theClass != null){ return theClass; } } return (Class)XMLConversionManager.getDefaultXMLTypes().get(qname); }
/** * 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) { Class theClass = (Class) userXMLTypes.get(qname); if(theClass != null){ return theClass; } } Class javaClass = (Class) XMLConversionManager.getDefaultXMLTypes().get(qname); return XMLConversionManager.getObjectClass(javaClass); } /**
/** * Ensures that XSD dateTimes will always be unmarshalled as XMLGregorianCalendars, and never * as GregorianCalendars. CALENDAR entries are removed from the default XMLConversionManager, * and replaced with XML_GREGORIAN_CALENDAR. */ private static void fixDateTimeConversion(DynamicJAXBContext ctx) { XMLConversionManager conversionManager = (XMLConversionManager) ctx.getXMLContext().getSession().getDatasourcePlatform().getConversionManager(); Map defaultXmlTypes = conversionManager.getDefaultXMLTypes(); defaultXmlTypes.remove(Constants.DATE_TIME_QNAME); defaultXmlTypes.put(Constants.DATE_TIME_QNAME, CoreClassConstants.XML_GREGORIAN_CALENDAR); Map defaultJavaTypes = conversionManager.getDefaultJavaTypes(); defaultJavaTypes.remove(CoreClassConstants.CALENDAR); defaultJavaTypes.put(CoreClassConstants.XML_GREGORIAN_CALENDAR, Constants.DATE_TIME_QNAME); }
/** * Ensures that XSD dateTimes will always be unmarshalled as XMLGregorianCalendars, and never * as GregorianCalendars. CALENDAR entries are removed from the default XMLConversionManager, * and replaced with XML_GREGORIAN_CALENDAR. */ private static void fixDateTimeConversion(DynamicJAXBContext ctx) { XMLConversionManager conversionManager = (XMLConversionManager) ctx.getXMLContext().getSession().getDatasourcePlatform().getConversionManager(); Map defaultXmlTypes = conversionManager.getDefaultXMLTypes(); defaultXmlTypes.remove(Constants.DATE_TIME_QNAME); defaultXmlTypes.put(Constants.DATE_TIME_QNAME, CoreClassConstants.XML_GREGORIAN_CALENDAR); Map defaultJavaTypes = conversionManager.getDefaultJavaTypes(); defaultJavaTypes.remove(CoreClassConstants.CALENDAR); defaultJavaTypes.put(CoreClassConstants.XML_GREGORIAN_CALENDAR, Constants.DATE_TIME_QNAME); }
private Object convertToSimpleTypeIfPresent(Object toReturn, XMLRecord nestedRow, AbstractSession executionSession){ Node textchild = ((Element) nestedRow.getDOM()).getFirstChild(); String stringValue = null; if ((textchild != null) && (textchild.getNodeType() == Node.TEXT_NODE)) { stringValue = ((Text) textchild).getNodeValue(); if(stringValue != null && getKeepAsElementPolicy() != UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT && getKeepAsElementPolicy()!=UnmarshalKeepAsElementPolicy.KEEP_ALL_AS_ELEMENT){ toReturn = stringValue; } } if ((stringValue == null) || stringValue.length() == 0) { return toReturn; } String type = ((Element) nestedRow.getDOM()).getAttributeNS(XMLConstants.SCHEMA_INSTANCE_URL, XMLConstants.SCHEMA_TYPE_ATTRIBUTE); if ((null != type) && type.length() > 0) { XPathFragment typeFragment = new XPathFragment(type); String namespaceURI = nestedRow.resolveNamespacePrefix(typeFragment.getPrefix()); QName schemaTypeQName = new QName(namespaceURI, typeFragment.getLocalName()); Class theClass = (Class) XMLConversionManager.getDefaultXMLTypes().get(schemaTypeQName); if (theClass != null) { toReturn = ((XMLConversionManager) executionSession.getDatasourcePlatform().getConversionManager()).convertObject(stringValue, theClass, schemaTypeQName); } } return toReturn; }
private Object convertToSimpleTypeIfPresent(Object objectToAdd, AbstractRecord nestedRow, AbstractSession executionSession){ String stringValue = null; Element theElement = ((Element) ((DOMRecord)nestedRow).getDOM()); Node textchild = theElement.getFirstChild(); if ((textchild != null) && (textchild.getNodeType() == Node.TEXT_NODE)) { stringValue = ((Text) textchild).getNodeValue(); if(stringValue != null && getKeepAsElementPolicy() != UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT && getKeepAsElementPolicy()!=UnmarshalKeepAsElementPolicy.KEEP_ALL_AS_ELEMENT){ objectToAdd = stringValue; } } if ((stringValue == null) || stringValue.length() == 0 ) { return objectToAdd; } String type = theElement.getAttributeNS(XMLConstants.SCHEMA_INSTANCE_URL, XMLConstants.SCHEMA_TYPE_ATTRIBUTE); if ((null != type) && type.length() > 0) { XPathFragment typeFragment = new XPathFragment(type); String namespaceURI = ((DOMRecord)nestedRow).resolveNamespacePrefix(typeFragment.getPrefix()); typeFragment.setNamespaceURI(namespaceURI); QName schemaTypeQName = new QName(namespaceURI, typeFragment.getLocalName()); Class theClass = (Class) XMLConversionManager.getDefaultXMLTypes().get(schemaTypeQName); if (theClass != null) { objectToAdd = ((XMLConversionManager) executionSession.getDatasourcePlatform().getConversionManager()).convertObject(stringValue, theClass, schemaTypeQName); } } return objectToAdd; }
if(returnDescriptor == null){ if(policy ==null || (policy != null && policy != UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT && policy != UnmarshalKeepAsElementPolicy.KEEP_ALL_AS_ELEMENT)){ Class theClass = (Class)((XMLConversionManager) unmarshalRecord.getSession().getDatasourcePlatform().getConversionManager()).getDefaultXMLTypes().get(qname); if(theClass == null){ throw XMLMarshalException.noDescriptorFound(mapping);
protected void endElementProcessText(UnmarshalRecord unmarshalRecord, Converter converter, XPathFragment xPathFragment, Object collection) { Object value = unmarshalRecord.getStringBuffer().toString(); if(converter != null) { if(converter instanceof XMLConverter){ value = ((XMLConverter)converter).convertDataValueToObjectValue(value, unmarshalRecord.getSession(), unmarshalRecord.getUnmarshaller()); }else{ value = converter.convertDataValueToObjectValue(value, unmarshalRecord.getSession()); } } unmarshalRecord.resetStringBuffer(); if (!XMLConstants.EMPTY_STRING.equals(value)) { QName qname = unmarshalRecord.getTypeQName(); if (qname != null) { Class theClass = (Class) XMLConversionManager.getDefaultXMLTypes().get(qname); if (theClass != null) { value = ((XMLConversionManager) unmarshalRecord.getSession().getDatasourcePlatform().getConversionManager()).convertObject(value, theClass, qname); } } setOrAddAttributeValue(unmarshalRecord, value, xPathFragment, collection); } }
Object convertedValue = stringValue; if (schemaTypeQName != null) { Class theClass = (Class) XMLConversionManager.getDefaultXMLTypes().get(schemaTypeQName); if (theClass != null) { convertedValue = ((XMLConversionManager) session.getDatasourcePlatform().getConversionManager()).convertObject(convertedValue, theClass, schemaTypeQName);
if ((((keepAsElementPolicy == UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT) || (keepAsElementPolicy == UnmarshalKeepAsElementPolicy.KEEP_ALL_AS_ELEMENT)))&& (builder.getNodes().size() != 0) ) { if(unmarshalRecord.getTypeQName() != null){ Class theClass = (Class)((XMLConversionManager) unmarshalRecord.getSession().getDatasourcePlatform().getConversionManager()).getDefaultXMLTypes().get(unmarshalRecord.getTypeQName()); if(theClass != null){ Class theClass = (Class) XMLConversionManager.getDefaultXMLTypes().get(qName); if (theClass != null) { value = ((XMLConversionManager) unmarshalRecord.getSession().getDatasourcePlatform().getConversionManager()).convertObject(element.getTextContent(), theClass, qName);
Object convertedValue = stringValue; if (schemaTypeQName != null) { Class theClass = (Class) XMLConversionManager.getDefaultXMLTypes().get(schemaTypeQName); if (theClass != null) { convertedValue = ((XMLConversionManager) session.getDatasourcePlatform().getConversionManager()).convertObject(convertedValue, theClass, schemaTypeQName);
if (((xmlDescriptor == null) && (policy == UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT)) || (policy == UnmarshalKeepAsElementPolicy.KEEP_ALL_AS_ELEMENT)) { if(unmarshalRecord.getTypeQName() != null){ Class theClass = (Class)((XMLConversionManager) unmarshalRecord.getSession().getDatasourcePlatform().getConversionManager()).getDefaultXMLTypes().get(unmarshalRecord.getTypeQName()); if(theClass == null){ setupHandlerForKeepAsElementPolicy(unmarshalRecord, xPathFragment, atts);
if(xmlDescriptor == null) { primitiveWrapperClass = (Class)XMLConversionManager.getDefaultXMLTypes().get(new QName(typeFragment.getNamespaceURI(), typeFragment.getLocalName()));
if (((xmlDescriptor == null) && (policy == UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT)) || (policy == UnmarshalKeepAsElementPolicy.KEEP_ALL_AS_ELEMENT)) { if(unmarshalRecord.getTypeQName() != null){ Class theClass = (Class)((XMLConversionManager) unmarshalRecord.getSession().getDatasourcePlatform().getConversionManager()).getDefaultXMLTypes().get(unmarshalRecord.getTypeQName()); if(theClass == null){ setupHandlerForKeepAsElementPolicy(unmarshalRecord, xPathFragment, atts);
Class theClass = (Class)((XMLConversionManager) unmarshalRecord.getSession().getDatasourcePlatform().getConversionManager()).getDefaultXMLTypes().get(unmarshalRecord.getTypeQName()); if(theClass != null){
Class theClass = (Class)((XMLConversionManager) unmarshalRecord.getSession().getDatasourcePlatform().getConversionManager()).getDefaultXMLTypes().get(unmarshalRecord.getTypeQName()); if(theClass != null){