3m9 compatible;
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / core / JavaElementDelta.java
index ea6d97d..166e4d3 100644 (file)
@@ -17,12 +17,13 @@ import net.sourceforge.phpdt.core.IJavaElementDelta;
 import net.sourceforge.phpdt.core.IJavaProject;
 
 import org.eclipse.core.resources.IResourceDelta;
+import net.sourceforge.phpdt.internal.core.SimpleDelta;
 
 
 /**
  * @see IJavaElementDelta
  */
-public class JavaElementDelta implements IJavaElementDelta {
+public class JavaElementDelta extends SimpleDelta implements IJavaElementDelta {
        /**
         * The element that this delta describes the change to.
         * @see #getElement()
@@ -185,6 +186,17 @@ protected void addAffectedChild(JavaElementDelta child) {
                }
        }
 }
+///**
+// * Creates the nested deltas resulting from an add operation.
+// * Convenience method for creating add deltas.
+// * The constructor should be used to create the root delta 
+// * and then an add operation should call this method.
+// */
+//public void added(IJavaElement element) {
+//     JavaElementDelta addedDelta = new JavaElementDelta(element);
+//     addedDelta.fKind = ADDED;
+//     insertDeltaTree(element, addedDelta);
+//}
 /**
  * Creates the nested deltas resulting from an add operation.
  * Convenience method for creating add deltas.
@@ -192,8 +204,12 @@ protected void addAffectedChild(JavaElementDelta child) {
  * and then an add operation should call this method.
  */
 public void added(IJavaElement element) {
+       added(element, 0);
+}
+public void added(IJavaElement element, int flags) {
        JavaElementDelta addedDelta = new JavaElementDelta(element);
-       addedDelta.fKind = ADDED;
+       addedDelta.added();
+       addedDelta.changeFlags |= flags;
        insertDeltaTree(element, addedDelta);
 }
 /**
@@ -242,32 +258,32 @@ public void changed(IJavaElement element, int changeFlag) {
 public void contentChanged() {
        fChangeFlags |= F_CONTENT;
 }
-/**
- * Clone this delta so that its elements are rooted at the given project.
- */
-public IJavaElementDelta clone(IJavaProject project) {
-       JavaElementDelta clone = 
-               new JavaElementDelta(((JavaElement)fChangedElement).rootedAt(project));
-       if (fAffectedChildren != fgEmptyDelta) {
-               int length = fAffectedChildren.length;
-               IJavaElementDelta[] cloneChildren = new IJavaElementDelta[length];
-               for (int i= 0; i < length; i++) {
-                       cloneChildren[i] = ((JavaElementDelta)fAffectedChildren[i]).clone(project);
-               }
-               clone.fAffectedChildren = cloneChildren;
-       }       
-       clone.fChangeFlags = fChangeFlags;
-       clone.fKind = fKind;
-       if (fMovedFromHandle != null) {
-               clone.fMovedFromHandle = ((JavaElement)fMovedFromHandle).rootedAt(project);
-       }
-       if (fMovedToHandle != null) {
-               clone.fMovedToHandle = ((JavaElement)fMovedToHandle).rootedAt(project);
-       }
-       clone.resourceDeltas = this.resourceDeltas;
-       clone.resourceDeltasCounter = this.resourceDeltasCounter;
-       return clone;
-}
+///**
+// * Clone this delta so that its elements are rooted at the given project.
+// */
+//public IJavaElementDelta clone(IJavaProject project) {
+//     JavaElementDelta clone = 
+//             new JavaElementDelta(((JavaElement)fChangedElement).rootedAt(project));
+//     if (fAffectedChildren != fgEmptyDelta) {
+//             int length = fAffectedChildren.length;
+//             IJavaElementDelta[] cloneChildren = new IJavaElementDelta[length];
+//             for (int i= 0; i < length; i++) {
+//                     cloneChildren[i] = ((JavaElementDelta)fAffectedChildren[i]).clone(project);
+//             }
+//             clone.fAffectedChildren = cloneChildren;
+//     }       
+//     clone.fChangeFlags = fChangeFlags;
+//     clone.fKind = fKind;
+//     if (fMovedFromHandle != null) {
+//             clone.fMovedFromHandle = ((JavaElement)fMovedFromHandle).rootedAt(project);
+//     }
+//     if (fMovedToHandle != null) {
+//             clone.fMovedToHandle = ((JavaElement)fMovedToHandle).rootedAt(project);
+//     }
+//     clone.resourceDeltas = this.resourceDeltas;
+//     clone.resourceDeltasCounter = this.resourceDeltasCounter;
+//     return clone;
+//}
 
 /**
  * Creates the nested deltas for a closed element.
@@ -558,15 +574,19 @@ protected IJavaElementDelta[] removeAndShrinkArray(IJavaElementDelta[] old, int
  * and then the delete operation should call this method.
  */
 public void removed(IJavaElement element) {
+       removed(element, 0);
+}
+public void removed(IJavaElement element, int flags) {
        JavaElementDelta removedDelta= new JavaElementDelta(element);
        insertDeltaTree(element, removedDelta);
        JavaElementDelta actualDelta = getDeltaFor(element);
        if (actualDelta != null) {
-               actualDelta.fKind = REMOVED;
-               actualDelta.fChangeFlags = 0;
+               actualDelta.removed();
+               actualDelta.changeFlags |= flags;
                actualDelta.fAffectedChildren = fgEmptyDelta;
        }
 }
+
 /**
  * Creates the nested deltas resulting from a change operation.
  * Convenience method for creating change deltas.