dom anchor openapi
authorGregory Shrago <Gregory.Shrago@jetbrains.com>
Thu, 11 Mar 2010 10:24:22 +0000 (13:24 +0300)
committerGregory Shrago <Gregory.Shrago@jetbrains.com>
Thu, 11 Mar 2010 10:24:22 +0000 (13:24 +0300)
xml/dom-impl/src/com/intellij/util/xml/impl/DomAnchorImpl.java
xml/dom-impl/src/com/intellij/util/xml/impl/DomServiceImpl.java
xml/dom-openapi/src/com/intellij/util/xml/DomAnchor.java [new file with mode: 0644]
xml/dom-openapi/src/com/intellij/util/xml/DomService.java

index 4971ded53d23c614df4904f1bcfa3e0f40f51006..772df90ef2f90d1535ca0cfc3fbcbb3cc3222694 100644 (file)
@@ -18,10 +18,7 @@ package com.intellij.util.xml.impl;
 import com.intellij.psi.xml.XmlAttribute;
 import com.intellij.psi.xml.XmlFile;
 import com.intellij.psi.xml.XmlTag;
-import com.intellij.util.xml.DomElement;
-import com.intellij.util.xml.DomManager;
-import com.intellij.util.xml.DomFileElement;
-import com.intellij.util.xml.GenericAttributeValue;
+import com.intellij.util.xml.*;
 import com.intellij.util.xml.reflect.AbstractDomChildrenDescription;
 import com.intellij.openapi.diagnostic.Logger;
 import org.jetbrains.annotations.Nullable;
@@ -32,7 +29,7 @@ import java.util.List;
 /**
  * @author peter
  */
-public abstract class DomAnchorImpl<T extends DomElement> {
+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) {
index 8b2a4e1d068ee4338604b79338840cef613c5ea7..94f92a2665a46259126bad3872e602066cbe7580 100644 (file)
@@ -45,6 +45,11 @@ public class DomServiceImpl extends DomService {
     return new ModelMergerImpl();
   }
 
+  @Override
+  public <T extends DomElement> DomAnchor<T> createAnchor(T domElement) {
+    return DomAnchorImpl.createAnchor(domElement);
+  }
+
   @NotNull
   public XmlFile getContainingFile(@NotNull DomElement domElement) {
     if (domElement instanceof DomFileElement) {
diff --git a/xml/dom-openapi/src/com/intellij/util/xml/DomAnchor.java b/xml/dom-openapi/src/com/intellij/util/xml/DomAnchor.java
new file mode 100644 (file)
index 0000000..29addf6
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2000-2010 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.intellij.util.xml;
+
+import com.intellij.psi.xml.XmlFile;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * @author Gregory.Shrago
+ */
+public interface DomAnchor<T extends DomElement> {
+  @Nullable
+  T retrieveDomElement();
+
+  @NotNull
+  XmlFile getContainingFile();
+}
index 3032284a176177f25d388797b48de9335dfefa97..7f704cf428c5c26c1628f49dfe7b2f8bac7a33b0 100644 (file)
@@ -54,6 +54,8 @@ public abstract class DomService {
 
   public abstract ModelMerger createModelMerger();
 
+  public abstract <T extends DomElement> DomAnchor<T> createAnchor(T domElement);
+
   @NotNull
   public abstract XmlFile getContainingFile(@NotNull DomElement domElement);