Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.compare/plugins/org.eclipse.compare.core/src/org/eclipse/compare/internal/core/patch/FilePatch2.java')
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare.core/src/org/eclipse/compare/internal/core/patch/FilePatch2.java266
1 files changed, 0 insertions, 266 deletions
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare.core/src/org/eclipse/compare/internal/core/patch/FilePatch2.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare.core/src/org/eclipse/compare/internal/core/patch/FilePatch2.java
deleted file mode 100644
index c1b569df6..000000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare.core/src/org/eclipse/compare/internal/core/patch/FilePatch2.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.core.patch;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.compare.patch.IFilePatch2;
-import org.eclipse.compare.patch.IFilePatchResult;
-import org.eclipse.compare.patch.IHunk;
-import org.eclipse.compare.patch.PatchConfiguration;
-import org.eclipse.compare.patch.ReaderCreator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-
-/**
- * A file diff represents a set of hunks that were associated with the
- * same path in a patch file.
- */
-public class FilePatch2 implements IFilePatch2 {
-
- /**
- * Difference constant (value 1) indicating one side was added.
- */
- public static final int ADDITION= 1;
- /**
- * Difference constant (value 2) indicating one side was removed.
- */
- public static final int DELETION= 2;
- /**
- * Difference constant (value 3) indicating side changed.
- */
- public static final int CHANGE= 3;
-
- private IPath fOldPath, fNewPath;
- private long oldDate, newDate;
- private List fHunks= new ArrayList();
- private DiffProject fProject; //the project that contains this diff
- private String header;
- private int addedLines, removedLines;
-
- /**
- * Create a file diff for the given path and date information.
- * @param oldPath the path of the before state of the file
- * @param oldDate the timestamp of the before state
- * @param newPath the path of the after state
- * @param newDate the timestamp of the after state
- */
- public FilePatch2(IPath oldPath, long oldDate, IPath newPath, long newDate) {
- this.fOldPath= oldPath;
- this.oldDate = oldDate;
- this.fNewPath= newPath;
- this.newDate = newDate;
- }
-
- /**
- * Return the parent project or <code>null</code> if there isn't one.
- * @return the parent project or <code>null</code>
- */
- public DiffProject getProject() {
- return this.fProject;
- }
-
- /**
- * Set the project of this diff to the given project.
- * This method should only be called from
- * {@link DiffProject#add(FilePatch2)}
- * @param diffProject the parent project
- */
- void setProject(DiffProject diffProject) {
- if (this.fProject == diffProject)
- return;
- if (this.fProject != null)
- this.fProject.remove(this);
- this.fProject= diffProject;
- }
-
- /**
- * Get the path of the file diff.
- * @param reverse whether the path of the before state or after state
- * should be used
- * @return the path of the file diff
- */
- public IPath getPath(boolean reverse) {
- if (getDiffType(reverse) == ADDITION) {
- if (reverse)
- return this.fOldPath;
- return this.fNewPath;
- }
- if (reverse && this.fNewPath != null)
- return this.fNewPath;
- if (this.fOldPath != null)
- return this.fOldPath;
- return this.fNewPath;
- }
-
- /**
- * Add the hunk to this file diff.
- * @param hunk the hunk
- */
- public void add(Hunk hunk) {
- this.fHunks.add(hunk);
- hunk.setParent(this);
- }
-
- /**
- * Remove the hunk from this file diff
- * @param hunk the hunk
- */
- protected void remove(Hunk hunk) {
- this.fHunks.remove(hunk);
- }
-
- /**
- * Return the hunks associated with this file diff.
- * @return the hunks associated with this file diff
- */
- public IHunk[] getHunks() {
- return (IHunk[]) this.fHunks.toArray(new IHunk[this.fHunks.size()]);
- }
-
- /**
- * Return the number of hunks associated with this file diff.
- * @return the number of hunks associated with this file diff
- */
- public int getHunkCount() {
- return this.fHunks.size();
- }
-
- /**
- * Return the difference type of this file diff.
- * @param reverse whether the patch is being reversed
- * @return the type of this file diff
- */
- public int getDiffType(boolean reverse) {
- if (this.fHunks.size() == 1) {
- boolean add = false;
- boolean delete = false;
- Iterator iter = this.fHunks.iterator();
- while (iter.hasNext()){
- Hunk hunk = (Hunk) iter.next();
- int type =hunk.getHunkType(reverse);
- if (type == ADDITION){
- add = true;
- } else if (type == DELETION ){
- delete = true;
- }
- }
- if (add && !delete){
- return ADDITION;
- } else if (!add && delete){
- return DELETION;
- }
- }
- return CHANGE;
- }
-
- /**
- * Return the path of this file diff with the specified number
- * of leading segments striped.
- * @param strip the number of leading segments to strip from the path
- * @param reverse whether the patch is being reversed
- * @return the path of this file diff with the specified number
- * of leading segments striped
- */
- public IPath getStrippedPath(int strip, boolean reverse) {
- IPath path= getPath(reverse);
- if (strip > 0 && strip < path.segmentCount())
- path= path.removeFirstSegments(strip);
- return path;
- }
-
- /**
- * Return the segment count of the path of this file diff.
- * @return the segment count of the path of this file diff
- */
- public int segmentCount() {
- //Update prefix count - go through all of the diffs and find the smallest
- //path segment contained in all diffs.
- int length= 99;
- if (this.fOldPath != null)
- length= Math.min(length, this.fOldPath.segmentCount());
- if (this.fNewPath != null)
- length= Math.min(length, this.fNewPath.segmentCount());
- return length;
- }
-
- public IFilePatchResult apply(ReaderCreator content,
- PatchConfiguration configuration, IProgressMonitor monitor) {
- FileDiffResult result = new FileDiffResult(this, configuration);
- result.refresh(content, monitor);
- return result;
- }
-
- public IPath getTargetPath(PatchConfiguration configuration) {
- return getStrippedPath(configuration.getPrefixSegmentStripCount(), configuration.isReversed());
- }
-
- public FilePatch2 asRelativeDiff() {
- if (this.fProject == null)
- return this;
- IPath adjustedOldPath = null;
- if (this.fOldPath != null) {
- adjustedOldPath = new Path(null, this.fProject.getName()).append(this.fOldPath);
- }
- IPath adjustedNewPath = null;
- if (this.fNewPath != null) {
- adjustedNewPath = new Path(null, this.fProject.getName()).append(this.fNewPath);
- }
- FilePatch2 diff = create(adjustedOldPath, 0, adjustedNewPath, 0);
- for (Iterator iterator = this.fHunks.iterator(); iterator.hasNext();) {
- Hunk hunk = (Hunk) iterator.next();
- // Creating the hunk adds it to the parent diff
- new Hunk(diff, hunk);
- }
- return diff;
- }
-
- protected FilePatch2 create(IPath oldPath, long oldDate, IPath newPath,
- long newDate) {
- return new FilePatch2(oldPath, oldDate, newPath, newDate);
- }
-
- public void setHeader(String header) {
- this.header = header;
- }
-
- public String getHeader() {
- return this.header;
- }
-
- public long getBeforeDate() {
- return this.oldDate;
- }
-
- public long getAfterDate() {
- return this.newDate;
- }
-
- public void setAddedLines(int addedLines) {
- this.addedLines = addedLines;
- }
-
- public void setRemovedLines(int removedLines) {
- this.removedLines = removedLines;
- }
-
- public int getAddedLines() {
- return this.addedLines;
- }
-
- public int getRemovedLines() {
- return this.removedLines;
- }
-
-}

Back to the top