dom presentation refactoring
[fedora-idea.git] / openapi / src / com / intellij / util / xml / DomManager.java
blob217f5b4556f6d16008542089289baf8a2b784951
1 /*
2 * Copyright (c) 2005 Your Corporation. All Rights Reserved.
3 */
4 package com.intellij.util.xml;
6 import com.intellij.openapi.project.Project;
7 import com.intellij.psi.xml.XmlFile;
8 import com.intellij.psi.xml.XmlTag;
9 import com.intellij.util.xml.reflect.DomGenericInfo;
10 import org.jetbrains.annotations.NotNull;
11 import org.jetbrains.annotations.Nullable;
13 import java.lang.reflect.Type;
15 /**
16 * @author peter
18 public abstract class DomManager {
20 public static DomManager getDomManager(Project project) {
21 return project.getComponent(DomManager.class);
24 public abstract Project getProject();
26 @NotNull
27 public abstract <T extends DomElement> DomFileElement<T> getFileElement(XmlFile file, Class<T> aClass, String rootTagName);
29 public abstract void addDomEventListener(DomEventListener listener);
31 public abstract void removeDomEventListener(DomEventListener listener);
33 public abstract DomGenericInfo getGenericInfo(Type type);
35 public abstract <T extends DomElement> void registerImplementation(Class<T> domElementClass, Class<? extends T> implementationClass);
37 @Nullable
38 public abstract DomElement getDomElement(final XmlTag tag);
40 public abstract void registerPresentationFactory(DomElementPresentationFactory factory);
42 @NotNull
43 public abstract DomElementPresentation getDomElementPresentation(final DomElement element);