4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk//
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v1.0.6-b27-fcs
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk// Any modifications to this file will be lost upon recompilation of the source schema.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk// Generated on: 2012.06.11 at 10:33:54 AM PDT
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk//
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkpackage com.sun.identity.federation.jaxb.entityconfig.impl.runtime;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport javax.xml.bind.DatatypeConverter;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport javax.xml.bind.JAXBContext;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport javax.xml.bind.JAXBException;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport javax.xml.bind.Marshaller;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport javax.xml.bind.PropertyException;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport javax.xml.bind.Unmarshaller;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport javax.xml.bind.Validator;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport com.sun.xml.bind.Messages;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkimport com.sun.xml.bind.DatatypeConverterImpl;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk/**
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * This class provides the default implementation of JAXBContext. It
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * also creates the GrammarInfoFacade that unifies all of the grammar
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * info from packages on the contextPath.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk *
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * @version $Revision: 1.3 $
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkpublic class DefaultJAXBContextImpl extends JAXBContext {
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /**
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * This object keeps information about the grammar.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk *
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * When more than one package are specified,
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * GrammarInfoFacade is used.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk private GrammarInfo gi = null;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /**
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * This is the constructor used by javax.xml.bind.FactoryFinder which
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * bootstraps the RI. It causes the construction of a JAXBContext that
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * contains a GrammarInfoFacade which is the union of all the generated
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * JAXBContextImpl objects on the contextPath.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk public DefaultJAXBContextImpl( String contextPath, ClassLoader classLoader )
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk throws JAXBException {
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk this( GrammarInfoFacade.createGrammarInfoFacade( contextPath, classLoader ) );
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk // initialize datatype converter with ours
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk DatatypeConverter.setDatatypeConverter(DatatypeConverterImpl.theInstance);
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk }
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /**
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * This constructor is used by the default no-arg constructor in the
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * generated JAXBContextImpl objects. It is also used by the
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * bootstrapping constructor in this class.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk public DefaultJAXBContextImpl( GrammarInfo gi ) {
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk this.gi = gi;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk }
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk public GrammarInfo getGrammarInfo() {
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk return gi;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk }
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /**
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * Once we load a grammar, we will cache the value here.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk private com.sun.msv.grammar.Grammar grammar = null;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /**
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * Loads a grammar object for the unmarshal-time validation.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk *
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * <p>
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * getGrammar is normally very expensive, so it's worth
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * synchronizing to avoid unnecessary invocation.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk public synchronized com.sun.msv.grammar.Grammar getGrammar() throws JAXBException {
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk if( grammar==null )
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk grammar = gi.getGrammar();
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk return grammar;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk }
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /**
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * Create a <CODE>Marshaller</CODE> object that can be used to convert a
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * java content-tree into XML data.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk *
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * @return a <CODE>Marshaller</CODE> object
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * @throws JAXBException if an error was encountered while creating the
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * <code>Marshaller</code> object
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk public Marshaller createMarshaller() throws JAXBException {
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk return new MarshallerImpl( this );
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk }
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /**
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * Create an <CODE>Unmarshaller</CODE> object that can be used to convert XML
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * data into a java content-tree.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk *
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * @return an <CODE>Unmarshaller</CODE> object
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * @throws JAXBException if an error was encountered while creating the
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * <code>Unmarshaller</code> object
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk public Unmarshaller createUnmarshaller() throws JAXBException {
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk return new UnmarshallerImpl( this, gi );
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk }
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /**
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * Create a <CODE>Validator</CODE> object that can be used to validate a
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * java content-tree.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk *
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * @return an <CODE>Unmarshaller</CODE> object
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * @throws JAXBException if an error was encountered while creating the
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * <code>Validator</code> object
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk public Validator createValidator() throws JAXBException {
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk return new ValidatorImpl( this );
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk }
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /**
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * Create an instance of the specified Java content interface.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk *
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * @param javaContentInterface the Class object
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * @return an instance of the Java content interface
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * @exception JAXBException
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk public Object newInstance( Class javaContentInterface )
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk throws JAXBException {
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk if( javaContentInterface == null ) {
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk throw new JAXBException( Messages.format( Messages.CI_NOT_NULL ) );
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk }
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk try {
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk Class c = gi.getDefaultImplementation( javaContentInterface );
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk if(c==null)
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk throw new JAXBException(
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk Messages.format( Messages.MISSING_INTERFACE, javaContentInterface ));
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk return c.newInstance();
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk } catch( Exception e ) {
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk throw new JAXBException( e );
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk }
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk }
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /**
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * There are no required properties, so simply throw an exception. Other
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * providers may have support for properties on Validator, but the RI doesn't
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk public void setProperty( String name, Object value )
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk throws PropertyException {
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk throw new PropertyException(name, value);
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk }
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /**
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * There are no required properties, so simply throw an exception. Other
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * providers may have support for properties on Validator, but the RI doesn't
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk public Object getProperty( String name )
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk throws PropertyException {
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk throw new PropertyException(name);
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk }
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk}