diff options
Diffstat (limited to 'xml/dom-impl')
-rw-r--r-- | xml/dom-impl/src/com/intellij/util/xml/impl/DomAnchorImpl.java | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/xml/dom-impl/src/com/intellij/util/xml/impl/DomAnchorImpl.java b/xml/dom-impl/src/com/intellij/util/xml/impl/DomAnchorImpl.java index 4fa7f613fef6..965f1bd7d121 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/impl/DomAnchorImpl.java +++ b/xml/dom-impl/src/com/intellij/util/xml/impl/DomAnchorImpl.java @@ -36,11 +36,11 @@ import java.util.List; public abstract class DomAnchorImpl<T extends DomElement> implements DomAnchor<T> { private static final Logger LOG = Logger.getInstance("#com.intellij.util.xml.impl.DomAnchorImpl"); - public static <T extends DomElement> DomAnchorImpl<T> createAnchor(@NotNull T t) { + public static <T extends DomElement> DomAnchor<T> createAnchor(@NotNull T t) { return createAnchor(t, false); } - public static <T extends DomElement> DomAnchorImpl<T> createAnchor(@NotNull T t, boolean usePsi) { + public static <T extends DomElement> DomAnchor<T> createAnchor(@NotNull T t, boolean usePsi) { if (usePsi) { final XmlElement element = t.getXmlElement(); if (element != null) { @@ -48,6 +48,11 @@ public abstract class DomAnchorImpl<T extends DomElement> implements DomAnchor<T } } + DomInvocationHandler handler = DomManagerImpl.getNotNullHandler(t); + if (handler.getStub() != null) { + return new StubAnchor<T>(handler); + } + final DomElement parent = t.getParent(); if (parent == null) { LOG.error("Parent null: " + t); @@ -59,7 +64,7 @@ public abstract class DomAnchorImpl<T extends DomElement> implements DomAnchor<T return new RootAnchor<T>(fileElement.getFile(), fileElement.getRootElementClass()); } - final DomAnchorImpl<DomElement> parentAnchor = createAnchor(parent); + final DomAnchorImpl<DomElement> parentAnchor = (DomAnchorImpl<DomElement>)createAnchor(parent); final String name = t.getGenericInfo().getElementName(t); final AbstractDomChildrenDescription description = t.getChildDescription(); final List<? extends DomElement> values = description.getValues(parent); @@ -373,9 +378,4 @@ public abstract class DomAnchorImpl<T extends DomElement> implements DomAnchor<T return myHandler.getXmlElement(); } } - - public static <T extends DomElement> DomAnchor<T> createStubAnchor(T element) { - DomInvocationHandler handler = DomManagerImpl.getDomInvocationHandler(element); - return handler.getStub() == null ? createAnchor(element, true) : new StubAnchor<T>(handler); - } } |