A massive organize imports and formatting of the sources using default Eclipse code...
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / core / JavaElementDeltaBuilder.java
index 0376079..226e795 100644 (file)
@@ -21,17 +21,14 @@ import net.sourceforge.phpdt.core.IParent;
 import net.sourceforge.phpdt.core.JavaModelException;
 import net.sourceforge.phpdt.core.compiler.CharOperation;
 
-
 /**
- * A java element delta biulder creates a java element delta on
- * a java element between the version of the java element
- * at the time the comparator was created and the current version 
- * of the java element.
- *
- * It performs this operation by locally caching the contents of 
- * the java element when it is created. When the method
- * createDeltas() is called, it creates a delta over the cached 
- * contents and the new contents.
+ * A java element delta biulder creates a java element delta on a java element
+ * between the version of the java element at the time the comparator was
+ * created and the current version of the java element.
+ * 
+ * It performs this operation by locally caching the contents of the java
+ * element when it is created. When the method createDeltas() is called, it
+ * creates a delta over the cached contents and the new contents.
  */
 public class JavaElementDeltaBuilder {
        /**
@@ -73,12 +70,13 @@ public class JavaElementDeltaBuilder {
         * List of removed elements
         */
        ArrayList removed;
-       
+
        /**
         * Doubly linked list item
         */
        class ListItem {
                public IJavaElement previous;
+
                public IJavaElement next;
 
                public ListItem(IJavaElement previous, IJavaElement next) {
@@ -86,324 +84,362 @@ public class JavaElementDeltaBuilder {
                        this.next = next;
                }
        }
-/**
- * Creates a java element comparator on a java element
- * looking as deep as necessary.
- */
-public JavaElementDeltaBuilder(IJavaElement javaElement) {
-       this.javaElement = javaElement;
-       this.initialize();
-       this.recordElementInfo(
-               javaElement, 
-               (JavaModel)this.javaElement.getJavaModel(),
-               0);
-}
-/**
- * Creates a java element comparator on a java element
- * looking only 'maxDepth' levels deep.
- */
-public JavaElementDeltaBuilder(IJavaElement javaElement, int maxDepth) {
-       this.javaElement = javaElement;
-       this.maxDepth = maxDepth;
-       this.initialize();
-       this.recordElementInfo(
-               javaElement, 
-               (JavaModel)this.javaElement.getJavaModel(),
-               0);
-}
-/**
- * Repairs the positioning information
- * after an element has been added
- */
-private void added(IJavaElement element) {
-       this.added.add(element);
-       ListItem current = this.getNewPosition(element);
-       ListItem previous = null, next = null;
-       if (current.previous != null)
-               previous = this.getNewPosition(current.previous);
-       if (current.next != null)
-               next = this.getNewPosition(current.next);
-       if (previous != null)
-               previous.next = current.next;
-       if (next != null)
-               next.previous = current.previous;
-}
-/**
- * Builds the java element deltas between the old content of the compilation
- * unit and its new content.
- */
-public void buildDeltas() {
-       this.recordNewPositions(this.javaElement, 0);
-       this.findAdditions(this.javaElement, 0);
-       this.findDeletions();
-       this.findChangesInPositioning(this.javaElement, 0);
-       this.trimDelta(this.delta);
-       if (this.delta.getAffectedChildren().length == 0) {
-               // this is a fine grained but not children affected -> mark as content changed
-               this.delta.contentChanged();
+
+       /**
+        * Creates a java element comparator on a java element looking as deep as
+        * necessary.
+        */
+       public JavaElementDeltaBuilder(IJavaElement javaElement) {
+               this.javaElement = javaElement;
+               this.initialize();
+               this.recordElementInfo(javaElement, (JavaModel) this.javaElement
+                               .getJavaModel(), 0);
        }
-}
-/**
- * Finds elements which have been added or changed.
- */
-private void findAdditions(IJavaElement newElement, int depth) {
-       JavaElementInfo oldInfo = this.getElementInfo(newElement);
-       if (oldInfo == null && depth < this.maxDepth) {
-               this.delta.added(newElement);
-               added(newElement);
-       } else {
-               this.removeElementInfo(newElement);
+
+       /**
+        * Creates a java element comparator on a java element looking only
+        * 'maxDepth' levels deep.
+        */
+       public JavaElementDeltaBuilder(IJavaElement javaElement, int maxDepth) {
+               this.javaElement = javaElement;
+               this.maxDepth = maxDepth;
+               this.initialize();
+               this.recordElementInfo(javaElement, (JavaModel) this.javaElement
+                               .getJavaModel(), 0);
        }
-       
-       if (depth >= this.maxDepth) {
-               // mark element as changed
-               this.delta.changed(newElement, IJavaElementDelta.F_CONTENT);
-               return;
+
+       /**
+        * Repairs the positioning information after an element has been added
+        */
+       private void added(IJavaElement element) {
+               this.added.add(element);
+               ListItem current = this.getNewPosition(element);
+               ListItem previous = null, next = null;
+               if (current.previous != null)
+                       previous = this.getNewPosition(current.previous);
+               if (current.next != null)
+                       next = this.getNewPosition(current.next);
+               if (previous != null)
+                       previous.next = current.next;
+               if (next != null)
+                       next.previous = current.previous;
        }
 
-       JavaElementInfo newInfo = null;
-       try { 
-               newInfo = (JavaElementInfo)((JavaElement)newElement).getElementInfo();
-       } catch (JavaModelException npe) {
-               return;
+       /**
+        * Builds the java element deltas between the old content of the compilation
+        * unit and its new content.
+        */
+       public void buildDeltas() {
+               this.recordNewPositions(this.javaElement, 0);
+               this.findAdditions(this.javaElement, 0);
+               this.findDeletions();
+               this.findChangesInPositioning(this.javaElement, 0);
+               this.trimDelta(this.delta);
+               if (this.delta.getAffectedChildren().length == 0) {
+                       // this is a fine grained but not children affected -> mark as
+                       // content changed
+                       this.delta.contentChanged();
+               }
        }
-       
-       this.findContentChange(oldInfo, newInfo, newElement);
-               
-       if (oldInfo != null && newElement instanceof IParent) {
-
-               IJavaElement[] children = newInfo.getChildren();
-               if (children != null) {
-                       int length = children.length;
-                       for(int i = 0; i < length; i++) {
-                               this.findAdditions(children[i], depth + 1);
+
+       /**
+        * Finds elements which have been added or changed.
+        */
+       private void findAdditions(IJavaElement newElement, int depth) {
+               JavaElementInfo oldInfo = this.getElementInfo(newElement);
+               if (oldInfo == null && depth < this.maxDepth) {
+                       this.delta.added(newElement);
+                       added(newElement);
+               } else {
+                       this.removeElementInfo(newElement);
+               }
+
+               if (depth >= this.maxDepth) {
+                       // mark element as changed
+                       this.delta.changed(newElement, IJavaElementDelta.F_CONTENT);
+                       return;
+               }
+
+               JavaElementInfo newInfo = null;
+               try {
+                       newInfo = (JavaElementInfo) ((JavaElement) newElement)
+                                       .getElementInfo();
+               } catch (JavaModelException npe) {
+                       return;
+               }
+
+               this.findContentChange(oldInfo, newInfo, newElement);
+
+               if (oldInfo != null && newElement instanceof IParent) {
+
+                       IJavaElement[] children = newInfo.getChildren();
+                       if (children != null) {
+                               int length = children.length;
+                               for (int i = 0; i < length; i++) {
+                                       this.findAdditions(children[i], depth + 1);
+                               }
                        }
-               }               
+               }
        }
-}
-/**
- * Looks for changed positioning of elements.
- */
-private void findChangesInPositioning(IJavaElement element, int depth) {
-       if (depth >= this.maxDepth || this.added.contains(element) || this.removed.contains(element))
-               return;
-               
-       if (!isPositionedCorrectly(element)) {
-               this.delta.changed(element, IJavaElementDelta.F_REORDER);
-       } 
-       
-       if (element instanceof IParent) {
-               JavaElementInfo info = null;
-               try { 
-                       info = (JavaElementInfo)((JavaElement)element).getElementInfo();
-               } catch (JavaModelException npe) {
+
+       /**
+        * Looks for changed positioning of elements.
+        */
+       private void findChangesInPositioning(IJavaElement element, int depth) {
+               if (depth >= this.maxDepth || this.added.contains(element)
+                               || this.removed.contains(element))
                        return;
+
+               if (!isPositionedCorrectly(element)) {
+                       this.delta.changed(element, IJavaElementDelta.F_REORDER);
                }
 
-               IJavaElement[] children = info.getChildren();
-               if (children != null) {
-                       int length = children.length;
-                       for(int i = 0; i < length; i++) {
-                               this.findChangesInPositioning(children[i], depth + 1);
+               if (element instanceof IParent) {
+                       JavaElementInfo info = null;
+                       try {
+                               info = (JavaElementInfo) ((JavaElement) element)
+                                               .getElementInfo();
+                       } catch (JavaModelException npe) {
+                               return;
+                       }
+
+                       IJavaElement[] children = info.getChildren();
+                       if (children != null) {
+                               int length = children.length;
+                               for (int i = 0; i < length; i++) {
+                                       this.findChangesInPositioning(children[i], depth + 1);
+                               }
                        }
-               }               
+               }
        }
-}
-/**
- * The elements are equivalent, but might have content changes.
- */
-private void findContentChange(JavaElementInfo oldInfo, JavaElementInfo newInfo, IJavaElement newElement) {
-       if (oldInfo instanceof MemberElementInfo && newInfo instanceof MemberElementInfo) {
-               if (((MemberElementInfo)oldInfo).getModifiers() != ((MemberElementInfo)newInfo).getModifiers()) {
-                       this.delta.changed(newElement, IJavaElementDelta.F_MODIFIERS);
-               } else if (oldInfo instanceof SourceMethodElementInfo && newInfo instanceof SourceMethodElementInfo) {
-                       if (!CharOperation.equals(
-                                       ((SourceMethodElementInfo)oldInfo).getReturnTypeName(), 
-                                       ((SourceMethodElementInfo)newInfo).getReturnTypeName())) {
-                               this.delta.changed(newElement, IJavaElementDelta.F_CONTENT);
+
+       /**
+        * The elements are equivalent, but might have content changes.
+        */
+       private void findContentChange(JavaElementInfo oldInfo,
+                       JavaElementInfo newInfo, IJavaElement newElement) {
+               if (oldInfo instanceof MemberElementInfo
+                               && newInfo instanceof MemberElementInfo) {
+                       if (((MemberElementInfo) oldInfo).getModifiers() != ((MemberElementInfo) newInfo)
+                                       .getModifiers()) {
+                               this.delta.changed(newElement, IJavaElementDelta.F_MODIFIERS);
+                       } else if (oldInfo instanceof SourceMethodElementInfo
+                                       && newInfo instanceof SourceMethodElementInfo) {
+                               if (!CharOperation
+                                               .equals(((SourceMethodElementInfo) oldInfo)
+                                                               .getReturnTypeName(),
+                                                               ((SourceMethodElementInfo) newInfo)
+                                                                               .getReturnTypeName())) {
+                                       this.delta.changed(newElement, IJavaElementDelta.F_CONTENT);
+                               }
+                       } else if (oldInfo instanceof SourceFieldElementInfo
+                                       && newInfo instanceof SourceFieldElementInfo) {
+                               if (!CharOperation.equals(((SourceFieldElementInfo) oldInfo)
+                                               .getTypeName(), ((SourceFieldElementInfo) newInfo)
+                                               .getTypeName())) {
+                                       this.delta.changed(newElement, IJavaElementDelta.F_CONTENT);
+                               }
                        }
-               } else if (oldInfo instanceof SourceFieldElementInfo && newInfo instanceof SourceFieldElementInfo) {
-                       if (!CharOperation.equals(
-                                       ((SourceFieldElementInfo)oldInfo).getTypeName(), 
-                                       ((SourceFieldElementInfo)newInfo).getTypeName())) {
-                               this.delta.changed(newElement, IJavaElementDelta.F_CONTENT);
+               }
+               if (oldInfo instanceof SourceTypeElementInfo
+                               && newInfo instanceof SourceTypeElementInfo) {
+                       SourceTypeElementInfo oldSourceTypeInfo = (SourceTypeElementInfo) oldInfo;
+                       SourceTypeElementInfo newSourceTypeInfo = (SourceTypeElementInfo) newInfo;
+                       if (!CharOperation.equals(oldSourceTypeInfo.getSuperclassName(),
+                                       newSourceTypeInfo.getSuperclassName())
+                                       || !CharOperation.equals(oldSourceTypeInfo
+                                                       .getInterfaceNames(), newSourceTypeInfo
+                                                       .getInterfaceNames())) {
+                               this.delta.changed(newElement, IJavaElementDelta.F_SUPER_TYPES);
                        }
                }
        }
-       if (oldInfo instanceof SourceTypeElementInfo && newInfo instanceof SourceTypeElementInfo) {
-               SourceTypeElementInfo oldSourceTypeInfo = (SourceTypeElementInfo)oldInfo;
-               SourceTypeElementInfo newSourceTypeInfo = (SourceTypeElementInfo)newInfo;
-               if (!CharOperation.equals(oldSourceTypeInfo.getSuperclassName(), newSourceTypeInfo.getSuperclassName()) 
-                       || !CharOperation.equals(oldSourceTypeInfo.getInterfaceNames(), newSourceTypeInfo.getInterfaceNames())) {
-                       this.delta.changed(newElement, IJavaElementDelta.F_SUPER_TYPES);
+
+       /**
+        * Adds removed deltas for any handles left in the table
+        */
+       private void findDeletions() {
+               Iterator iter = this.infos.keySet().iterator();
+               while (iter.hasNext()) {
+                       IJavaElement element = (IJavaElement) iter.next();
+                       this.delta.removed(element);
+                       this.removed(element);
                }
        }
-}
-/**
- * Adds removed deltas for any handles left in the table
- */
-private void findDeletions() {
-       Iterator iter = this.infos.keySet().iterator();
-       while(iter.hasNext()) {
-               IJavaElement element = (IJavaElement)iter.next();
-               this.delta.removed(element);
-               this.removed(element);
+
+       private JavaElementInfo getElementInfo(IJavaElement element) {
+               return (JavaElementInfo) this.infos.get(element);
        }
-}
-private JavaElementInfo getElementInfo(IJavaElement element) {
-       return (JavaElementInfo)this.infos.get(element);
-}
-private ListItem getNewPosition(IJavaElement element) {
-       return (ListItem)this.newPositions.get(element);
-}
-private ListItem getOldPosition(IJavaElement element) {
-       return (ListItem)this.oldPositions.get(element);
-}
-private void initialize() {
-       this.infos = new HashMap(20);
-       this.oldPositions = new HashMap(20);
-       this.newPositions = new HashMap(20);
-       this.putOldPosition(this.javaElement, new ListItem(null, null));
-       this.putNewPosition(this.javaElement, new ListItem(null, null));
-       this.delta = new JavaElementDelta(javaElement);
-       
-       // if building a delta on a compilation unit or below, 
-       // it's a fine grained delta
-       if (javaElement.getElementType() >= IJavaElement.COMPILATION_UNIT) {
-               this.delta.fineGrained();
+
+       private ListItem getNewPosition(IJavaElement element) {
+               return (ListItem) this.newPositions.get(element);
        }
-       
-       this.added = new ArrayList(5);
-       this.removed = new ArrayList(5);
-}
-/**
- * Inserts position information for the elements into the new or old positions table
- */
-private void insertPositions(IJavaElement[] elements, boolean isNew) {
-       int length = elements.length;
-       IJavaElement previous = null, current = null, next = (length > 0) ? elements[0] : null;
-       for(int i = 0; i < length; i++) {
-               previous = current;
-               current = next;
-               next = (i + 1 < length) ? elements[i + 1] : null;
-               if (isNew) {
-                       this.putNewPosition(current, new ListItem(previous, next));
+
+       private ListItem getOldPosition(IJavaElement element) {
+               return (ListItem) this.oldPositions.get(element);
+       }
+
+       private void initialize() {
+               this.infos = new HashMap(20);
+               this.oldPositions = new HashMap(20);
+               this.newPositions = new HashMap(20);
+               this.putOldPosition(this.javaElement, new ListItem(null, null));
+               this.putNewPosition(this.javaElement, new ListItem(null, null));
+               this.delta = new JavaElementDelta(javaElement);
+
+               // if building a delta on a compilation unit or below,
+               // it's a fine grained delta
+               if (javaElement.getElementType() >= IJavaElement.COMPILATION_UNIT) {
+                       this.delta.fineGrained();
+               }
+
+               this.added = new ArrayList(5);
+               this.removed = new ArrayList(5);
+       }
+
+       /**
+        * Inserts position information for the elements into the new or old
+        * positions table
+        */
+       private void insertPositions(IJavaElement[] elements, boolean isNew) {
+               int length = elements.length;
+               IJavaElement previous = null, current = null, next = (length > 0) ? elements[0]
+                               : null;
+               for (int i = 0; i < length; i++) {
+                       previous = current;
+                       current = next;
+                       next = (i + 1 < length) ? elements[i + 1] : null;
+                       if (isNew) {
+                               this.putNewPosition(current, new ListItem(previous, next));
+                       } else {
+                               this.putOldPosition(current, new ListItem(previous, next));
+                       }
+               }
+       }
+
+       /**
+        * Returns whether the elements position has not changed.
+        */
+       private boolean isPositionedCorrectly(IJavaElement element) {
+               ListItem oldListItem = this.getOldPosition(element);
+               if (oldListItem == null)
+                       return false;
+
+               ListItem newListItem = this.getNewPosition(element);
+               if (newListItem == null)
+                       return false;
+
+               IJavaElement oldPrevious = oldListItem.previous;
+               IJavaElement newPrevious = newListItem.previous;
+               if (oldPrevious == null) {
+                       return newPrevious == null;
                } else {
-                       this.putOldPosition(current, new ListItem(previous, next));
+                       return oldPrevious.equals(newPrevious);
                }
        }
-}
-/**
- * Returns whether the elements position has not changed.
- */
-private boolean isPositionedCorrectly(IJavaElement element) {
-       ListItem oldListItem = this.getOldPosition(element);
-       if (oldListItem == null) return false;
-       
-       ListItem newListItem = this.getNewPosition(element);
-       if (newListItem == null) return false;
-       
-       IJavaElement oldPrevious = oldListItem.previous;
-       IJavaElement newPrevious = newListItem.previous;
-       if (oldPrevious == null) {
-               return newPrevious == null;
-       } else {
-               return oldPrevious.equals(newPrevious);
+
+       private void putElementInfo(IJavaElement element, JavaElementInfo info) {
+               this.infos.put(element, info);
        }
-}
-private void putElementInfo(IJavaElement element, JavaElementInfo info) {
-       this.infos.put(element, info);
-}
-private void putNewPosition(IJavaElement element, ListItem position) {
-       this.newPositions.put(element, position);
-}
-private void putOldPosition(IJavaElement element, ListItem position) {
-       this.oldPositions.put(element, position);
-}
-/**
- * Records this elements info, and attempts
- * to record the info for the children.
- */
-private void recordElementInfo(IJavaElement element, JavaModel model, int depth) {
-       if (depth >= this.maxDepth) {
-               return;
+
+       private void putNewPosition(IJavaElement element, ListItem position) {
+               this.newPositions.put(element, position);
        }
-       JavaElementInfo info = null;//(JavaElementInfo)JavaModelManager.getJavaModelManager().getInfo(element);
-       if (info == null) // no longer in the java model.
-               return;
-       this.putElementInfo(element, info);
-               
-       if (element instanceof IParent) {
-               IJavaElement[] children = info.getChildren();
-               if (children != null) {
-                       insertPositions(children, false);
-                       for(int i = 0, length = children.length; i < length; i++)
-                               recordElementInfo(children[i], model, depth + 1);
-               }
+
+       private void putOldPosition(IJavaElement element, ListItem position) {
+               this.oldPositions.put(element, position);
        }
-}
-/**
- * Fills the newPositions hashtable with the new position information
- */
-private void recordNewPositions(IJavaElement newElement, int depth) {
-       if (depth < this.maxDepth && newElement instanceof IParent) {
-               JavaElementInfo info = null;
-               try { 
-                       info = (JavaElementInfo)((JavaElement)newElement).getElementInfo();
-               } catch (JavaModelException npe) {
+
+       /**
+        * Records this elements info, and attempts to record the info for the
+        * children.
+        */
+       private void recordElementInfo(IJavaElement element, JavaModel model,
+                       int depth) {
+               if (depth >= this.maxDepth) {
                        return;
                }
+               JavaElementInfo info = null;// (JavaElementInfo)JavaModelManager.getJavaModelManager().getInfo(element);
+               if (info == null) // no longer in the java model.
+                       return;
+               this.putElementInfo(element, info);
 
-               IJavaElement[] children = info.getChildren();
-               if (children != null) {
-                       insertPositions(children, true);
-                       for(int i = 0, length = children.length; i < length; i++) {
-                               recordNewPositions(children[i], depth + 1);
+               if (element instanceof IParent) {
+                       IJavaElement[] children = info.getChildren();
+                       if (children != null) {
+                               insertPositions(children, false);
+                               for (int i = 0, length = children.length; i < length; i++)
+                                       recordElementInfo(children[i], model, depth + 1);
                        }
                }
        }
-}
-/**
- * Repairs the positioning information
- * after an element has been removed
- */
-private void removed(IJavaElement element) {
-       this.removed.add(element);
-       ListItem current = this.getOldPosition(element);
-       ListItem previous = null, next = null;
-       if (current.previous != null)
-               previous = this.getOldPosition(current.previous);
-       if (current.next != null)
-               next = this.getOldPosition(current.next);
-       if (previous != null)
-               previous.next = current.next;
-       if (next != null)
-               next.previous = current.previous;
-       
-}
-private void removeElementInfo(IJavaElement element) {
-       this.infos.remove(element);
-}
-public String toString() {
-       StringBuffer buffer = new StringBuffer();
-       buffer.append("Built delta:\n"); //$NON-NLS-1$
-       buffer.append(this.delta.toString());
-       return buffer.toString();
-}
-/**
- * Trims deletion deltas to only report the highest level of deletion
- */
-private void trimDelta(JavaElementDelta delta) {
-       if (delta.getKind() == IJavaElementDelta.REMOVED) {
-               IJavaElementDelta[] children = delta.getAffectedChildren();
-               for(int i = 0, length = children.length; i < length; i++) {
-                       delta.removeAffectedChild((JavaElementDelta)children[i]);
+
+       /**
+        * Fills the newPositions hashtable with the new position information
+        */
+       private void recordNewPositions(IJavaElement newElement, int depth) {
+               if (depth < this.maxDepth && newElement instanceof IParent) {
+                       JavaElementInfo info = null;
+                       try {
+                               info = (JavaElementInfo) ((JavaElement) newElement)
+                                               .getElementInfo();
+                       } catch (JavaModelException npe) {
+                               return;
+                       }
+
+                       IJavaElement[] children = info.getChildren();
+                       if (children != null) {
+                               insertPositions(children, true);
+                               for (int i = 0, length = children.length; i < length; i++) {
+                                       recordNewPositions(children[i], depth + 1);
+                               }
+                       }
                }
-       } else {
-               IJavaElementDelta[] children = delta.getAffectedChildren();
-               for(int i = 0, length = children.length; i < length; i++) {
-                       trimDelta((JavaElementDelta)children[i]);
+       }
+
+       /**
+        * Repairs the positioning information after an element has been removed
+        */
+       private void removed(IJavaElement element) {
+               this.removed.add(element);
+               ListItem current = this.getOldPosition(element);
+               ListItem previous = null, next = null;
+               if (current.previous != null)
+                       previous = this.getOldPosition(current.previous);
+               if (current.next != null)
+                       next = this.getOldPosition(current.next);
+               if (previous != null)
+                       previous.next = current.next;
+               if (next != null)
+                       next.previous = current.previous;
+
+       }
+
+       private void removeElementInfo(IJavaElement element) {
+               this.infos.remove(element);
+       }
+
+       public String toString() {
+               StringBuffer buffer = new StringBuffer();
+               buffer.append("Built delta:\n"); //$NON-NLS-1$
+               buffer.append(this.delta.toString());
+               return buffer.toString();
+       }
+
+       /**
+        * Trims deletion deltas to only report the highest level of deletion
+        */
+       private void trimDelta(JavaElementDelta delta) {
+               if (delta.getKind() == IJavaElementDelta.REMOVED) {
+                       IJavaElementDelta[] children = delta.getAffectedChildren();
+                       for (int i = 0, length = children.length; i < length; i++) {
+                               delta.removeAffectedChild((JavaElementDelta) children[i]);
+                       }
+               } else {
+                       IJavaElementDelta[] children = delta.getAffectedChildren();
+                       for (int i = 0, length = children.length; i < length; i++) {
+                               trimDelta((JavaElementDelta) children[i]);
+                       }
                }
        }
 }
-}