001    //
002    // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v1.0.1-05/30/2003 05:06 AM(java_re)-fcs 
003    // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
004    // Any modifications to this file will be lost upon recompilation of the source schema. 
005    // Generated on: 2004.10.11 at 12:13:34 EDT 
006    //
007    
008    /*
009     * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
010     * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
011     */
012    
013    /*
014     * @(#)$Id: GrammarInfo.java,v 1.5 2003/05/14 18:36:17 lschwenk Exp $
015     */
016    package astronomy.data.spectra.impl.runtime;
017    
018    import javax.xml.bind.JAXBException;
019    
020    import com.sun.msv.grammar.Grammar;
021    
022    /**
023     * Keeps the information about the grammar as a whole.
024     * 
025     * Implementation of this interface is provided by the generated code.
026     *
027     * @author
028     *  <a href="mailto:kohsuke.kawaguchi@sun.com>Kohsuke KAWAGUCHI</a>
029     */
030    public interface GrammarInfo
031    {
032        /**
033         * Creates an unmarshaller that can unmarshal a given element.
034         * 
035         * @param namespaceUri
036         *      The string needs to be interned by the caller
037         *      for a performance reason.
038         * @param localName
039         *      The string needs to be interned by the caller
040         *      for a performance reason.
041         * 
042         * @return
043         *      null if the given name pair is not recognized.
044         */
045        UnmarshallingEventHandler createUnmarshaller(
046            String namespaceUri, String localName, UnmarshallingContext context );
047        
048        /**
049         * Creates an instance for the root element.
050         * 
051         * @return
052         *      null if the given name pair is not recognized.
053         */
054        Class getRootElement(String namespaceUri, String localName);
055        
056        /**
057         * Return the probe points for this GrammarInfo, which are used to detect 
058         * {namespaceURI,localName} collisions across the GrammarInfo's on the
059         * schemaPath.  This is a slightly more complex implementation than a simple
060         * hashmap, but it is more flexible in supporting additional schema langs.
061         */
062        String[] getProbePoints();
063        
064        /**
065         * Returns true if the invocation of the createUnmarshaller method
066         * will return a non-null value for the given name pair.
067         * 
068         * @param namespaceUri
069         *      The string needs to be interned by the caller
070         *      for a performance reason.
071         * @param localName
072         *      The string needs to be interned by the caller
073         *      for a performance reason.
074         */
075        boolean recognize( String nsUri, String localName );
076        
077        /**
078         * Gets the default implementation for the given public content
079         * interface. 
080         *
081         * @param javaContentInterface
082         *      the Class object of the public interface.
083         * 
084         * @return null
085         *      If the interface is not found.
086         */
087        Class getDefaultImplementation( Class javaContentInterface );
088        
089        /**
090         * Gets the MSV AGM which can be used to validate XML during
091         * marshalling/unmarshalling.
092         */
093        Grammar getGrammar() throws JAXBException;
094    }