1
2
3
4
5
6
7
8 package de.nierbeck.timeTrack.model.impl.runtime;
9
10 import javax.xml.bind.JAXBException;
11
12 /***
13 * Keeps the information about the grammar as a whole.
14 *
15 * Implementation of this interface is provided by the generated code.
16 *
17 * @author <a href="mailto:kohsuke.kawaguchi@sun.com">Kohsuke KAWAGUCHI</a>
18 */
19 public interface GrammarInfo {
20 /***
21 * Creates an unmarshaller that can unmarshal a given element.
22 *
23 * @param namespaceUri
24 * The string needs to be interned by the caller for a
25 * performance reason.
26 * @param localName
27 * The string needs to be interned by the caller for a
28 * performance reason.
29 *
30 * @return null if the given name pair is not recognized.
31 */
32 UnmarshallingEventHandler createUnmarshaller(String namespaceUri,
33 String localName, UnmarshallingContext context);
34
35 /***
36 * Creates an instance for the root element.
37 *
38 * @return null if the given name pair is not recognized.
39 */
40 Class getRootElement(String namespaceUri, String localName);
41
42 /***
43 * Return the probe points for this GrammarInfo, which are used to detect
44 * {namespaceURI,localName} collisions across the GrammarInfo's on the
45 * schemaPath. This is a slightly more complex implementation than a simple
46 * hashmap, but it is more flexible in supporting additional schema langs.
47 */
48 String[] getProbePoints();
49
50 /***
51 * Returns true if the invocation of the createUnmarshaller method will
52 * return a non-null value for the given name pair.
53 *
54 * @param nsUri
55 * The string needs to be interned by the caller for a
56 * performance reason.
57 * @param localName
58 * The string needs to be interned by the caller for a
59 * performance reason.
60 */
61 boolean recognize(String nsUri, String localName);
62
63 /***
64 * Gets the default implementation for the given public content interface.
65 *
66 * @param javaContentInterface
67 * the Class object of the public interface.
68 *
69 * @return null If the interface is not found.
70 */
71 Class getDefaultImplementation(Class javaContentInterface);
72
73 /***
74 * Gets the MSV AGM which can be used to validate XML during
75 * marshalling/unmarshalling.
76 */
77 com.sun.msv.grammar.Grammar getGrammar() throws JAXBException;
78
79 XMLSerializable castToXMLSerializable(Object o);
80
81 ValidatableObject castToValidatableObject(Object o);
82 }