Refactory: remove unused classes, imports, fields and methods.
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / core / CopyResourceElementsOperation.java
index 2e30065..001c096 100644 (file)
@@ -1,10 +1,10 @@
 /*******************************************************************************
  * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
+ * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Common Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/cpl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,13 +28,13 @@ import net.sourceforge.phpdt.core.IJavaProject;
 import net.sourceforge.phpdt.core.IPackageFragment;
 import net.sourceforge.phpdt.core.IPackageFragmentRoot;
 import net.sourceforge.phpdt.core.IType;
+import net.sourceforge.phpdt.core.JavaCore;
 import net.sourceforge.phpdt.core.JavaModelException;
 import net.sourceforge.phpdt.core.jdom.DOMException;
 import net.sourceforge.phpdt.core.jdom.DOMFactory;
 import net.sourceforge.phpdt.core.jdom.IDOMCompilationUnit;
 import net.sourceforge.phpdt.core.jdom.IDOMNode;
-import net.sourceforge.phpdt.core.jdom.IDOMPackage;
-import net.sourceforge.phpeclipse.PHPCore;
+import net.sourceforge.phpdt.internal.core.util.Util;
 
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
@@ -46,78 +46,88 @@ import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 
 /**
- * This operation copies/moves/renames a collection of resources from their current
- * container to a new container, optionally renaming the
- * elements.
- * <p>Notes:<ul>
- *    <li>If there is already an resource with the same name in
- *    the new container, the operation either overwrites or aborts,
- *    depending on the collision policy setting. The default setting is
- *       abort.
- *
- *    <li>When a compilation unit is copied to a new package, the
- *    package declaration in the compilation unit is automatically updated.
- *
- *    <li>The collection of elements being copied must all share the
- *    same type of container.
- *
- *    <li>This operation can be used to copy and rename elements within
- *    the same container. 
- *
- *    <li>This operation only copies compilation units and package fragments.
- *    It does not copy package fragment roots - a platform operation must be used for that.
+ * This operation copies/moves/renames a collection of resources from their
+ * current container to a new container, optionally renaming the elements.
+ * <p>
+ * Notes:
+ * <ul>
+ * <li>If there is already an resource with the same name in the new container,
+ * the operation either overwrites or aborts, depending on the collision policy
+ * setting. The default setting is abort.
+ * 
+ * <li>When a compilation unit is copied to a new package, the package
+ * declaration in the compilation unit is automatically updated.
+ * 
+ * <li>The collection of elements being copied must all share the same type of
+ * container.
+ * 
+ * <li>This operation can be used to copy and rename elements within the same
+ * container.
+ * 
+ * <li>This operation only copies compilation units and package fragments. It
+ * does not copy package fragment roots - a platform operation must be used for
+ * that.
  * </ul>
- *
+ * 
  */
 public class CopyResourceElementsOperation extends MultiOperation {
        /**
-        * A collection of renamed compilation units.  These cus do
-        * not need to be saved as they no longer exist.
+        * A collection of renamed compilation units. These cus do not need to be
+        * saved as they no longer exist.
         */
        protected ArrayList fRenamedCompilationUnits = null;
+
        /**
-        * Table specifying deltas for elements being 
-        * copied/moved/renamed. Keyed by elements' project(s), and
-        * values are the corresponding deltas.
+        * Table specifying deltas for elements being copied/moved/renamed. Keyed by
+        * elements' project(s), and values are the corresponding deltas.
         */
-       protected Map fDeltasPerProject= new HashMap(1);
+       protected Map fDeltasPerProject = new HashMap(1);
+
        /**
         * The <code>DOMFactory</code> used to manipulate the source code of
         * <code>ICompilationUnit</code>.
         */
        protected DOMFactory fFactory;
+
        /**
         * The list of new resources created during this operation.
         */
        protected ArrayList fCreatedElements;
+
        /**
-        * When executed, this operation will copy the given resources to the
-        * given containers.  The resources and destination containers must be in
-        * the correct order. If there is > 1 destination, the number of destinations
+        * When executed, this operation will copy the given resources to the given
+        * containers. The resources and destination containers must be in the
+        * correct order. If there is > 1 destination, the number of destinations
         * must be the same as the number of resources being copied/moved.
         */
-       public CopyResourceElementsOperation(IJavaElement[] resourcesToCopy, IJavaElement[] destContainers, boolean force) {
+       public CopyResourceElementsOperation(IJavaElement[] resourcesToCopy,
+                       IJavaElement[] destContainers, boolean force) {
                super(resourcesToCopy, destContainers, force);
                fFactory = new DOMFactory();
        }
+
        /**
-        * When executed, this operation will copy the given resources to the
-        * given container.
+        * When executed, this operation will copy the given resources to the given
+        * container.
         */
-       public CopyResourceElementsOperation(IJavaElement[] resourcesToCopy, IJavaElement destContainer, boolean force) {
-               this(resourcesToCopy, new IJavaElement[]{destContainer}, force);
-       }
+//     public CopyResourceElementsOperation(IJavaElement[] resourcesToCopy,
+//                     IJavaElement destContainer, boolean force) {
+//             this(resourcesToCopy, new IJavaElement[] { destContainer }, force);
+//     }
+
        /**
-        * Returns the children of <code>source</code> which are affected by this operation.
-        * If <code>source</code> is a <code>K_SOURCE</code>, these are the <code>.java</code>
-        * files, if it is a <code>K_BINARY</code>, they are the <code>.class</code> files.
+        * Returns the children of <code>source</code> which are affected by this
+        * operation. If <code>source</code> is a <code>K_SOURCE</code>, these
+        * are the <code>.java</code> files, if it is a <code>K_BINARY</code>,
+        * they are the <code>.class</code> files.
         */
-       private IResource[] collectResourcesOfInterest(IPackageFragment source) throws JavaModelException {
+       private IResource[] collectResourcesOfInterest(IPackageFragment source)
+                       throws JavaModelException {
                IJavaElement[] children = source.getChildren();
                int childOfInterest = IJavaElement.COMPILATION_UNIT;
-//             if (source.getKind() == IPackageFragmentRoot.K_BINARY) {
-//                     childOfInterest = IJavaElement.CLASS_FILE;
-//             }
+               // if (source.getKind() == IPackageFragmentRoot.K_BINARY) {
+               // childOfInterest = IJavaElement.CLASS_FILE;
+               // }
                ArrayList correctKindChildren = new ArrayList(children.length);
                for (int i = 0; i < children.length; i++) {
                        IJavaElement child = children[i];
@@ -126,54 +136,69 @@ public class CopyResourceElementsOperation extends MultiOperation {
                        }
                }
                // Gather non-java resources
-//             Object[] nonJavaResources = source.getNonJavaResources();
-//             int actualNonJavaResourceCount = 0;
-//             for (int i = 0, max = nonJavaResources.length; i < max; i++){
-//                     if (nonJavaResources[i] instanceof IResource) actualNonJavaResourceCount++;
-//             }
-//             IResource[] actualNonJavaResources = new IResource[actualNonJavaResourceCount];
-//             for (int i = 0, max = nonJavaResources.length, index = 0; i < max; i++){
-//                     if (nonJavaResources[i] instanceof IResource) actualNonJavaResources[index++] = (IResource)nonJavaResources[i];
-//             }
-               
-//             if (actualNonJavaResourceCount != 0) {
-//                     int correctKindChildrenSize = correctKindChildren.size();
-//                     IResource[] result = new IResource[correctKindChildrenSize + actualNonJavaResourceCount];
-//                     correctKindChildren.toArray(result);
-//                     System.arraycopy(actualNonJavaResources, 0, result, correctKindChildrenSize, actualNonJavaResourceCount);
-//                     return result;
-//             } else {
-                       IResource[] result = new IResource[correctKindChildren.size()];
-                       correctKindChildren.toArray(result);
-                       return result;
-//             }
+               // Object[] nonJavaResources = source.getNonJavaResources();
+               // int actualNonJavaResourceCount = 0;
+               // for (int i = 0, max = nonJavaResources.length; i < max; i++){
+               // if (nonJavaResources[i] instanceof IResource)
+               // actualNonJavaResourceCount++;
+               // }
+               // IResource[] actualNonJavaResources = new
+               // IResource[actualNonJavaResourceCount];
+               // for (int i = 0, max = nonJavaResources.length, index = 0; i < max;
+               // i++){
+               // if (nonJavaResources[i] instanceof IResource)
+               // actualNonJavaResources[index++] = (IResource)nonJavaResources[i];
+               // }
+
+               // if (actualNonJavaResourceCount != 0) {
+               // int correctKindChildrenSize = correctKindChildren.size();
+               // IResource[] result = new IResource[correctKindChildrenSize +
+               // actualNonJavaResourceCount];
+               // correctKindChildren.toArray(result);
+               // System.arraycopy(actualNonJavaResources, 0, result,
+               // correctKindChildrenSize, actualNonJavaResourceCount);
+               // return result;
+               // } else {
+               IResource[] result = new IResource[correctKindChildren.size()];
+               correctKindChildren.toArray(result);
+               return result;
+               // }
        }
+
        /**
         * Creates any destination package fragment(s) which do not exists yet.
         */
-       private void createNeededPackageFragments(IContainer sourceFolder, IPackageFragmentRoot root, String newFragName, boolean moveFolder) throws JavaModelException {
+       private void createNeededPackageFragments(IContainer sourceFolder,
+                       IPackageFragmentRoot root, String newFragName, boolean moveFolder)
+                       throws JavaModelException {
                IContainer parentFolder = (IContainer) root.getResource();
                JavaElementDelta projectDelta = null;
-               String[] names = net.sourceforge.phpdt.internal.core.Util.getTrimmedSimpleNames(newFragName);
+               String[] names = net.sourceforge.phpdt.internal.core.util.Util
+                               .getTrimmedSimpleNames(newFragName);
                StringBuffer sideEffectPackageName = new StringBuffer();
-               char[][] exclusionsPatterns = ((PackageFragmentRoot)root).fullExclusionPatternChars();
+               char[][] exclusionsPatterns = ((PackageFragmentRoot) root)
+                               .fullExclusionPatternChars();
                for (int i = 0; i < names.length; i++) {
                        String subFolderName = names[i];
                        sideEffectPackageName.append(subFolderName);
                        IResource subFolder = parentFolder.findMember(subFolderName);
                        if (subFolder == null) {
-                               // create deepest folder only if not a move (folder will be moved in processPackageFragmentResource)
-                               if (!(moveFolder && i == names.length-1)) {
-                                       createFolder(parentFolder, subFolderName, fForce);
+                               // create deepest folder only if not a move (folder will be
+                               // moved in processPackageFragmentResource)
+                               if (!(moveFolder && i == names.length - 1)) {
+                                       createFolder(parentFolder, subFolderName, force);
                                }
                                parentFolder = parentFolder.getFolder(new Path(subFolderName));
                                sourceFolder = sourceFolder.getFolder(new Path(subFolderName));
-                               if (sourceFolder.isReadOnly()) {
-                                       parentFolder.setReadOnly(true);
+                               if (sourceFolder.getResourceAttributes().isReadOnly()) {
+                                       parentFolder.getResourceAttributes().setReadOnly(true);
                                }
-                               IPackageFragment sideEffectPackage = root.getPackageFragment(sideEffectPackageName.toString());
-                               if (i < names.length - 1 // all but the last one are side effect packages
-                                               && !net.sourceforge.phpdt.internal.core.Util.isExcluded(parentFolder, exclusionsPatterns)) { 
+                               IPackageFragment sideEffectPackage = root
+                                               .getPackageFragment(sideEffectPackageName.toString());
+                               if (i < names.length - 1 // all but the last one are side
+                                                                                       // effect packages
+                                               && !net.sourceforge.phpdt.internal.core.util.Util
+                                                               .isExcluded(parentFolder, exclusionsPatterns)) {
                                        if (projectDelta == null) {
                                                projectDelta = getDeltaFor(root.getJavaProject());
                                        }
@@ -186,175 +211,227 @@ public class CopyResourceElementsOperation extends MultiOperation {
                        sideEffectPackageName.append('.');
                }
        }
+
        /**
         * Returns the <code>JavaElementDelta</code> for <code>javaProject</code>,
-        * creating it and putting it in <code>fDeltasPerProject</code> if
-        * it does not exist yet.
+        * creating it and putting it in <code>fDeltasPerProject</code> if it does
+        * not exist yet.
         */
        private JavaElementDelta getDeltaFor(IJavaProject javaProject) {
-               JavaElementDelta delta = (JavaElementDelta) fDeltasPerProject.get(javaProject);
+               JavaElementDelta delta = (JavaElementDelta) fDeltasPerProject
+                               .get(javaProject);
                if (delta == null) {
                        delta = new JavaElementDelta(javaProject);
                        fDeltasPerProject.put(javaProject, delta);
                }
                return delta;
        }
+
        /**
         * @see MultiOperation
         */
        protected String getMainTaskName() {
-               return net.sourceforge.phpdt.internal.core.Util.bind("operation.copyResourceProgress"); //$NON-NLS-1$
+               return net.sourceforge.phpdt.internal.core.util.Util
+                               .bind("operation.copyResourceProgress"); //$NON-NLS-1$
        }
+
        /**
-        * Sets the deltas to register the changes resulting from this operation
-        * for this source element and its destination.
-        * If the operation is a cross project operation<ul>
+        * Sets the deltas to register the changes resulting from this operation for
+        * this source element and its destination. If the operation is a cross
+        * project operation
+        * <ul>
         * <li>On a copy, the delta should be rooted in the dest project
-        * <li>On a move, two deltas are generated<ul>
-        *                      <li>one rooted in the source project
-        *                      <li>one rooted in the destination project</ul></ul>
-        * If the operation is rooted in a single project, the delta is rooted in that project
-        *       
+        * <li>On a move, two deltas are generated
+        * <ul>
+        * <li>one rooted in the source project
+        * <li>one rooted in the destination project
+        * </ul>
+        * </ul>
+        * If the operation is rooted in a single project, the delta is rooted in
+        * that project
+        * 
         */
-       protected void prepareDeltas(IJavaElement sourceElement, IJavaElement destinationElement, boolean isMove) {
-               if (net.sourceforge.phpdt.internal.core.Util.isExcluded(sourceElement) || net.sourceforge.phpdt.internal.core.Util.isExcluded(destinationElement)) return;
+       protected void prepareDeltas(IJavaElement sourceElement,
+                       IJavaElement destinationElement, boolean isMove) {
+               if (net.sourceforge.phpdt.internal.core.util.Util
+                               .isExcluded(sourceElement)
+                               || net.sourceforge.phpdt.internal.core.util.Util
+                                               .isExcluded(destinationElement))
+                       return;
                IJavaProject destProject = destinationElement.getJavaProject();
                if (isMove) {
                        IJavaProject sourceProject = sourceElement.getJavaProject();
-                       getDeltaFor(sourceProject).movedFrom(sourceElement, destinationElement);
+                       getDeltaFor(sourceProject).movedFrom(sourceElement,
+                                       destinationElement);
                        getDeltaFor(destProject).movedTo(destinationElement, sourceElement);
                } else {
                        getDeltaFor(destProject).added(destinationElement);
                }
        }
+
        /**
-        * Copies/moves a compilation unit with the name <code>newCUName</code>
-        * to the destination package.<br>
+        * Copies/moves a compilation unit with the name <code>newCUName</code> to
+        * the destination package.<br>
         * The package statement in the compilation unit is updated if necessary.
         * The main type of the compilation unit is renamed if necessary.
-        *
-        * @exception JavaModelException if the operation is unable to
-        * complete
+        * 
+        * @exception JavaModelException
+        *                if the operation is unable to complete
         */
-       private void processCompilationUnitResource(ICompilationUnit source, IPackageFragment dest) throws JavaModelException {
+       private void processCompilationUnitResource(ICompilationUnit source,
+                       IPackageFragment dest) throws JavaModelException {
                String newCUName = getNewNameFor(source);
-               String destName = (newCUName != null) ? newCUName : source.getElementName();
-               String newContent = updatedContent(source, dest, newCUName); // null if unchanged
-       
+               String destName = (newCUName != null) ? newCUName : source
+                               .getElementName();
+               String newContent = updatedContent(source, dest, newCUName); // null
+                                                                                                                                               // if
+                                                                                                                                               // unchanged
+
                // copy resource
-               IFile sourceResource = (IFile)(source.isWorkingCopy() ? source.getOriginalElement() : source).getResource();
-               IContainer destFolder = (IContainer)dest.getResource(); // can be an IFolder or an IProject
+               IFile sourceResource = (IFile) (source.isWorkingCopy() ? source
+                               .getOriginalElement() : source).getResource();
+               IContainer destFolder = (IContainer) dest.getResource(); // can be an
+                                                                                                                                       // IFolder
+                                                                                                                                       // or an
+                                                                                                                                       // IProject
                IFile destFile = destFolder.getFile(new Path(destName));
                if (!destFile.equals(sourceResource)) {
                        try {
                                if (destFile.exists()) {
-                                       if (fForce) {
+                                       if (force) {
                                                // we can remove it
                                                deleteResource(destFile, IResource.KEEP_HISTORY);
                                        } else {
                                                // abort
-                                               throw new JavaModelException(new JavaModelStatus(
-                                                       IJavaModelStatusConstants.NAME_COLLISION, 
-                                                       Util.bind("status.nameCollision", destFile.getFullPath().toString()))); //$NON-NLS-1$
+                                               throw new JavaModelException(
+                                                               new JavaModelStatus(
+                                                                               IJavaModelStatusConstants.NAME_COLLISION,
+                                                                               Util
+                                                                                               .bind(
+                                                                                                               "status.nameCollision", destFile.getFullPath().toString()))); //$NON-NLS-1$
                                        }
                                }
-                               int flags = fForce ? IResource.FORCE : IResource.NONE;
+                               int flags = force ? IResource.FORCE : IResource.NONE;
                                if (this.isMove()) {
                                        flags |= IResource.KEEP_HISTORY;
-                                       sourceResource.move(destFile.getFullPath(), flags, getSubProgressMonitor(1));
+                                       sourceResource.move(destFile.getFullPath(), flags,
+                                                       getSubProgressMonitor(1));
                                } else {
-                                       if (newContent != null) flags |= IResource.KEEP_HISTORY;
-                                       sourceResource.copy(destFile.getFullPath(), flags, getSubProgressMonitor(1));
+                                       if (newContent != null)
+                                               flags |= IResource.KEEP_HISTORY;
+                                       sourceResource.copy(destFile.getFullPath(), flags,
+                                                       getSubProgressMonitor(1));
                                }
-                               this.setAttribute(HAS_MODIFIED_RESOURCE_ATTR, TRUE); 
+                               this.setAttribute(HAS_MODIFIED_RESOURCE_ATTR, TRUE);
                        } catch (JavaModelException e) {
                                throw e;
                        } catch (CoreException e) {
                                throw new JavaModelException(e);
                        }
-       
+
                        // update new resource content
                        try {
-                               if (newContent != null){
-                                       String encoding = source.getJavaProject().getOption(PHPCore.CORE_ENCODING, true);
-                                       destFile.setContents(
-                                               new ByteArrayInputStream(encoding == null ? newContent.getBytes() : newContent.getBytes(encoding)), 
-                                               fForce ? IResource.FORCE | IResource.KEEP_HISTORY : IResource.KEEP_HISTORY,
-                                               getSubProgressMonitor(1));
+                               if (newContent != null) {
+                                       String encoding = source.getJavaProject().getOption(
+                                                       JavaCore.CORE_ENCODING, true);
+                                       destFile.setContents(new ByteArrayInputStream(
+                                                       encoding == null ? newContent.getBytes()
+                                                                       : newContent.getBytes(encoding)),
+                                                       force ? IResource.FORCE | IResource.KEEP_HISTORY
+                                                                       : IResource.KEEP_HISTORY,
+                                                       getSubProgressMonitor(1));
                                }
-                       } catch(IOException e) {
-                               throw new JavaModelException(e, IJavaModelStatusConstants.IO_EXCEPTION);
+                       } catch (IOException e) {
+                               throw new JavaModelException(e,
+                                               IJavaModelStatusConstants.IO_EXCEPTION);
                        } catch (CoreException e) {
                                throw new JavaModelException(e);
                        }
-               
+
                        // register the correct change deltas
                        ICompilationUnit destCU = dest.getCompilationUnit(destName);
                        prepareDeltas(source, destCU, isMove());
                        if (newCUName != null) {
-                               //the main type has been renamed
+                               // the main type has been renamed
                                String oldName = source.getElementName();
                                oldName = oldName.substring(0, oldName.length() - 5);
                                String newName = newCUName;
                                newName = newName.substring(0, newName.length() - 5);
-                               prepareDeltas(source.getType(oldName), destCU.getType(newName), isMove());
+                               prepareDeltas(source.getType(oldName), destCU.getType(newName),
+                                               isMove());
                        }
                } else {
-                       if (!fForce) {
-                               throw new JavaModelException(new JavaModelStatus(
-                                       IJavaModelStatusConstants.NAME_COLLISION, 
-                                       Util.bind("status.nameCollision", destFile.getFullPath().toString()))); //$NON-NLS-1$
+                       if (!force) {
+                               throw new JavaModelException(
+                                               new JavaModelStatus(
+                                                               IJavaModelStatusConstants.NAME_COLLISION,
+                                                               Util
+                                                                               .bind(
+                                                                                               "status.nameCollision", destFile.getFullPath().toString()))); //$NON-NLS-1$
                        }
                        // update new resource content
-                       // in case we do a saveas on the same resource we have to simply update the contents
+                       // in case we do a saveas on the same resource we have to simply
+                       // update the contents
                        // see http://dev.eclipse.org/bugs/show_bug.cgi?id=9351
                        try {
-                               if (newContent != null){
-                                       String encoding = source.getJavaProject().getOption(PHPCore.CORE_ENCODING, true);
-                                       destFile.setContents(
-                                               new ByteArrayInputStream(encoding == null ? newContent.getBytes() : newContent.getBytes(encoding)), 
-                                               fForce ? IResource.FORCE | IResource.KEEP_HISTORY : IResource.KEEP_HISTORY, 
-                                               getSubProgressMonitor(1));
+                               if (newContent != null) {
+                                       String encoding = source.getJavaProject().getOption(
+                                                       JavaCore.CORE_ENCODING, true);
+                                       destFile.setContents(new ByteArrayInputStream(
+                                                       encoding == null ? newContent.getBytes()
+                                                                       : newContent.getBytes(encoding)),
+                                                       force ? IResource.FORCE | IResource.KEEP_HISTORY
+                                                                       : IResource.KEEP_HISTORY,
+                                                       getSubProgressMonitor(1));
                                }
-                       } catch(IOException e) {
-                               throw new JavaModelException(e, IJavaModelStatusConstants.IO_EXCEPTION);
+                       } catch (IOException e) {
+                               throw new JavaModelException(e,
+                                               IJavaModelStatusConstants.IO_EXCEPTION);
                        } catch (CoreException e) {
                                throw new JavaModelException(e);
                        }
                }
        }
+
        /**
         * Process all of the changed deltas generated by this operation.
         */
        protected void processDeltas() {
-               for (Iterator deltas = this.fDeltasPerProject.values().iterator(); deltas.hasNext();){
+               for (Iterator deltas = this.fDeltasPerProject.values().iterator(); deltas
+                               .hasNext();) {
                        addDelta((IJavaElementDelta) deltas.next());
                }
        }
+
        /**
-        * @see MultiOperation
-        * This method delegates to <code>processCompilationUnitResource</code> or
-        * <code>processPackageFragmentResource</code>, depending on the type of
-        * <code>element</code>.
+        * @see MultiOperation This method delegates to
+        *      <code>processCompilationUnitResource</code> or
+        *      <code>processPackageFragmentResource</code>, depending on the
+        *      type of <code>element</code>.
         */
-       protected void processElement(IJavaElement element) throws JavaModelException {
+       protected void processElement(IJavaElement element)
+                       throws JavaModelException {
                IJavaElement dest = getDestinationParent(element);
                switch (element.getElementType()) {
-                       case IJavaElement.COMPILATION_UNIT :
-                               processCompilationUnitResource((ICompilationUnit) element, (IPackageFragment) dest);
-                               fCreatedElements.add(((IPackageFragment) dest).getCompilationUnit(element.getElementName()));
-                               break;
-                       case IJavaElement.PACKAGE_FRAGMENT :
-                               processPackageFragmentResource((IPackageFragment) element, (IPackageFragmentRoot) dest, getNewNameFor(element));
-                               break;
-                       default :
-                               throw new JavaModelException(new JavaModelStatus(IJavaModelStatusConstants.INVALID_ELEMENT_TYPES, element));
+               case IJavaElement.COMPILATION_UNIT:
+                       processCompilationUnitResource((ICompilationUnit) element,
+                                       (IPackageFragment) dest);
+                       fCreatedElements.add(((IPackageFragment) dest)
+                                       .getCompilationUnit(element.getElementName()));
+                       break;
+               case IJavaElement.PACKAGE_FRAGMENT:
+                       processPackageFragmentResource((IPackageFragment) element,
+                                       (IPackageFragmentRoot) dest, getNewNameFor(element));
+                       break;
+               default:
+                       throw new JavaModelException(new JavaModelStatus(
+                                       IJavaModelStatusConstants.INVALID_ELEMENT_TYPES, element));
                }
        }
+
        /**
-        * @see MultiOperation
-        * Overridden to allow special processing of <code>JavaElementDelta</code>s
-        * and <code>fResultElements</code>.
+        * @see MultiOperation Overridden to allow special processing of
+        *      <code>JavaElementDelta</code>s and <code>fResultElements</code>.
         */
        protected void processElements() throws JavaModelException {
                fCreatedElements = new ArrayList(fElementsToProcess.length);
@@ -363,27 +440,35 @@ public class CopyResourceElementsOperation extends MultiOperation {
                } catch (JavaModelException jme) {
                        throw jme;
                } finally {
-                       fResultElements = new IJavaElement[fCreatedElements.size()];
-                       fCreatedElements.toArray(fResultElements);
+                       resultElements = new IJavaElement[fCreatedElements.size()];
+                       fCreatedElements.toArray(resultElements);
                        processDeltas();
                }
        }
+
        /**
-        * Copies/moves a package fragment with the name <code>newName</code>
-        * to the destination package.<br>
-        *
-        * @exception JavaModelException if the operation is unable to
-        * complete
+        * Copies/moves a package fragment with the name <code>newName</code> to
+        * the destination package.<br>
+        * 
+        * @exception JavaModelException
+        *                if the operation is unable to complete
         */
-       private void processPackageFragmentResource(IPackageFragment source, IPackageFragmentRoot root, String newName) throws JavaModelException {
+       private void processPackageFragmentResource(IPackageFragment source,
+                       IPackageFragmentRoot root, String newName)
+                       throws JavaModelException {
                try {
-                       String newFragName = (newName == null) ? source.getElementName() : newName;
+                       String newFragName = (newName == null) ? source.getElementName()
+                                       : newName;
                        IPackageFragment newFrag = root.getPackageFragment(newFragName);
                        IResource[] resources = collectResourcesOfInterest(source);
-                       
-                       // if isMove() can we move the folder itself ? (see http://bugs.eclipse.org/bugs/show_bug.cgi?id=22458)
-                       boolean shouldMoveFolder = isMove() && !newFrag.getResource().exists(); // if new pkg fragment exists, it is an override
-                       IFolder srcFolder = (IFolder)source.getResource();
+
+                       // if isMove() can we move the folder itself ? (see
+                       // http://bugs.eclipse.org/bugs/show_bug.cgi?id=22458)
+                       boolean shouldMoveFolder = isMove()
+                                       && !newFrag.getResource().exists(); // if new pkg fragment
+                                                                                                               // exists, it is an
+                                                                                                               // override
+                       IFolder srcFolder = (IFolder) source.getResource();
                        IPath destPath = newFrag.getPath();
                        if (shouldMoveFolder) {
                                // check if destination is not included in source
@@ -393,54 +478,74 @@ public class CopyResourceElementsOperation extends MultiOperation {
                                        // check if there are no sub-packages
                                        IResource[] members = srcFolder.members();
                                        for (int i = 0; i < members.length; i++) {
-                                               if ( members[i] instanceof IFolder) {
+                                               if (members[i] instanceof IFolder) {
                                                        shouldMoveFolder = false;
                                                        break;
                                                }
                                        }
-                               }       
+                               }
                        }
-                       createNeededPackageFragments((IContainer) source.getParent().getResource(), root, newFragName, shouldMoveFolder);
-       
+                       createNeededPackageFragments((IContainer) source.getParent()
+                                       .getResource(), root, newFragName, shouldMoveFolder);
+
                        // Process resources
                        if (shouldMoveFolder) {
                                // move underlying resource
-                               srcFolder.move(destPath, fForce, true /* keep history */, getSubProgressMonitor(1));
-                               this.setAttribute(HAS_MODIFIED_RESOURCE_ATTR, TRUE); 
+                               srcFolder.move(destPath, force, true /* keep history */,
+                                               getSubProgressMonitor(1));
+                               this.setAttribute(HAS_MODIFIED_RESOURCE_ATTR, TRUE);
                        } else {
                                // process the leaf resources
                                if (resources.length > 0) {
                                        if (isRename()) {
-                                               if (! destPath.equals(source.getPath())) {
+                                               if (!destPath.equals(source.getPath())) {
                                                        moveResources(resources, destPath);
                                                }
                                        } else if (isMove()) {
-                                               // we need to delete this resource if this operation wants to override existing resources
+                                               // we need to delete this resource if this operation
+                                               // wants to override existing resources
                                                for (int i = 0, max = resources.length; i < max; i++) {
-                                                       IResource destinationResource = ResourcesPlugin.getWorkspace().getRoot().findMember(destPath.append(resources[i].getName()));
+                                                       IResource destinationResource = ResourcesPlugin
+                                                                       .getWorkspace().getRoot().findMember(
+                                                                                       destPath.append(resources[i]
+                                                                                                       .getName()));
                                                        if (destinationResource != null) {
-                                                               if (fForce) {
-                                                                       deleteResource(destinationResource, IResource.KEEP_HISTORY);
+                                                               if (force) {
+                                                                       deleteResource(destinationResource,
+                                                                                       IResource.KEEP_HISTORY);
                                                                } else {
-                                                                       throw new JavaModelException(new JavaModelStatus(
-                                                                               IJavaModelStatusConstants.NAME_COLLISION, 
-                                                                               Util.bind("status.nameCollision", destinationResource.getFullPath().toString()))); //$NON-NLS-1$
+                                                                       throw new JavaModelException(
+                                                                                       new JavaModelStatus(
+                                                                                                       IJavaModelStatusConstants.NAME_COLLISION,
+                                                                                                       Util
+                                                                                                                       .bind(
+                                                                                                                                       "status.nameCollision", destinationResource.getFullPath().toString()))); //$NON-NLS-1$
                                                                }
                                                        }
                                                }
                                                moveResources(resources, destPath);
                                        } else {
-                                               // we need to delete this resource if this operation wants to override existing resources
+                                               // we need to delete this resource if this operation
+                                               // wants to override existing resources
                                                for (int i = 0, max = resources.length; i < max; i++) {
-                                                       IResource destinationResource = ResourcesPlugin.getWorkspace().getRoot().findMember(destPath.append(resources[i].getName()));
+                                                       IResource destinationResource = ResourcesPlugin
+                                                                       .getWorkspace().getRoot().findMember(
+                                                                                       destPath.append(resources[i]
+                                                                                                       .getName()));
                                                        if (destinationResource != null) {
-                                                               if (fForce) {
-                                                                       // we need to delete this resource if this operation wants to override existing resources
-                                                                       deleteResource(destinationResource, IResource.KEEP_HISTORY);
+                                                               if (force) {
+                                                                       // we need to delete this resource if this
+                                                                       // operation wants to override existing
+                                                                       // resources
+                                                                       deleteResource(destinationResource,
+                                                                                       IResource.KEEP_HISTORY);
                                                                } else {
-                                                                       throw new JavaModelException(new JavaModelStatus(
-                                                                               IJavaModelStatusConstants.NAME_COLLISION, 
-                                                                               Util.bind("status.nameCollision", destinationResource.getFullPath().toString()))); //$NON-NLS-1$
+                                                                       throw new JavaModelException(
+                                                                                       new JavaModelStatus(
+                                                                                                       IJavaModelStatusConstants.NAME_COLLISION,
+                                                                                                       Util
+                                                                                                                       .bind(
+                                                                                                                                       "status.nameCollision", destinationResource.getFullPath().toString()))); //$NON-NLS-1$
                                                                }
                                                        }
                                                }
@@ -448,17 +553,19 @@ public class CopyResourceElementsOperation extends MultiOperation {
                                        }
                                }
                        }
-       
+
                        // Discard empty old package (if still empty after the rename)
                        boolean isEmpty = true;
                        if (isMove()) {
-                               // delete remaining files in this package (.class file in the case where Proj=src=bin)
+                               // delete remaining files in this package (.class file in the
+                               // case where Proj=src=bin)
                                if (srcFolder.exists()) {
                                        IResource[] remaingFiles = srcFolder.members();
                                        for (int i = 0, length = remaingFiles.length; i < length; i++) {
                                                IResource file = remaingFiles[i];
                                                if (file instanceof IFile) {
-                                                       this.deleteResource(file, IResource.FORCE | IResource.KEEP_HISTORY);
+                                                       this.deleteResource(file, IResource.FORCE
+                                                                       | IResource.KEEP_HISTORY);
                                                } else {
                                                        isEmpty = false;
                                                }
@@ -470,33 +577,49 @@ public class CopyResourceElementsOperation extends MultiOperation {
                                        if (destPath.isPrefixOf(srcFolder.getFullPath())) {
                                                rootResource = newFrag.getResource();
                                        } else {
-                                               rootResource =  source.getParent().getResource();
+                                               rootResource = source.getParent().getResource();
                                        }
-                                       
+
                                        // delete recursively empty folders
                                        deleteEmptyPackageFragment(source, false, rootResource);
                                }
                        }
-       
+
                        // Update package statement in compilation unit if needed
-                       if (!newFrag.getElementName().equals(source.getElementName())) { // if package has been renamed, update the compilation units
+                       if (!newFrag.getElementName().equals(source.getElementName())) { // if
+                                                                                                                                                               // package
+                                                                                                                                                               // has
+                                                                                                                                                               // been
+                                                                                                                                                               // renamed,
+                                                                                                                                                               // update
+                                                                                                                                                               // the
+                                                                                                                                                               // compilation
+                                                                                                                                                               // units
                                for (int i = 0; i < resources.length; i++) {
                                        if (resources[i].getName().endsWith(".java")) { //$NON-NLS-1$
                                                // we only consider potential compilation units
-                                               ICompilationUnit cu = newFrag.getCompilationUnit(resources[i].getName());
-                                               IDOMCompilationUnit domCU = fFactory.createCompilationUnit(cu.getSource(), cu.getElementName());
+                                               ICompilationUnit cu = newFrag
+                                                               .getCompilationUnit(resources[i].getName());
+                                               IDOMCompilationUnit domCU = fFactory
+                                                               .createCompilationUnit(cu.getSource(), cu
+                                                                               .getElementName());
                                                if (domCU != null) {
                                                        updatePackageStatement(domCU, newFragName);
                                                        IBuffer buffer = cu.getBuffer();
-                                                       if (buffer == null) continue;
+                                                       if (buffer == null)
+                                                               continue;
                                                        String bufferContents = buffer.getContents();
-                                                       if (bufferContents == null) continue;
+                                                       if (bufferContents == null)
+                                                               continue;
                                                        String domCUContents = domCU.getContents();
                                                        String cuContents = null;
                                                        if (domCUContents != null) {
-                                                               cuContents = net.sourceforge.phpdt.internal.core.Util.normalizeCRs(domCU.getContents(), bufferContents);
+                                                               cuContents = net.sourceforge.phpdt.internal.core.util.Util
+                                                                               .normalizeCRs(domCU.getContents(),
+                                                                                               bufferContents);
                                                        } else {
-                                                               // See PR http://dev.eclipse.org/bugs/show_bug.cgi?id=11285
+                                                               // See PR
+                                                               // http://dev.eclipse.org/bugs/show_bug.cgi?id=11285
                                                                cuContents = bufferContents;//$NON-NLS-1$
                                                        }
                                                        buffer.setContents(cuContents);
@@ -505,53 +628,62 @@ public class CopyResourceElementsOperation extends MultiOperation {
                                        }
                                }
                        }
-       
-                       //register the correct change deltas
+
+                       // register the correct change deltas
                        prepareDeltas(source, newFrag, isMove() && isEmpty);
                } catch (DOMException dom) {
-                       throw new JavaModelException(dom, IJavaModelStatusConstants.DOM_EXCEPTION);
+                       throw new JavaModelException(dom,
+                                       IJavaModelStatusConstants.DOM_EXCEPTION);
                } catch (JavaModelException e) {
                        throw e;
                } catch (CoreException ce) {
                        throw new JavaModelException(ce);
                }
        }
+
        /**
-        * Updates the content of <code>cu</code>, modifying the type name and/or package
-        * declaration as necessary.
-        *
+        * Updates the content of <code>cu</code>, modifying the type name and/or
+        * package declaration as necessary.
+        * 
         * @return the new source
         */
-       private String updatedContent(ICompilationUnit cu, IPackageFragment dest, String newName) throws JavaModelException {
+       private String updatedContent(ICompilationUnit cu, IPackageFragment dest,
+                       String newName) throws JavaModelException {
                String currPackageName = cu.getParent().getElementName();
                String destPackageName = dest.getElementName();
                if (currPackageName.equals(destPackageName) && newName == null) {
-                       return null; //nothing to change
+                       return null; // nothing to change
                } else {
                        String typeName = cu.getElementName();
                        typeName = typeName.substring(0, typeName.length() - 5);
                        IDOMCompilationUnit cuDOM = null;
                        IBuffer buffer = cu.getBuffer();
-                       if (buffer == null) return null;
+                       if (buffer == null)
+                               return null;
                        char[] contents = buffer.getCharacters();
-                       if (contents == null) return null;
+                       if (contents == null)
+                               return null;
                        cuDOM = fFactory.createCompilationUnit(contents, typeName);
                        updateTypeName(cu, cuDOM, cu.getElementName(), newName);
                        updatePackageStatement(cuDOM, destPackageName);
                        return cuDOM.getContents();
                }
        }
+
        /**
-        * Makes sure that <code>cu</code> declares to be in the <code>pkgName</code> package.
+        * Makes sure that <code>cu</code> declares to be in the
+        * <code>pkgName</code> package.
         */
-       private void updatePackageStatement(IDOMCompilationUnit domCU, String pkgName) throws JavaModelException {
-               boolean defaultPackage = pkgName.equals(IPackageFragment.DEFAULT_PACKAGE_NAME);
+       private void updatePackageStatement(IDOMCompilationUnit domCU,
+                       String pkgName) throws JavaModelException {
+               boolean defaultPackage = pkgName
+                               .equals(IPackageFragment.DEFAULT_PACKAGE_NAME);
                boolean seenPackageNode = false;
-               Enumeration enum = domCU.getChildren();
-               while (enum.hasMoreElements()) {
-                       IDOMNode node = (IDOMNode) enum.nextElement();
+               Enumeration e = domCU.getChildren();
+               while (e.hasMoreElements()) {
+                       IDOMNode node = (IDOMNode) e.nextElement();
                        if (node.getNodeType() == IDOMNode.PACKAGE) {
-                               if (! defaultPackage) {
+                               if (!defaultPackage) {
                                        node.setName(pkgName);
                                } else {
                                        node.remove();
@@ -561,45 +693,52 @@ public class CopyResourceElementsOperation extends MultiOperation {
                        }
                }
                if (!seenPackageNode && !defaultPackage) {
-                       //the cu was in a default package...no package declaration
-                       //create the new package declaration as the first child of the cu
-//                     IDOMPackage pkg = fFactory.createPackage("package " + pkgName + ";" + net.sourceforge.phpdt.internal.compiler.util.Util.LINE_SEPARATOR); //$NON-NLS-1$ //$NON-NLS-2$
-//                     IDOMNode firstChild = domCU.getFirstChild();
-//                     if (firstChild != null) {
-//                             firstChild.insertSibling(pkg);
-//                     } // else the cu was empty: leave it empty
+                       // the cu was in a default package...no package declaration
+                       // create the new package declaration as the first child of the cu
+                       // IDOMPackage pkg = fFactory.createPackage("package " + pkgName +
+                       // ";" +
+                       // net.sourceforge.phpdt.internal.compiler.util.ProjectPrefUtil.LINE_SEPARATOR);
+                       // //$NON-NLS-1$ //$NON-NLS-2$
+                       // IDOMNode firstChild = domCU.getFirstChild();
+                       // if (firstChild != null) {
+                       // firstChild.insertSibling(pkg);
+                       // } // else the cu was empty: leave it empty
                }
        }
-               /**
-                * Renames the main type in <code>cu</code>.
-                */
-               private void updateTypeName(ICompilationUnit cu, IDOMCompilationUnit domCU, String oldName, String newName) throws JavaModelException {
-                       if (newName != null) {
-                               if (fRenamedCompilationUnits == null) {
-                                       fRenamedCompilationUnits= new ArrayList(1);
-                               }
-                               fRenamedCompilationUnits.add(cu);
-                               String oldTypeName= oldName.substring(0, oldName.length() - 5);
-                               String newTypeName= newName.substring(0, newName.length() - 5);
-                               // update main type name
-                               IType[] types = cu.getTypes();
-                               for (int i = 0, max = types.length; i < max; i++) {
-                                       IType currentType = types[i];
-                                       if (currentType.getElementName().equals(oldTypeName)) {
-                                               IDOMNode typeNode = ((JavaElement) currentType).findNode(domCU);
-                                               if (typeNode != null) {
-                                                       typeNode.setName(newTypeName);
-                                               }
+
+       /**
+        * Renames the main type in <code>cu</code>.
+        */
+       private void updateTypeName(ICompilationUnit cu, IDOMCompilationUnit domCU,
+                       String oldName, String newName) throws JavaModelException {
+               if (newName != null) {
+                       if (fRenamedCompilationUnits == null) {
+                               fRenamedCompilationUnits = new ArrayList(1);
+                       }
+                       fRenamedCompilationUnits.add(cu);
+                       String oldTypeName = oldName.substring(0, oldName.length() - 5);
+                       String newTypeName = newName.substring(0, newName.length() - 5);
+                       // update main type name
+                       IType[] types = cu.getTypes();
+                       for (int i = 0, max = types.length; i < max; i++) {
+                               IType currentType = types[i];
+                               if (currentType.getElementName().equals(oldTypeName)) {
+                                       IDOMNode typeNode = ((JavaElement) currentType)
+                                                       .findNode(domCU);
+                                       if (typeNode != null) {
+                                               typeNode.setName(newTypeName);
                                        }
                                }
                        }
                }
+       }
+
        /**
         * Possible failures:
         * <ul>
-        *  <li>NO_ELEMENTS_TO_PROCESS - no elements supplied to the operation
-        *      <li>INDEX_OUT_OF_BOUNDS - the number of renamings supplied to the operation
-        *              does not match the number of elements that were supplied.
+        * <li>NO_ELEMENTS_TO_PROCESS - no elements supplied to the operation
+        * <li>INDEX_OUT_OF_BOUNDS - the number of renamings supplied to the
+        * operation does not match the number of elements that were supplied.
         * </ul>
         */
        protected IJavaModelStatus verify() {
@@ -607,19 +746,22 @@ public class CopyResourceElementsOperation extends MultiOperation {
                if (!status.isOK()) {
                        return status;
                }
-       
-               if (fRenamingsList != null && fRenamingsList.length != fElementsToProcess.length) {
-                       return new JavaModelStatus(IJavaModelStatusConstants.INDEX_OUT_OF_BOUNDS);
+
+               if (fRenamingsList != null
+                               && fRenamingsList.length != fElementsToProcess.length) {
+                       return new JavaModelStatus(
+                                       IJavaModelStatusConstants.INDEX_OUT_OF_BOUNDS);
                }
                return JavaModelStatus.VERIFIED_OK;
        }
+
        /**
         * @see MultiOperation
         */
        protected void verify(IJavaElement element) throws JavaModelException {
                if (element == null || !element.exists())
                        error(IJavaModelStatusConstants.ELEMENT_DOES_NOT_EXIST, element);
-                       
+
                if (element.isReadOnly() && (isRename() || isMove()))
                        error(IJavaModelStatusConstants.READ_ONLY, element);
 
@@ -629,20 +771,20 @@ public class CopyResourceElementsOperation extends MultiOperation {
                                error(JavaModelStatus.INVALID_RESOURCE, element);
                        }
                }
-       
+
                int elementType = element.getElementType();
-       
+
                if (elementType == IJavaElement.COMPILATION_UNIT) {
                        if (isMove() && ((ICompilationUnit) element).isWorkingCopy())
                                error(IJavaModelStatusConstants.INVALID_ELEMENT_TYPES, element);
                } else if (elementType != IJavaElement.PACKAGE_FRAGMENT) {
                        error(IJavaModelStatusConstants.INVALID_ELEMENT_TYPES, element);
                }
-               
+
                JavaElement dest = (JavaElement) getDestinationParent(element);
                verifyDestination(element, dest);
                if (fRenamings != null) {
                        verifyRenaming(element);
                }
-}
+       }
 }