Dom openapi separated from implementation
[fedora-idea.git] / openapi / src / com / intellij / util / xml / ClassChooserManager.java
blobd22b03b79453bc95c863f440eda89eb6943590ac
1 /*
2 * Copyright (c) 2005 Your Corporation. All Rights Reserved.
3 */
4 package com.intellij.util.xml;
6 import com.intellij.psi.xml.XmlTag;
8 import java.util.HashMap;
9 import java.util.Map;
11 /**
12 * @author peter
14 public class ClassChooserManager {
15 private static final Map<Class, ClassChooser> ourClassChoosers = new HashMap<Class, ClassChooser>();
17 public static ClassChooser getClassChooser(final Class aClass) {
18 final ClassChooser classChooser = ourClassChoosers.get(aClass);
19 return classChooser != null ? classChooser : new ClassChooser() {
20 public Class chooseClass(final XmlTag tag) {
21 return aClass;
24 public void distinguishTag(final XmlTag tag, final Class aClass) {
29 public static <T extends DomElement> void registerClassChooser(final Class<T> aClass, final ClassChooser<T> classChooser) {
30 ourClassChoosers.put(aClass, classChooser);
33 public static <T extends DomElement> void unregisterClassChooser(Class<T> aClass) {
34 ourClassChoosers.remove(aClass);