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

jakarta.xml.bind.JAXBIntrospector Maven / Gradle / Ivy

There is a newer version: 62
Show newest version
/*
 * Copyright (c) 2004, 2020 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Distribution License v. 1.0, which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

package jakarta.xml.bind;

import  javax.xml.namespace.QName;

/**
 * Provide access to Jakarta XML Binding xml binding data for a Jakarta XML Binding object.
 *
 * 

* Intially, the intent of this class is to just conceptualize how * a Jakarta XML Binding 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 Jakarta XML Binding 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 1.6, JAXB 2.0 */ public abstract class JAXBIntrospector { /** *

Return true if object represents a Jakarta XML Binding element.

*

Parameter object is a Jakarta XML Binding element for following cases: *

    *
  1. It is an instance of jakarta.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 JAXBElement. */ public abstract QName getElementName(Object jaxbElement); /** *

Get the element value of a Jakarta XML Binding element.

* *

Convenience method to abstract whether working with either * a jakarta.xml.bind.JAXBElement instance or an instance of * {@code @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