Top Description Fields Constructors Methods
com.sun.tools.xjc.runtime

public Class JAXBContextFactory

extends Object
Class Inheritance
Imports
java.util.ArrayList, .List, .Map, .StringTokenizer, jakarta.xml.bind.JAXBContext, .JAXBException

This class implements the actual logic of JAXBContext#newInstance.

This class works as a facade and all the actual work is delegated to a JAXB provider that happens to be in the runtime (not necessarily the JAXB RI.) This allows the generated code to be run with any JAXB provider.

This code is only used when XJC generates interfaces/implementations.

The trick to make this work is two ObjectFactory classes that we generate in the interface/implementation mode.

The public ObjectFactory follows the spec, and this is the one that's exposed to users. The public ObjectFactory refers to interfaces, so they aren't directly usable by a JAXB 2.0 implementation.

The private one lives in the impl package, and this one is indistinguishable from the ObjectFactory that we generate for the value class generation mode. This private ObjectFactory refers to implementation classes, which are also indistinguishable from value classes that JAXB generates.

All in all, the private ObjectFactory plus implementation classes give a JAXB provider an illusion that they are dealing with value classes that happens to implement some interfaces.

In this way, the JAXB RI can provide the portability even for the interface/implementation generation mode.

Author
Kohsuke Kawaguchi
Since
2.0

Field Summary

Modifier and TypeField and Description
private static final String
private static final String

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public static JAXBContext
createContext(Class<?>[] classes, Map<String, ?> properties)

The JAXB API will invoke this method via reflection

public static JAXBContext
createContext(String contextPath, ClassLoader classLoader, Map<String, ?> properties)

The JAXB API will invoke this method via reflection

private static ClassLoader
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

DOT_OBJECT_FACTORYback to summary
private static final String DOT_OBJECT_FACTORY
IMPL_DOT_OBJECT_FACTORYback to summary
private static final String IMPL_DOT_OBJECT_FACTORY

Constructor Detail

JAXBContextFactoryback to summary
public JAXBContextFactory()

Method Detail

createContextback to summary
public static JAXBContext createContext(Class<?>[] classes, Map<String, ?> properties) throws JAXBException

The JAXB API will invoke this method via reflection

createContextback to summary
public static JAXBContext createContext(String contextPath, ClassLoader classLoader, Map<String, ?> properties) throws JAXBException

The JAXB API will invoke this method via reflection

getClassClassLoaderback to summary
private static ClassLoader getClassClassLoader(final Class<?> c)