All Downloads are FREE. Search and download functionalities are using the official Maven repository.

src.javax.xml.bind.JAXBIntrospector Maven / Gradle / Ivy

/*
 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

package javax.xml.bind;
import  javax.xml.namespace.QName;

/**
 * Provide access to JAXB xml binding data for a JAXB object.
 *
 * 

* Intially, the intent of this class is to just conceptualize how * a JAXB application developer can access xml binding information, * independent if binding model is java to schema or schema to java. * Since accessing the XML element name related to a JAXB element is * a highly requested feature, demonstrate access to this * binding information. * * The factory method to get a JAXBIntrospector instance is * {@link JAXBContext#createJAXBIntrospector()}. * * @see JAXBContext#createJAXBIntrospector() * @since JAXB2.0 */ public abstract class JAXBIntrospector { /** *

Return true iff object represents a JAXB element.

*

Parameter object is a JAXB element for following cases: *

    *
  1. It is an instance of javax.xml.bind.JAXBElement.
  2. *
  3. The class of object is annotated with * @XmlRootElement. *
  4. *
* * @see #getElementName(Object) */ public abstract boolean isElement(Object object); /** *

Get xml element qname for jaxbElement.

* * @param jaxbElement is an object that {@link #isElement(Object)} returned true. * * @return xml element qname associated with jaxbElement; * null if jaxbElement is not a JAXB Element. */ public abstract QName getElementName(Object jaxbElement); /** *

Get the element value of a JAXB element.

* *

Convenience method to abstract whether working with either * a javax.xml.bind.JAXBElement instance or an instance of * @XmlRootElement annotated Java class.

* * @param jaxbElement object that #isElement(Object) returns true. * * @return The element value of the jaxbElement. */ public static Object getValue(Object jaxbElement) { if (jaxbElement instanceof JAXBElement) { return ((JAXBElement)jaxbElement).getValue(); } else { // assume that class of this instance is // annotated with @XmlRootElement. return jaxbElement; } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy