A massive organize imports and formatting of the sources using default Eclipse code...
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / core / CommitWorkingCopyOperation.java
index 3c1285c..96e21dd 100644 (file)
@@ -27,157 +27,175 @@ import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.jobs.ISchedulingRule;
 
-
 /**
- * Commits the contents of a working copy compilation
- * unit to its original element and resource, bringing
- * the Java Model up-to-date with the current contents of the working
- * copy.
- *
- * <p>It is possible that the contents of the
- * original resource have changed since the working copy was created,
- * in which case there is an update conflict. This operation allows
- * for two settings to resolve conflict set by the <code>fForce</code> flag:<ul>
- * <li>force flag is <code>false</code> - in this case an <code>JavaModelException</code>
- *     is thrown</li>
- * <li>force flag is <code>true</code> - in this case the contents of
- *     the working copy are applied to the underlying resource even though
- *     the working copy was created before a subsequent change in the
- *     resource</li>
+ * Commits the contents of a working copy compilation unit to its original
+ * element and resource, bringing the Java Model up-to-date with the current
+ * contents of the working copy.
+ * 
+ * <p>
+ * It is possible that the contents of the original resource have changed since
+ * the working copy was created, in which case there is an update conflict. This
+ * operation allows for two settings to resolve conflict set by the
+ * <code>fForce</code> flag:
+ * <ul>
+ * <li>force flag is <code>false</code>- in this case an
+ * <code>JavaModelException</code> is thrown</li>
+ * <li>force flag is <code>true</code>- in this case the contents of the
+ * working copy are applied to the underlying resource even though the working
+ * copy was created before a subsequent change in the resource</li>
  * </ul>
- *
- * <p>The default conflict resolution setting is the force flag is <code>false</code>
- *
- * A JavaModelOperation exception is thrown either if the commit could not
- * be performed or if the new content of the compilation unit violates some Java Model
- * constraint (e.g. if the new package declaration doesn't match the name of the folder
- * containing the compilation unit).
+ * 
+ * <p>
+ * The default conflict resolution setting is the force flag is
+ * <code>false</code>
+ * 
+ * A JavaModelOperation exception is thrown either if the commit could not be
+ * performed or if the new content of the compilation unit violates some Java
+ * Model constraint (e.g. if the new package declaration doesn't match the name
+ * of the folder containing the compilation unit).
  */
 public class CommitWorkingCopyOperation extends JavaModelOperation {
        /**
-        * Constructs an operation to commit the contents of a working copy
-        * to its original compilation unit.
+        * Constructs an operation to commit the contents of a working copy to its
+        * original compilation unit.
         */
        public CommitWorkingCopyOperation(ICompilationUnit element, boolean force) {
-               super(new IJavaElement[] {element}, force);
+               super(new IJavaElement[] { element }, force);
        }
+
        /**
-        * @exception JavaModelException if setting the source
-        *      of the original compilation unit fails
+        * @exception JavaModelException
+        *                if setting the source of the original compilation unit
+        *                fails
         */
        protected void executeOperation() throws JavaModelException {
                try {
                        beginTask(Util.bind("workingCopy.commit"), 2); //$NON-NLS-1$
                        CompilationUnit workingCopy = getCompilationUnit();
-                       IFile resource = (IFile)workingCopy.getResource();
+                       IFile resource = (IFile) workingCopy.getResource();
                        ICompilationUnit primary = workingCopy.getPrimary();
                        boolean isPrimary = workingCopy.isPrimary();
 
                        JavaElementDeltaBuilder deltaBuilder = null;
-//                     PackageFragmentRoot root = (PackageFragmentRoot)workingCopy.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
+                       // PackageFragmentRoot root =
+                       // (PackageFragmentRoot)workingCopy.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
                        boolean isIncluded = !Util.isExcluded(workingCopy);
-//                     if (isPrimary || (root.isOnClasspath() && isIncluded && resource.isAccessible() && Util.isValidCompilationUnitName(workingCopy.getElementName()))) {
-                       if (isPrimary || (isIncluded && resource.isAccessible() && Util.isValidCompilationUnitName(workingCopy.getElementName()))) {
-                                       
+                       // if (isPrimary || (root.isOnClasspath() && isIncluded &&
+                       // resource.isAccessible() &&
+                       // ProjectPrefUtil.isValidCompilationUnitName(workingCopy.getElementName())))
+                       // {
+                       if (isPrimary
+                                       || (isIncluded && resource.isAccessible() && Util
+                                                       .isValidCompilationUnitName(workingCopy
+                                                                       .getElementName()))) {
+
                                // force opening so that the delta builder can get the old info
                                if (!isPrimary && !primary.isOpen()) {
                                        primary.open(null);
                                }
 
-                               // creates the delta builder (this remembers the content of the cu) if:
+                               // creates the delta builder (this remembers the content of the
+                               // cu) if:
                                // - it is not excluded
                                // - and it is not a primary or it is a non-consistent primary
                                if (isIncluded && (!isPrimary || !workingCopy.isConsistent())) {
                                        deltaBuilder = new JavaElementDeltaBuilder(primary);
                                }
-                       
+
                                // save the cu
                                IBuffer primaryBuffer = primary.getBuffer();
                                if (!isPrimary) {
-                                       if (primaryBuffer == null) return;
+                                       if (primaryBuffer == null)
+                                               return;
                                        char[] primaryContents = primaryBuffer.getCharacters();
                                        boolean hasSaved = false;
                                        try {
                                                IBuffer workingCopyBuffer = workingCopy.getBuffer();
-                                               if (workingCopyBuffer == null) return;
-                                               primaryBuffer.setContents(workingCopyBuffer.getCharacters());
+                                               if (workingCopyBuffer == null)
+                                                       return;
+                                               primaryBuffer.setContents(workingCopyBuffer
+                                                               .getCharacters());
                                                primaryBuffer.save(this.progressMonitor, this.force);
                                                primary.makeConsistent(this);
                                                hasSaved = true;
                                        } finally {
-                                               if (!hasSaved){
-                                                       // restore original buffer contents since something went wrong
+                                               if (!hasSaved) {
+                                                       // restore original buffer contents since something
+                                                       // went wrong
                                                        primaryBuffer.setContents(primaryContents);
                                                }
                                        }
                                } else {
-                                       // for a primary working copy no need to set the content of the buffer again
+                                       // for a primary working copy no need to set the content of
+                                       // the buffer again
                                        primaryBuffer.save(this.progressMonitor, this.force);
                                        primary.makeConsistent(this);
                                }
                        } else {
-                               // working copy on cu outside classpath OR resource doesn't exist yet
+                               // working copy on cu outside classpath OR resource doesn't
+                               // exist yet
                                String encoding = null;
                                try {
                                        encoding = resource.getCharset();
-                               }
-                               catch (CoreException ce) {
+                               } catch (CoreException ce) {
                                        // use no encoding
                                }
                                String contents = workingCopy.getSource();
-                               if (contents == null) return;
+                               if (contents == null)
+                                       return;
                                try {
-                                       byte[] bytes = encoding == null 
-                                               ? contents.getBytes() 
-                                               : contents.getBytes(encoding);
-                                       ByteArrayInputStream stream = new ByteArrayInputStream(bytes);
+                                       byte[] bytes = encoding == null ? contents.getBytes()
+                                                       : contents.getBytes(encoding);
+                                       ByteArrayInputStream stream = new ByteArrayInputStream(
+                                                       bytes);
                                        if (resource.exists()) {
-                                               resource.setContents(
-                                                       stream, 
-                                                       this.force ? IResource.FORCE | IResource.KEEP_HISTORY : IResource.KEEP_HISTORY, 
-                                                       null);
+                                               resource.setContents(stream,
+                                                               this.force ? IResource.FORCE
+                                                                               | IResource.KEEP_HISTORY
+                                                                               : IResource.KEEP_HISTORY, null);
                                        } else {
-                                               resource.create(
-                                                       stream,
-                                                       this.force,
-                                                       this.progressMonitor);
+                                               resource.create(stream, this.force,
+                                                               this.progressMonitor);
                                        }
                                } catch (CoreException e) {
                                        throw new JavaModelException(e);
                                } catch (UnsupportedEncodingException e) {
-                                       throw new JavaModelException(e, IJavaModelStatusConstants.IO_EXCEPTION);
+                                       throw new JavaModelException(e,
+                                                       IJavaModelStatusConstants.IO_EXCEPTION);
                                }
-                               
+
                        }
 
-                       setAttribute(HAS_MODIFIED_RESOURCE_ATTR, TRUE); 
-                       
+                       setAttribute(HAS_MODIFIED_RESOURCE_ATTR, TRUE);
+
                        // make sure working copy is in sync
-                       workingCopy.updateTimeStamp((CompilationUnit)primary);
+                       workingCopy.updateTimeStamp((CompilationUnit) primary);
                        workingCopy.makeConsistent(this);
                        worked(1);
-               
+
                        // build the deltas
                        if (deltaBuilder != null) {
                                deltaBuilder.buildDeltas();
-                       
-                               // add the deltas to the list of deltas created during this operation
+
+                               // add the deltas to the list of deltas created during this
+                               // operation
                                if (deltaBuilder.delta != null) {
                                        addDelta(deltaBuilder.delta);
                                }
                        }
                        worked(1);
-               } finally {     
+               } finally {
                        done();
                }
        }
-       
+
        /**
         * Returns the compilation unit this operation is working on.
         */
        protected CompilationUnit getCompilationUnit() {
-               return (CompilationUnit)getElementToProcess();
+               return (CompilationUnit) getElementToProcess();
        }
+
        protected ISchedulingRule getSchedulingRule() {
                IResource resource = getElementToProcess().getResource();
                IWorkspace workspace = resource.getWorkspace();
@@ -187,29 +205,35 @@ public class CommitWorkingCopyOperation extends JavaModelOperation {
                        return workspace.getRuleFactory().createRule(resource);
                }
        }
+
        /**
-        * Possible failures: <ul>
-        *      <li>INVALID_ELEMENT_TYPES - the compilation unit supplied to this
-        *              operation is not a working copy
-        *  <li>ELEMENT_NOT_PRESENT - the compilation unit the working copy is
-        *              based on no longer exists.
-        *  <li>UPDATE_CONFLICT - the original compilation unit has changed since
-        *              the working copy was created and the operation specifies no force
-        *  <li>READ_ONLY - the original compilation unit is in read-only mode
-        *  </ul>
+        * Possible failures:
+        * <ul>
+        * <li>INVALID_ELEMENT_TYPES - the compilation unit supplied to this
+        * operation is not a working copy
+        * <li>ELEMENT_NOT_PRESENT - the compilation unit the working copy is based
+        * on no longer exists.
+        * <li>UPDATE_CONFLICT - the original compilation unit has changed since
+        * the working copy was created and the operation specifies no force
+        * <li>READ_ONLY - the original compilation unit is in read-only mode
+        * </ul>
         */
        public IJavaModelStatus verify() {
-               ICompilationUnit cu = getCompilationUnit();
+               CompilationUnit cu = getCompilationUnit();
                if (!cu.isWorkingCopy()) {
-                       return new JavaModelStatus(IJavaModelStatusConstants.INVALID_ELEMENT_TYPES, cu);
+                       return new JavaModelStatus(
+                                       IJavaModelStatusConstants.INVALID_ELEMENT_TYPES, cu);
                }
-               ICompilationUnit original= (ICompilationUnit)cu.getOriginalElement();
-               IResource resource = original.getResource();
-               if (!cu.isBasedOn(resource) && !force) {
-                       return new JavaModelStatus(IJavaModelStatusConstants.UPDATE_CONFLICT);
+               if (cu.hasResourceChanged() && !this.force) {
+                       // axelcl deleted start - force it to VERIFIED_OK, need to be fixed
+                       // return new
+                       // JavaModelStatus(IJavaModelStatusConstants.UPDATE_CONFLICT);
+                       // axelcl end
                }
-               // no read-only check, since some repository adapters can change the flag on save
-               // operation.   
+
+               // no read-only check, since some repository adapters can change the
+               // flag on save
+               // operation.
                return JavaModelStatus.VERIFIED_OK;
        }
-}
+}
\ No newline at end of file