/** * Handle xml-any-element. If the property was annotated with @XmlAnyElement in code all values * will be overridden. * * @param xmlAnyElement * @param oldProperty * @param tInfo * @param javaType * @return */ private Property processXmlAnyElement( XmlAnyElement xmlAnyElement, Property oldProperty, TypeInfo tInfo, JavaType javaType) { // reset any existing values resetProperty(oldProperty, tInfo); // set xml-any-element specific properties oldProperty.setIsAny(true); oldProperty.setDomHandlerClassName(xmlAnyElement.getDomHandler()); oldProperty.setLax(xmlAnyElement.isLax()); oldProperty.setMixedContent(xmlAnyElement.isXmlMixed()); oldProperty.setXmlJavaTypeAdapter(xmlAnyElement.getXmlJavaTypeAdapter()); // update TypeInfo tInfo.setMixed(xmlAnyElement.isXmlMixed()); tInfo.setAnyElementPropertyName(oldProperty.getPropertyName()); return oldProperty; }
/** * Return all of the declared <code>JavaFields</code> for this <code>JavaClass</code>. * * @return A <code>Collection</code> containing this <code>JavaClass'</code> <code>JavaFields * </code>. */ public Collection<JavaField> getDeclaredFields() { List<JavaField> fieldsToReturn = new ArrayList<JavaField>(); if (this.enumValues != null) { for (Iterator<String> iterator = this.enumValues.iterator(); iterator.hasNext(); ) { fieldsToReturn.add(new OXMJavaFieldImpl(iterator.next(), JAVA_LANG_OBJECT, this)); } } else { JavaAttributes javaAttributes = this.javaType.getJavaAttributes(); if (null != javaAttributes) { List<JAXBElement<? extends JavaAttribute>> fields = javaAttributes.getJavaAttribute(); for (Iterator<JAXBElement<? extends JavaAttribute>> iterator = fields.iterator(); iterator.hasNext(); ) { JAXBElement<? extends JavaAttribute> jaxbElement = iterator.next(); JavaAttribute att = (JavaAttribute) jaxbElement.getValue(); if (att instanceof XmlElement) { XmlElement xme = (XmlElement) att; String fieldName = xme.getJavaAttribute(); String fieldType = xme.getType(); fieldsToReturn.add(new OXMJavaFieldImpl(fieldName, fieldType, this)); } else if (att instanceof XmlElements) { XmlElements xmes = (XmlElements) att; String fieldName = xmes.getJavaAttribute(); String fieldType = JAVA_LANG_OBJECT; fieldsToReturn.add(new OXMJavaFieldImpl(fieldName, fieldType, this)); } else if (att instanceof XmlElementRef) { XmlElementRef xmer = (XmlElementRef) att; String fieldName = xmer.getJavaAttribute(); String fieldType = xmer.getType(); fieldsToReturn.add(new OXMJavaFieldImpl(fieldName, fieldType, this)); } else if (att instanceof XmlAttribute) { XmlAttribute xma = (XmlAttribute) att; String fieldName = xma.getJavaAttribute(); String fieldType = xma.getType(); fieldsToReturn.add(new OXMJavaFieldImpl(fieldName, fieldType, this)); } else if (att instanceof XmlValue) { XmlValue xmv = (XmlValue) att; String fieldName = xmv.getJavaAttribute(); String fieldType = xmv.getType(); fieldsToReturn.add(new OXMJavaFieldImpl(fieldName, fieldType, this)); } else if (att instanceof XmlAnyElement) { XmlAnyElement xmae = (XmlAnyElement) att; String fieldName = xmae.getJavaAttribute(); String fieldType = JAVA_LANG_OBJECT; fieldsToReturn.add(new OXMJavaFieldImpl(fieldName, fieldType, this)); } else if (att instanceof XmlAnyAttribute) { XmlAnyAttribute xmaa = (XmlAnyAttribute) att; String fieldName = xmaa.getJavaAttribute(); String fieldType = JAVA_UTIL_MAP; fieldsToReturn.add(new OXMJavaFieldImpl(fieldName, fieldType, this)); } else if (att instanceof XmlJoinNodes) { XmlJoinNodes xmjn = (XmlJoinNodes) att; String fieldName = xmjn.getJavaAttribute(); String fieldType = xmjn.getType(); fieldsToReturn.add(new OXMJavaFieldImpl(fieldName, fieldType, this)); } else if (att instanceof XmlInverseReference) { XmlInverseReference xmir = (XmlInverseReference) att; String fieldName = xmir.getJavaAttribute(); String fieldType = xmir.getType(); fieldsToReturn.add(new OXMJavaFieldImpl(fieldName, fieldType, this)); } } } } return fieldsToReturn; }