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