diff options
Diffstat (limited to 'core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/corext/textmanipulation/MoveTextEdit.java')
-rw-r--r-- | core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/corext/textmanipulation/MoveTextEdit.java | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/corext/textmanipulation/MoveTextEdit.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/corext/textmanipulation/MoveTextEdit.java deleted file mode 100644 index ef6ca13c97d..00000000000 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/corext/textmanipulation/MoveTextEdit.java +++ /dev/null @@ -1,146 +0,0 @@ -package org.eclipse.cdt.internal.corext.textmanipulation; - -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.jface.util.Assert; - -/** - * A text edit that moves text inside a text buffer. - */ -public final class MoveTextEdit extends TextEdit { - - /* package */ static class TargetMark extends NopTextEdit { - private MoveTextEdit fMoveTextEdit; - public TargetMark(TextRange range, MoveTextEdit edit) { - super(range); - fMoveTextEdit= edit; - } - /* package */ MoveTextEdit getMoveTextEdit() { - return fMoveTextEdit; - } - public TextEdit perform(TextBuffer buffer) throws CoreException { - fMoveTextEdit.internalPerform(buffer); - return super.perform(buffer); - } - public TextEdit copy() { - Assert.isTrue(false, "This should never happen"); //$NON-NLS-1$ - return super.copy(); - } - } - - private TextRange fTarget; - private TextRange fSource; - private int fPerformCounter; - - /** - * Creates a new <code>MoveTextEdit</code>. The text edit doesn't support - * overlapping moves. So for a <code>MoveTextEdit</code> <code>destination <= offset && - * offset + length - 1 <= destination</code> must be <code>true</code>. - * - * @param offset the offset of the text to be moved - * @param length the text length to be moved - * @param destination the destination offset - */ - public MoveTextEdit(int offset, int length, int destination) { - Assert.isTrue(destination <= offset || offset + length <= destination); - fSource= new TextRange(offset, length); - fTarget= new TextRange(destination); - } - - /** - * Creates a new <code>MoveTextEdit</code> with the given source and target range. - * - * @param source the source - * @param target the target - */ - private MoveTextEdit(TextRange source,TextRange target) { - fSource= source; - fTarget= target; - } - - /** - * Returns the move text edit's source range. This method returns the same range - * as <code>TextEdit#getTextRange()</code> - * - * @return the edit's source range - */ - public TextRange getSourceRange() { - return fSource; - } - - /** - * Returns the move text edit's target range. - * - * @return the edit's target range - */ - public TextRange getTargetRange() { - return fTarget; - } - - /* non Java-doc - * @see TextEdit#getTextRange() - */ - public TextRange getTextRange() { - return fSource; - } - - /* non Java-doc - * @see TextEdit#connect(TextBufferEditor) - */ - public void connect(TextBufferEditor editor) throws CoreException { - editor.add(new TargetMark(fTarget, this)); - } - - /* non Java-doc - * @see TextEdit#perform(TextBuffer) - */ - public TextEdit perform(TextBuffer buffer) throws CoreException { - internalPerform(buffer); - return new MoveTextEdit(fTarget, fSource); - } - - /* non Java-doc - * @see TextEdit#copy() - */ - public TextEdit copy() { - TextRange source= getSourceRange(); - TextRange target= getTargetRange(); - return new MoveTextEdit(source.fOffset, source.fLength, target.fOffset); - } - - //---- Helper method --------------------------------------------------------------------------------- - - protected void internalPerform(TextBuffer buffer) throws CoreException { - Assert.isTrue(fPerformCounter < 2); - if (++fPerformCounter == 2) { - TextRange source= getSourceRange(); - TextRange target= getTargetRange(); - String current= buffer.getContent(source.fOffset, source.fLength); - buffer.replace(source, ""); //$NON-NLS-1$ - buffer.replace(target, current); - } - } - - /* package */ boolean isUpMove() { - return fSource.fOffset < fTarget.fOffset; - } - - /* package */ boolean isDownMove() { - return fSource.fOffset > fTarget.fOffset; - } - - /* package */ TextRange getChildRange() { - int offset= fSource.fOffset; - int length= fSource.fLength; - int destination= fTarget.fOffset; - if (destination <= offset) - return new TextRange(destination, offset + length - destination); - else - return new TextRange(offset, destination - offset); - } -} - |