| /******************************************************************************* |
| * Copyright (c) 2000, 2003 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Common Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/cpl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| 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); |
| } |