A massive organize imports and formatting of the sources using default Eclipse code...
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / core / DeltaProcessingState.java
index 015593b..89b0477 100644 (file)
@@ -37,101 +37,125 @@ import org.eclipse.core.runtime.Platform;
  * Keep the global states used during Java element delta processing.
  */
 public class DeltaProcessingState implements IResourceChangeListener {
-       
+
        /*
         * Collection of listeners for Java element deltas
         */
        public IElementChangedListener[] elementChangedListeners = new IElementChangedListener[5];
+
        public int[] elementChangedListenerMasks = new int[5];
+
        public int elementChangedListenerCount = 0;
-       
+
        /*
         * Collection of pre Java resource change listeners
         */
        public IResourceChangeListener[] preResourceChangeListeners = new IResourceChangeListener[1];
+
        public int preResourceChangeListenerCount = 0;
 
        /*
         * The delta processor for the current thread.
         */
        private ThreadLocal deltaProcessors = new ThreadLocal();
-       
+
        /* A table from IPath (from a classpath entry) to RootInfo */
        public HashMap roots = new HashMap();
-       
-       /* A table from IPath (from a classpath entry) to ArrayList of RootInfo
-        * Used when an IPath corresponds to more than one root */
+
+       /*
+        * A table from IPath (from a classpath entry) to ArrayList of RootInfo Used
+        * when an IPath corresponds to more than one root
+        */
        public HashMap otherRoots = new HashMap();
-       
-       /* A table from IPath (from a classpath entry) to RootInfo
-        * from the last time the delta processor was invoked. */
+
+       /*
+        * A table from IPath (from a classpath entry) to RootInfo from the last
+        * time the delta processor was invoked.
+        */
        public HashMap oldRoots = new HashMap();
-       
-       /* A table from IPath (from a classpath entry) to ArrayList of RootInfo
-        * from the last time the delta processor was invoked.
-        * Used when an IPath corresponds to more than one root */
+
+       /*
+        * A table from IPath (from a classpath entry) to ArrayList of RootInfo from
+        * the last time the delta processor was invoked. Used when an IPath
+        * corresponds to more than one root
+        */
        public HashMap oldOtherRoots = new HashMap();
-       
-       /* A table from IPath (a source attachment path from a classpath entry) to IPath (a root path) */
+
+       /*
+        * A table from IPath (a source attachment path from a classpath entry) to
+        * IPath (a root path)
+        */
        public HashMap sourceAttachments = new HashMap();
 
        /* Whether the roots tables should be recomputed */
        public boolean rootsAreStale = true;
-       
+
        /* Threads that are currently running initializeRoots() */
-       private Set initializingThreads = Collections.synchronizedSet(new HashSet());   
-       
+       private Set initializingThreads = Collections
+                       .synchronizedSet(new HashSet());
+
        public Hashtable externalTimeStamps = new Hashtable();
-       
+
        public HashMap projectUpdates = new HashMap();
 
        public static class ProjectUpdateInfo {
                JavaProject project;
+
                IClasspathEntry[] oldResolvedPath;
+
                IClasspathEntry[] newResolvedPath;
+
                IClasspathEntry[] newRawPath;
-               
+
                /**
-                * Update projects references so that the build order is consistent with the classpath
+                * Update projects references so that the build order is consistent with
+                * the classpath
                 */
-               public void updateProjectReferencesIfNecessary() throws JavaModelException {
-                       
-                       String[] oldRequired = this.project.projectPrerequisites(this.oldResolvedPath);
-       
+               public void updateProjectReferencesIfNecessary()
+                               throws JavaModelException {
+
+                       String[] oldRequired = this.project
+                                       .projectPrerequisites(this.oldResolvedPath);
+
                        if (this.newResolvedPath == null) {
-                               this.newResolvedPath = this.project.getResolvedClasspath(this.newRawPath, null, true, true, null/*no reverse map*/);
+                               this.newResolvedPath = this.project
+                                               .getResolvedClasspath(this.newRawPath, null, true,
+                                                               true, null/* no reverse map */);
                        }
-                       String[] newRequired = this.project.projectPrerequisites(this.newResolvedPath);
+                       String[] newRequired = this.project
+                                       .projectPrerequisites(this.newResolvedPath);
                        try {
                                IProject projectResource = this.project.getProject();
-                               IProjectDescription description = projectResource.getDescription();
-                                
-                               IProject[] projectReferences = description.getDynamicReferences();
-                               
+                               IProjectDescription description = projectResource
+                                               .getDescription();
+
+                               IProject[] projectReferences = description
+                                               .getDynamicReferences();
+
                                HashSet oldReferences = new HashSet(projectReferences.length);
-                               for (int i = 0; i < projectReferences.length; i++){
+                               for (int i = 0; i < projectReferences.length; i++) {
                                        String projectName = projectReferences[i].getName();
                                        oldReferences.add(projectName);
                                }
-                               HashSet newReferences = (HashSet)oldReferences.clone();
-               
-                               for (int i = 0; i < oldRequired.length; i++){
+                               HashSet newReferences = (HashSet) oldReferences.clone();
+
+                               for (int i = 0; i < oldRequired.length; i++) {
                                        String projectName = oldRequired[i];
                                        newReferences.remove(projectName);
                                }
-                               for (int i = 0; i < newRequired.length; i++){
+                               for (int i = 0; i < newRequired.length; i++) {
                                        String projectName = newRequired[i];
                                        newReferences.add(projectName);
                                }
-               
+
                                Iterator iter;
                                int newSize = newReferences.size();
-                               
+
                                checkIdentity: {
-                                       if (oldReferences.size() == newSize){
+                                       if (oldReferences.size() == newSize) {
                                                iter = newReferences.iterator();
-                                               while (iter.hasNext()){
-                                                       if (!oldReferences.contains(iter.next())){
+                                               while (iter.hasNext()) {
+                                                       if (!oldReferences.contains(iter.next())) {
                                                                break checkIdentity;
                                                        }
                                                }
@@ -141,53 +165,72 @@ public class DeltaProcessingState implements IResourceChangeListener {
                                String[] requiredProjectNames = new String[newSize];
                                int index = 0;
                                iter = newReferences.iterator();
-                               while (iter.hasNext()){
-                                       requiredProjectNames[index++] = (String)iter.next();
+                               while (iter.hasNext()) {
+                                       requiredProjectNames[index++] = (String) iter.next();
                                }
-                               Util.sort(requiredProjectNames); // ensure that if changed, the order is consistent
-                               
+                               Util.sort(requiredProjectNames); // ensure that if changed,
+                                                                                                       // the order is consistent
+
                                IProject[] requiredProjectArray = new IProject[newSize];
-                               IWorkspaceRoot wksRoot = projectResource.getWorkspace().getRoot();
-                               for (int i = 0; i < newSize; i++){
-                                       requiredProjectArray[i] = wksRoot.getProject(requiredProjectNames[i]);
+                               IWorkspaceRoot wksRoot = projectResource.getWorkspace()
+                                               .getRoot();
+                               for (int i = 0; i < newSize; i++) {
+                                       requiredProjectArray[i] = wksRoot
+                                                       .getProject(requiredProjectNames[i]);
                                }
                                description.setDynamicReferences(requiredProjectArray);
                                projectResource.setDescription(description, null);
-               
-                       } catch(CoreException e){
+
+                       } catch (CoreException e) {
                                throw new JavaModelException(e);
                        }
                }
        }
-       
-       
+
        /**
-        * Workaround for bug 15168 circular errors not reported  
-        * This is a cache of the projects before any project addition/deletion has started.
+        * Workaround for bug 15168 circular errors not reported This is a cache of
+        * the projects before any project addition/deletion has started.
         */
        public IJavaProject[] modelProjectsCache;
-       
+
        /*
-        * Need to clone defensively the listener information, in case some listener is reacting to some notification iteration by adding/changing/removing
+        * Need to clone defensively the listener information, in case some listener
+        * is reacting to some notification iteration by adding/changing/removing
         * any of the other (for example, if it deregisters itself).
         */
-       public void addElementChangedListener(IElementChangedListener listener, int eventMask) {
-               for (int i = 0; i < this.elementChangedListenerCount; i++){
-                       if (this.elementChangedListeners[i].equals(listener)){
-                               
-                               // only clone the masks, since we could be in the middle of notifications and one listener decide to change
+       public void addElementChangedListener(IElementChangedListener listener,
+                       int eventMask) {
+               for (int i = 0; i < this.elementChangedListenerCount; i++) {
+                       if (this.elementChangedListeners[i].equals(listener)) {
+
+                               // only clone the masks, since we could be in the middle of
+                               // notifications and one listener decide to change
                                // any event mask of another listeners (yet not notified).
                                int cloneLength = this.elementChangedListenerMasks.length;
-                               System.arraycopy(this.elementChangedListenerMasks, 0, this.elementChangedListenerMasks = new int[cloneLength], 0, cloneLength);
-                               this.elementChangedListenerMasks[i] = eventMask; // could be different
+                               System
+                                               .arraycopy(
+                                                               this.elementChangedListenerMasks,
+                                                               0,
+                                                               this.elementChangedListenerMasks = new int[cloneLength],
+                                                               0, cloneLength);
+                               this.elementChangedListenerMasks[i] = eventMask; // could be
+                                                                                                                                       // different
                                return;
                        }
                }
-               // may need to grow, no need to clone, since iterators will have cached original arrays and max boundary and we only add to the end.
+               // may need to grow, no need to clone, since iterators will have cached
+               // original arrays and max boundary and we only add to the end.
                int length;
-               if ((length = this.elementChangedListeners.length) == this.elementChangedListenerCount){
-                       System.arraycopy(this.elementChangedListeners, 0, this.elementChangedListeners = new IElementChangedListener[length*2], 0, length);
-                       System.arraycopy(this.elementChangedListenerMasks, 0, this.elementChangedListenerMasks = new int[length*2], 0, length);
+               if ((length = this.elementChangedListeners.length) == this.elementChangedListenerCount) {
+                       System
+                                       .arraycopy(
+                                                       this.elementChangedListeners,
+                                                       0,
+                                                       this.elementChangedListeners = new IElementChangedListener[length * 2],
+                                                       0, length);
+                       System.arraycopy(this.elementChangedListenerMasks, 0,
+                                       this.elementChangedListenerMasks = new int[length * 2], 0,
+                                       length);
                }
                this.elementChangedListeners[this.elementChangedListenerCount] = listener;
                this.elementChangedListenerMasks[this.elementChangedListenerCount] = eventMask;
@@ -195,62 +238,78 @@ public class DeltaProcessingState implements IResourceChangeListener {
        }
 
        public void addPreResourceChangedListener(IResourceChangeListener listener) {
-               for (int i = 0; i < this.preResourceChangeListenerCount; i++){
+               for (int i = 0; i < this.preResourceChangeListenerCount; i++) {
                        if (this.preResourceChangeListeners[i].equals(listener)) {
                                return;
                        }
                }
-               // may need to grow, no need to clone, since iterators will have cached original arrays and max boundary and we only add to the end.
+               // may need to grow, no need to clone, since iterators will have cached
+               // original arrays and max boundary and we only add to the end.
                int length;
-               if ((length = this.preResourceChangeListeners.length) == this.preResourceChangeListenerCount){
-                       System.arraycopy(this.preResourceChangeListeners, 0, this.preResourceChangeListeners = new IResourceChangeListener[length*2], 0, length);
+               if ((length = this.preResourceChangeListeners.length) == this.preResourceChangeListenerCount) {
+                       System
+                                       .arraycopy(
+                                                       this.preResourceChangeListeners,
+                                                       0,
+                                                       this.preResourceChangeListeners = new IResourceChangeListener[length * 2],
+                                                       0, length);
                }
                this.preResourceChangeListeners[this.preResourceChangeListenerCount] = listener;
                this.preResourceChangeListenerCount++;
        }
 
        public DeltaProcessor getDeltaProcessor() {
-               DeltaProcessor deltaProcessor = (DeltaProcessor)this.deltaProcessors.get();
-               if (deltaProcessor != null) return deltaProcessor;
-               deltaProcessor = new DeltaProcessor(this, JavaModelManager.getJavaModelManager());
+               DeltaProcessor deltaProcessor = (DeltaProcessor) this.deltaProcessors
+                               .get();
+               if (deltaProcessor != null)
+                       return deltaProcessor;
+               deltaProcessor = new DeltaProcessor(this, JavaModelManager
+                               .getJavaModelManager());
                this.deltaProcessors.set(deltaProcessor);
                return deltaProcessor;
        }
 
-       public void performClasspathResourceChange(JavaProject project, IClasspathEntry[] oldResolvedPath, IClasspathEntry[] newResolvedPath, IClasspathEntry[] newRawPath, boolean canChangeResources) throws JavaModelException {
-           ProjectUpdateInfo info = new ProjectUpdateInfo();
-           info.project = project;
-           info.oldResolvedPath = oldResolvedPath;
-           info.newResolvedPath = newResolvedPath;
-           info.newRawPath = newRawPath;
-           if (canChangeResources) {
-            this.projectUpdates.remove(project); // remove possibly awaiting one
-               info.updateProjectReferencesIfNecessary();
-               return;
-           }
-           this.recordProjectUpdate(info);
+       public void performClasspathResourceChange(JavaProject project,
+                       IClasspathEntry[] oldResolvedPath,
+                       IClasspathEntry[] newResolvedPath, IClasspathEntry[] newRawPath,
+                       boolean canChangeResources) throws JavaModelException {
+               ProjectUpdateInfo info = new ProjectUpdateInfo();
+               info.project = project;
+               info.oldResolvedPath = oldResolvedPath;
+               info.newResolvedPath = newResolvedPath;
+               info.newRawPath = newRawPath;
+               if (canChangeResources) {
+                       this.projectUpdates.remove(project); // remove possibly awaiting
+                                                                                                       // one
+                       info.updateProjectReferencesIfNecessary();
+                       return;
+               }
+               this.recordProjectUpdate(info);
        }
-       
+
        public void initializeRoots() {
-               
+
                // recompute root infos only if necessary
                HashMap newRoots = null;
                HashMap newOtherRoots = null;
                HashMap newSourceAttachments = null;
                if (this.rootsAreStale) {
                        Thread currentThread = Thread.currentThread();
-                       boolean addedCurrentThread = false;                     
+                       boolean addedCurrentThread = false;
                        try {
-                               // if reentering initialization (through a container initializer for example) no need to compute roots again
+                               // if reentering initialization (through a container initializer
+                               // for example) no need to compute roots again
                                // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=47213
-                               if (!this.initializingThreads.add(currentThread)) return;
+                               if (!this.initializingThreads.add(currentThread))
+                                       return;
                                addedCurrentThread = true;
 
                                newRoots = new HashMap();
                                newOtherRoots = new HashMap();
                                newSourceAttachments = new HashMap();
-               
-                               IJavaModel model = JavaModelManager.getJavaModelManager().getJavaModel();
+
+                               IJavaModel model = JavaModelManager.getJavaModelManager()
+                                               .getJavaModel();
                                IJavaProject[] projects;
                                try {
                                        projects = model.getJavaProjects();
@@ -260,50 +319,69 @@ public class DeltaProcessingState implements IResourceChangeListener {
                                }
                                for (int i = 0, length = projects.length; i < length; i++) {
                                        JavaProject project = (JavaProject) projects[i];
-//                                     IClasspathEntry[] classpath;
-//                                     try {
-//                                             classpath = project.getResolvedClasspath(true/*ignoreUnresolvedEntry*/, false/*don't generateMarkerOnError*/, false/*don't returnResolutionInProgress*/);
-//                                     } catch (JavaModelException e) {
-//                                             // continue with next project
-//                                             continue;
-//                                     }
-//                                     for (int j= 0, classpathLength = classpath.length; j < classpathLength; j++) {
-//                                             IClasspathEntry entry = classpath[j];
-//                                             if (entry.getEntryKind() == IClasspathEntry.CPE_PROJECT) continue;
-//                                             
-//                                             // root path
-//                                             IPath path = entry.getPath();
-//                                             if (newRoots.get(path) == null) {
-//                                                     newRoots.put(path, new DeltaProcessor.RootInfo(project, path, ((ClasspathEntry)entry).fullInclusionPatternChars(), ((ClasspathEntry)entry).fullExclusionPatternChars(), entry.getEntryKind()));
-//                                             } else {
-//                                                     ArrayList rootList = (ArrayList)newOtherRoots.get(path);
-//                                                     if (rootList == null) {
-//                                                             rootList = new ArrayList();
-//                                                             newOtherRoots.put(path, rootList);
-//                                                     }
-//                                                     rootList.add(new DeltaProcessor.RootInfo(project, path, ((ClasspathEntry)entry).fullInclusionPatternChars(), ((ClasspathEntry)entry).fullExclusionPatternChars(), entry.getEntryKind()));
-//                                             }
-//                                             
-//                                             // source attachment path
-//                                             if (entry.getEntryKind() != IClasspathEntry.CPE_LIBRARY) continue;
-//                                             QualifiedName qName = new QualifiedName(JavaCore.PLUGIN_ID, "sourceattachment: " + path.toOSString()); //$NON-NLS-1$;
-//                                             String propertyString = null;
-//                                             try {
-//                                                     propertyString = ResourcesPlugin.getWorkspace().getRoot().getPersistentProperty(qName);
-//                                             } catch (CoreException e) {
-//                                                     continue;
-//                                             }
-//                                             IPath sourceAttachmentPath;
-//                                             if (propertyString != null) {
-//                                                     int index= propertyString.lastIndexOf(PackageFragmentRoot.ATTACHMENT_PROPERTY_DELIMITER);
-//                                                     sourceAttachmentPath = (index < 0) ?  new Path(propertyString) : new Path(propertyString.substring(0, index));
-//                                             } else {
-//                                                     sourceAttachmentPath = entry.getSourceAttachmentPath();
-//                                             }
-//                                             if (sourceAttachmentPath != null) {
-//                                                     newSourceAttachments.put(sourceAttachmentPath, path);
-//                                             }
-//                                     }
+                                       // IClasspathEntry[] classpath;
+                                       // try {
+                                       // classpath =
+                                       // project.getResolvedClasspath(true/*ignoreUnresolvedEntry*/,
+                                       // false/*don't generateMarkerOnError*/, false/*don't
+                                       // returnResolutionInProgress*/);
+                                       // } catch (JavaModelException e) {
+                                       // // continue with next project
+                                       // continue;
+                                       // }
+                                       // for (int j= 0, classpathLength = classpath.length; j <
+                                       // classpathLength; j++) {
+                                       // IClasspathEntry entry = classpath[j];
+                                       // if (entry.getEntryKind() == IClasspathEntry.CPE_PROJECT)
+                                       // continue;
+                                       //                                              
+                                       // // root path
+                                       // IPath path = entry.getPath();
+                                       // if (newRoots.get(path) == null) {
+                                       // newRoots.put(path, new DeltaProcessor.RootInfo(project,
+                                       // path,
+                                       // ((ClasspathEntry)entry).fullInclusionPatternChars(),
+                                       // ((ClasspathEntry)entry).fullExclusionPatternChars(),
+                                       // entry.getEntryKind()));
+                                       // } else {
+                                       // ArrayList rootList = (ArrayList)newOtherRoots.get(path);
+                                       // if (rootList == null) {
+                                       // rootList = new ArrayList();
+                                       // newOtherRoots.put(path, rootList);
+                                       // }
+                                       // rootList.add(new DeltaProcessor.RootInfo(project, path,
+                                       // ((ClasspathEntry)entry).fullInclusionPatternChars(),
+                                       // ((ClasspathEntry)entry).fullExclusionPatternChars(),
+                                       // entry.getEntryKind()));
+                                       // }
+                                       //                                              
+                                       // // source attachment path
+                                       // if (entry.getEntryKind() != IClasspathEntry.CPE_LIBRARY)
+                                       // continue;
+                                       // QualifiedName qName = new
+                                       // QualifiedName(JavaCore.PLUGIN_ID, "sourceattachment: " +
+                                       // path.toOSString()); //$NON-NLS-1$;
+                                       // String propertyString = null;
+                                       // try {
+                                       // propertyString =
+                                       // ResourcesPlugin.getWorkspace().getRoot().getPersistentProperty(qName);
+                                       // } catch (CoreException e) {
+                                       // continue;
+                                       // }
+                                       // IPath sourceAttachmentPath;
+                                       // if (propertyString != null) {
+                                       // int index=
+                                       // propertyString.lastIndexOf(PackageFragmentRoot.ATTACHMENT_PROPERTY_DELIMITER);
+                                       // sourceAttachmentPath = (index < 0) ? new
+                                       // Path(propertyString) : new
+                                       // Path(propertyString.substring(0, index));
+                                       // } else {
+                                       // sourceAttachmentPath = entry.getSourceAttachmentPath();
+                                       // }
+                                       // if (sourceAttachmentPath != null) {
+                                       // newSourceAttachments.put(sourceAttachmentPath, path);
+                                       // }
+                                       // }
                                }
                        } finally {
                                if (addedCurrentThread) {
@@ -311,10 +389,11 @@ public class DeltaProcessingState implements IResourceChangeListener {
                                }
                        }
                }
-               synchronized(this) {
+               synchronized (this) {
                        this.oldRoots = this.roots;
-                       this.oldOtherRoots = this.otherRoots;                   
-                       if (this.rootsAreStale && newRoots != null) { // double check again
+                       this.oldOtherRoots = this.otherRoots;
+                       if (this.rootsAreStale && newRoots != null) { // double check
+                                                                                                                       // again
                                this.roots = newRoots;
                                this.otherRoots = newOtherRoots;
                                this.sourceAttachments = newSourceAttachments;
@@ -324,46 +403,55 @@ public class DeltaProcessingState implements IResourceChangeListener {
        }
 
        public synchronized void recordProjectUpdate(ProjectUpdateInfo newInfo) {
-           
-           JavaProject project = newInfo.project;
-           ProjectUpdateInfo oldInfo = (ProjectUpdateInfo) this.projectUpdates.get(project);
-           if (oldInfo != null) { // refresh new classpath information
-               oldInfo.newRawPath = newInfo.newRawPath;
-               oldInfo.newResolvedPath = newInfo.newResolvedPath;
-           } else {
-               this.projectUpdates.put(project, newInfo);
-           }
+
+               JavaProject project = newInfo.project;
+               ProjectUpdateInfo oldInfo = (ProjectUpdateInfo) this.projectUpdates
+                               .get(project);
+               if (oldInfo != null) { // refresh new classpath information
+                       oldInfo.newRawPath = newInfo.newRawPath;
+                       oldInfo.newResolvedPath = newInfo.newResolvedPath;
+               } else {
+                       this.projectUpdates.put(project, newInfo);
+               }
        }
+
        public synchronized ProjectUpdateInfo[] removeAllProjectUpdates() {
-           int length = this.projectUpdates.size();
-           if (length == 0) return null;
-           ProjectUpdateInfo[]  updates = new ProjectUpdateInfo[length];
-           this.projectUpdates.values().toArray(updates);
-           this.projectUpdates.clear();
-           return updates;
+               int length = this.projectUpdates.size();
+               if (length == 0)
+                       return null;
+               ProjectUpdateInfo[] updates = new ProjectUpdateInfo[length];
+               this.projectUpdates.values().toArray(updates);
+               this.projectUpdates.clear();
+               return updates;
        }
-       
+
        public void removeElementChangedListener(IElementChangedListener listener) {
-               
-               for (int i = 0; i < this.elementChangedListenerCount; i++){
-                       
-                       if (this.elementChangedListeners[i].equals(listener)){
-                               
-                               // need to clone defensively since we might be in the middle of listener notifications (#fire)
+
+               for (int i = 0; i < this.elementChangedListenerCount; i++) {
+
+                       if (this.elementChangedListeners[i].equals(listener)) {
+
+                               // need to clone defensively since we might be in the middle of
+                               // listener notifications (#fire)
                                int length = this.elementChangedListeners.length;
                                IElementChangedListener[] newListeners = new IElementChangedListener[length];
-                               System.arraycopy(this.elementChangedListeners, 0, newListeners, 0, i);
+                               System.arraycopy(this.elementChangedListeners, 0, newListeners,
+                                               0, i);
                                int[] newMasks = new int[length];
-                               System.arraycopy(this.elementChangedListenerMasks, 0, newMasks, 0, i);
-                               
+                               System.arraycopy(this.elementChangedListenerMasks, 0, newMasks,
+                                               0, i);
+
                                // copy trailing listeners
                                int trailingLength = this.elementChangedListenerCount - i - 1;
-                               if (trailingLength > 0){
-                                       System.arraycopy(this.elementChangedListeners, i+1, newListeners, i, trailingLength);
-                                       System.arraycopy(this.elementChangedListenerMasks, i+1, newMasks, i, trailingLength);
+                               if (trailingLength > 0) {
+                                       System.arraycopy(this.elementChangedListeners, i + 1,
+                                                       newListeners, i, trailingLength);
+                                       System.arraycopy(this.elementChangedListenerMasks, i + 1,
+                                                       newMasks, i, trailingLength);
                                }
-                               
-                               // update manager listener state (#fire need to iterate over original listeners through a local variable to hold onto
+
+                               // update manager listener state (#fire need to iterate over
+                               // original listeners through a local variable to hold onto
                                // the original ones)
                                this.elementChangedListeners = newListeners;
                                this.elementChangedListenerMasks = newMasks;
@@ -373,24 +461,30 @@ public class DeltaProcessingState implements IResourceChangeListener {
                }
        }
 
-       public void removePreResourceChangedListener(IResourceChangeListener listener) {
-               
-               for (int i = 0; i < this.preResourceChangeListenerCount; i++){
-                       
-                       if (this.preResourceChangeListeners[i].equals(listener)){
-                               
-                               // need to clone defensively since we might be in the middle of listener notifications (#fire)
+       public void removePreResourceChangedListener(
+                       IResourceChangeListener listener) {
+
+               for (int i = 0; i < this.preResourceChangeListenerCount; i++) {
+
+                       if (this.preResourceChangeListeners[i].equals(listener)) {
+
+                               // need to clone defensively since we might be in the middle of
+                               // listener notifications (#fire)
                                int length = this.preResourceChangeListeners.length;
                                IResourceChangeListener[] newListeners = new IResourceChangeListener[length];
-                               System.arraycopy(this.preResourceChangeListeners, 0, newListeners, 0, i);
-                               
+                               System.arraycopy(this.preResourceChangeListeners, 0,
+                                               newListeners, 0, i);
+
                                // copy trailing listeners
-                               int trailingLength = this.preResourceChangeListenerCount - i - 1;
-                               if (trailingLength > 0){
-                                       System.arraycopy(this.preResourceChangeListeners, i+1, newListeners, i, trailingLength);
+                               int trailingLength = this.preResourceChangeListenerCount - i
+                                               - 1;
+                               if (trailingLength > 0) {
+                                       System.arraycopy(this.preResourceChangeListeners, i + 1,
+                                                       newListeners, i, trailingLength);
                                }
-                               
-                               // update manager listener state (#fire need to iterate over original listeners through a local variable to hold onto
+
+                               // update manager listener state (#fire need to iterate over
+                               // original listeners through a local variable to hold onto
                                // the original ones)
                                this.preResourceChangeListeners = newListeners;
                                this.preResourceChangeListenerCount--;
@@ -403,12 +497,16 @@ public class DeltaProcessingState implements IResourceChangeListener {
                boolean isPostChange = event.getType() == IResourceChangeEvent.POST_CHANGE;
                if (isPostChange) {
                        for (int i = 0; i < this.preResourceChangeListenerCount; i++) {
-                               // wrap callbacks with Safe runnable for subsequent listeners to be called when some are causing grief
+                               // wrap callbacks with Safe runnable for subsequent listeners to
+                               // be called when some are causing grief
                                final IResourceChangeListener listener = this.preResourceChangeListeners[i];
                                Platform.run(new ISafeRunnable() {
                                        public void handleException(Throwable exception) {
-                                               Util.log(exception, "Exception occurred in listener of pre Java resource change notification"); //$NON-NLS-1$
+                                               Util
+                                                               .log(exception,
+                                                                               "Exception occurred in listener of pre Java resource change notification"); //$NON-NLS-1$
                                        }
+
                                        public void run() throws Exception {
                                                listener.resourceChanged(event);
                                        }
@@ -418,51 +516,59 @@ public class DeltaProcessingState implements IResourceChangeListener {
                try {
                        getDeltaProcessor().resourceChanged(event);
                } finally {
-                       // TODO (jerome) see 47631, may want to get rid of following so as to reuse delta processor ? 
+                       // TODO (jerome) see 47631, may want to get rid of following so as
+                       // to reuse delta processor ?
                        if (isPostChange) {
                                this.deltaProcessors.set(null);
                        }
                }
 
        }
-       
+
        /*
-        * Update the roots that are affected by the addition or the removal of the given container resource.
+        * Update the roots that are affected by the addition or the removal of the
+        * given container resource.
         */
-//     public synchronized void updateRoots(IPath containerPath, IResourceDelta containerDelta, DeltaProcessor deltaProcessor) {
-//             Map updatedRoots;
-//             Map otherUpdatedRoots;
-//             if (containerDelta.getKind() == IResourceDelta.REMOVED) {
-//                     updatedRoots = this.oldRoots;
-//                     otherUpdatedRoots = this.oldOtherRoots;
-//             } else {
-//                     updatedRoots = this.roots;
-//                     otherUpdatedRoots = this.otherRoots;
-//             }
-//             Iterator iterator = updatedRoots.keySet().iterator();
-//             while (iterator.hasNext()) {
-//                     IPath path = (IPath)iterator.next();
-//                     if (containerPath.isPrefixOf(path) && !containerPath.equals(path)) {
-//                             IResourceDelta rootDelta = containerDelta.findMember(path.removeFirstSegments(1));
-//                             if (rootDelta == null) continue;
-//                             DeltaProcessor.RootInfo rootInfo = (DeltaProcessor.RootInfo)updatedRoots.get(path);
-//     
-//                             if (!rootInfo.project.getPath().isPrefixOf(path)) { // only consider roots that are not included in the container
-//                                     deltaProcessor.updateCurrentDeltaAndIndex(rootDelta, IJavaElement.PACKAGE_FRAGMENT_ROOT, rootInfo);
-//                             }
-//                             
-//                             ArrayList rootList = (ArrayList)otherUpdatedRoots.get(path);
-//                             if (rootList != null) {
-//                                     Iterator otherProjects = rootList.iterator();
-//                                     while (otherProjects.hasNext()) {
-//                                             rootInfo = (DeltaProcessor.RootInfo)otherProjects.next();
-//                                             if (!rootInfo.project.getPath().isPrefixOf(path)) { // only consider roots that are not included in the container
-//                                                     deltaProcessor.updateCurrentDeltaAndIndex(rootDelta, IJavaElement.PACKAGE_FRAGMENT_ROOT, rootInfo);
-//                                             }
-//                                     }
-//                             }
-//                     }
-//             }
-//     }
-
+       // public synchronized void updateRoots(IPath containerPath, IResourceDelta
+       // containerDelta, DeltaProcessor deltaProcessor) {
+       // Map updatedRoots;
+       // Map otherUpdatedRoots;
+       // if (containerDelta.getKind() == IResourceDelta.REMOVED) {
+       // updatedRoots = this.oldRoots;
+       // otherUpdatedRoots = this.oldOtherRoots;
+       // } else {
+       // updatedRoots = this.roots;
+       // otherUpdatedRoots = this.otherRoots;
+       // }
+       // Iterator iterator = updatedRoots.keySet().iterator();
+       // while (iterator.hasNext()) {
+       // IPath path = (IPath)iterator.next();
+       // if (containerPath.isPrefixOf(path) && !containerPath.equals(path)) {
+       // IResourceDelta rootDelta =
+       // containerDelta.findMember(path.removeFirstSegments(1));
+       // if (rootDelta == null) continue;
+       // DeltaProcessor.RootInfo rootInfo =
+       // (DeltaProcessor.RootInfo)updatedRoots.get(path);
+       //      
+       // if (!rootInfo.project.getPath().isPrefixOf(path)) { // only consider
+       // roots that are not included in the container
+       // deltaProcessor.updateCurrentDeltaAndIndex(rootDelta,
+       // IJavaElement.PACKAGE_FRAGMENT_ROOT, rootInfo);
+       // }
+       //                              
+       // ArrayList rootList = (ArrayList)otherUpdatedRoots.get(path);
+       // if (rootList != null) {
+       // Iterator otherProjects = rootList.iterator();
+       // while (otherProjects.hasNext()) {
+       // rootInfo = (DeltaProcessor.RootInfo)otherProjects.next();
+       // if (!rootInfo.project.getPath().isPrefixOf(path)) { // only consider
+       // roots that are not included in the container
+       // deltaProcessor.updateCurrentDeltaAndIndex(rootDelta,
+       // IJavaElement.PACKAGE_FRAGMENT_ROOT, rootInfo);
+       // }
+       // }
+       // }
+       // }
+       // }
+       // }
 }