diff options
Diffstat (limited to 'bundles/org.eclipse.compare/plugins/org.eclipse.compare.core/src/org/eclipse/compare/rangedifferencer/RangeDifference.java')
-rw-r--r-- | bundles/org.eclipse.compare/plugins/org.eclipse.compare.core/src/org/eclipse/compare/rangedifferencer/RangeDifference.java | 326 |
1 files changed, 0 insertions, 326 deletions
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare.core/src/org/eclipse/compare/rangedifferencer/RangeDifference.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare.core/src/org/eclipse/compare/rangedifferencer/RangeDifference.java deleted file mode 100644 index 9881bc14a..000000000 --- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare.core/src/org/eclipse/compare/rangedifferencer/RangeDifference.java +++ /dev/null @@ -1,326 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 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.rangedifferencer; - -/** - * Description of a change between two or three ranges of comparable entities. - * <p> - * <code>RangeDifference</code> objects are the elements of a compare result returned from - * the <code>RangeDifferencer</code> <code>find* </code> methods. - * Clients use these objects as they are returned from the differencer. - * This class is not intended to be instantiated outside of the Compare framework. - * <p> - * Note: A range in the <code>RangeDifference</code> object is given as a start index - * and length in terms of comparable entities. However, these entity indices and counts - * are not necessarily character positions. For example, if an entity represents a line - * in a document, the start index would be a line number and the count would be in lines. - * </p> - * - * @see RangeDifferencer - * @noinstantiate This class is not intended to be instantiated by clients. - */ -public class RangeDifference { - - /** Two-way change constant indicating no change. */ - public final static int NOCHANGE = 0; - - /** - * Two-way change constant indicating two-way change (same as - * <code>RIGHT</code>) - */ - public final static int CHANGE = 2; - - /** Three-way change constant indicating a change in both right and left. */ - public final static int CONFLICT = 1; - - /** Three-way change constant indicating a change in right. */ - public final static int RIGHT = 2; - - /** Three-way change constant indicating a change in left. */ - public final static int LEFT = 3; - - /** - * Three-way change constant indicating the same change in both right and - * left, that is only the ancestor is different. - */ - public final static int ANCESTOR = 4; - - /** Constant indicating an unknown change kind. */ - public final static int ERROR = 5; - - /** - * the kind of change: NOCHANGE, CHANGE, LEFT, RIGHT, ANCESTOR, CONFLICT, - * ERROR - * - * @since org.eclipse.compare.core 3.5 - */ - protected int kind; - - /** - * @since org.eclipse.compare.core 3.5 - */ - protected int leftStart; - - /** - * @since org.eclipse.compare.core 3.5 - */ - protected int leftLength; - - /** - * @since org.eclipse.compare.core 3.5 - */ - protected int rightStart; - - /** - * @since org.eclipse.compare.core 3.5 - */ - protected int rightLength; - - /** - * @since org.eclipse.compare.core 3.5 - */ - protected int ancestorStart; - - /** - * @since org.eclipse.compare.core 3.5 - */ - protected int ancestorLength; - - /** - * Creates a new range difference with the given change kind. - * - * @param changeKind - * the kind of change - * @since org.eclipse.compare.core 3.5 - */ - protected RangeDifference(int changeKind) { - this.kind = changeKind; - } - - /** - * Creates a new <code>RangeDifference</code> with the given change kind and - * left and right ranges. - * - * @param kind - * the kind of change - * @param rightStart - * start index of entity on right side - * @param rightLength - * number of entities on right side - * @param leftStart - * start index of entity on left side - * @param leftLength - * number of entities on left side - * @since org.eclipse.compare.core 3.5 - */ - protected RangeDifference(int kind, int rightStart, int rightLength, int leftStart, int leftLength) { - this.kind= kind; - this.rightStart= rightStart; - this.rightLength= rightLength; - this.leftStart= leftStart; - this.leftLength= leftLength; - } - - /** - * Creates a new <code>RangeDifference</code> with the given change kind and - * left, right, and ancestor ranges. - * - * @param kind - * the kind of change - * @param rightStart - * start index of entity on right side - * @param rightLength - * number of entities on right side - * @param leftStart - * start index of entity on left side - * @param leftLength - * number of entities on left side - * @param ancestorStart - * start index of entity on ancestor side - * @param ancestorLength - * number of entities on ancestor side - * @since org.eclipse.compare.core 3.5 - */ - protected RangeDifference(int kind, int rightStart, int rightLength, int leftStart, int leftLength, - int ancestorStart, int ancestorLength) { - this(kind, rightStart, rightLength, leftStart, leftLength); - this.ancestorStart= ancestorStart; - this.ancestorLength= ancestorLength; - } - - /** - * Returns the kind of difference. - * - * @return the kind of difference, one of - * <code>NOCHANGE</code>, <code>CHANGE</code>, <code>LEFT</code>, <code>RIGHT</code>, - * <code>ANCESTOR</code>, <code>CONFLICT</code>, <code>ERROR</code> - */ - public int kind() { - return this.kind; - } - - /** - * Returns the start index of the entity range on the ancestor side. - * - * @return the start index of the entity range on the ancestor side - */ - public int ancestorStart() { - return this.ancestorStart; - } - - /** - * Returns the number of entities on the ancestor side. - * - * @return the number of entities on the ancestor side - */ - public int ancestorLength() { - return this.ancestorLength; - } - - /** - * Returns the end index of the entity range on the ancestor side. - * - * @return the end index of the entity range on the ancestor side - */ - public int ancestorEnd() { - return this.ancestorStart + this.ancestorLength; - } - - /** - * Returns the start index of the entity range on the right side. - * - * @return the start index of the entity range on the right side - */ - public int rightStart() { - return this.rightStart; - } - - /** - * Returns the number of entities on the right side. - * - * @return the number of entities on the right side - */ - public int rightLength() { - return this.rightLength; - } - - /** - * Returns the end index of the entity range on the right side. - * - * @return the end index of the entity range on the right side - */ - public int rightEnd() { - return this.rightStart + this.rightLength; - } - - /** - * Returns the start index of the entity range on the left side. - * - * @return the start index of the entity range on the left side - */ - public int leftStart() { - return this.leftStart; - } - - /** - * Returns the number of entities on the left side. - * - * @return the number of entities on the left side - */ - public int leftLength() { - return this.leftLength; - } - - /** - * Returns the end index of the entity range on the left side. - * - * @return the end index of the entity range on the left side - */ - public int leftEnd() { - return this.leftStart + this.leftLength; - } - - /** - * Returns the maximum number of entities in the left, right, and ancestor sides of this range. - * - * @return the maximum number of entities in the left, right, and ancestor sides of this range - */ - public int maxLength() { - return Math.max(this.rightLength, Math.max(this.leftLength, this.ancestorLength)); - } - - public boolean equals(Object obj) { - if (obj instanceof RangeDifference) { - RangeDifference other = (RangeDifference) obj; - return this.kind == other.kind - && this.leftStart == other.leftStart - && this.leftLength == other.leftLength - && this.rightStart == other.rightStart - && this.rightLength == other.rightLength - && this.ancestorStart == other.ancestorStart - && this.ancestorLength == other.ancestorLength; - } - return super.equals(obj); - } - - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + this.kind; - result = prime * result + this.leftStart; - result = prime * result + this.leftLength; - result = prime * result + this.rightStart; - result = prime * result + this.rightLength; - result = prime * result + this.ancestorStart; - result = prime * result + this.ancestorLength; - return result; - } - - public String toString() { - StringBuffer buf = new StringBuffer("RangeDifference {"); //$NON-NLS-1$ - switch (this.kind) { - case NOCHANGE: - buf.append("NOCHANGE"); //$NON-NLS-1$ - break; - case CHANGE: - buf.append("CHANGE/RIGHT"); //$NON-NLS-1$ - break; - case CONFLICT: - buf.append("CONFLICT"); //$NON-NLS-1$ - break; - case LEFT: - buf.append("LEFT"); //$NON-NLS-1$ - break; - case ERROR: - buf.append("ERROR"); //$NON-NLS-1$ - break; - case ANCESTOR: - buf.append("ANCESTOR"); //$NON-NLS-1$ - break; - default: - break; - } - - buf.append(", "); //$NON-NLS-1$ - - buf.append("Left: " + toRangeString(this.leftStart, this.leftLength) + " Right: " + toRangeString(this.rightStart, this.rightLength)); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.ancestorLength > 0 || this.ancestorStart > 0) - buf.append(" Ancestor: " + toRangeString(this.ancestorStart, this.ancestorLength)); //$NON-NLS-1$ - - buf.append("}"); //$NON-NLS-1$ - return buf.toString(); - } - - private String toRangeString(int start, int length) { - return "(" + start + ", " + length + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } -} - |