/* | |
* (c) Copyright IBM Corp. 2000, 2001. | |
* All Rights Reserved. | |
*/ | |
package org.eclipse.compare.contentmergeviewer; | |
import org.eclipse.compare.rangedifferencer.IRangeComparator; | |
/** | |
* For performing a so-called "token compare" on a line of text. | |
* This interface extends the <code>IRangeComparator</code> interface | |
* so that it can be used by the <code>TextMergeViewer</code>. | |
* <p> | |
* <code>TextMergeViewer</code> activates the token compare when navigating into | |
* a range of differing lines. At first the lines are selected as a block. | |
* When navigating into this block the token compare shows for every line | |
* the differing token by selecting them. | |
* <p> | |
* <code>TextMergeViewer</code>'s default token comparator works on characters separated | |
* by whitespace. If a different strategy is needed (for example, to use Java tokens in | |
* a Java-aware merge viewer), clients may create their own token | |
* comparators by implementing this interface (and overriding the | |
* <code>TextMergeViewer.createTokenComparator</code> factory method). | |
* </p> | |
* | |
* @see TextMergeViewer | |
*/ | |
public interface ITokenComparator extends IRangeComparator { | |
/** | |
* Returns the start character position of the token with the given index. | |
* If the index is out of range (but not negative) the character position | |
* behind the last character (the length of the input string) is returned. | |
* | |
* @param index index of the token for which to return the start position | |
* @return the start position of the token with the given index | |
* @throws java.lang.IndexOutOfBoundsException if index is negative | |
*/ | |
int getTokenStart(int index); | |
/** | |
* Returns the character length of the token with the given index. | |
* If the index is out of range (but not negative) the value 0 is returned. | |
* | |
* @param index index of the token for which to return the start position | |
* @return the character length of the token with the given index | |
* @throws java.lang.IndexOutOfBoundsException if index is negative | |
*/ | |
int getTokenLength(int index); | |
} |