1 package org.simantics.xml.sax.base;
\r
3 import java.util.HashMap;
\r
4 import java.util.HashSet;
\r
5 import java.util.Map;
\r
6 import java.util.Set;
\r
8 import org.simantics.db.WriteGraph;
\r
9 import org.simantics.db.exception.DatabaseException;
\r
11 public abstract class XMLElementNamedChildParserBase implements XMLElementNamedChildParser{
\r
13 private Map<String,Class<? extends XMLElementParser>> namedParsers = new HashMap<String, Class<? extends XMLElementParser>>();
\r
14 private Set<Class<? extends XMLElementParser>> parsers = new HashSet<Class<? extends XMLElementParser>>();
\r
17 public Class<? extends XMLElementParser> getParser(Map<String, XMLElementParser> parsers, ParserElement element, ParserElement child) {
\r
18 Class<? extends XMLElementParser> parserClass = namedParsers.get(child.qName);
\r
19 if (parserClass != null)
\r
21 XMLElementParser parser = parsers.get(child.qName);
\r
24 parserClass = parser.getClass();
\r
25 if (this.parsers.contains(parserClass))
\r
27 for (Class<?> c : this.parsers)
\r
28 if (c.isAssignableFrom(parserClass))
\r
33 public void addParser(String name, Class<? extends XMLElementParser> parser) {
\r
34 namedParsers.put(name, parser);
\r
37 public void addParser(Class<? extends XMLElementParser> parser) {
\r
38 parsers.add(parser);
\r
42 // public void configureChild(WriteGraph graph, Stack<Element> parents, Element element, Element child) throws DatabaseException {
\r
47 public void configure(WriteGraph graph, ParserElement element, String string) throws DatabaseException {
\r
52 public String getID() {
\r
57 public int idPriority() {
\r