diff options
Diffstat (limited to 'bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/EmptyTokenizer.java')
-rw-r--r-- | bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/EmptyTokenizer.java | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/EmptyTokenizer.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/EmptyTokenizer.java deleted file mode 100644 index 6708bb4d1..000000000 --- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/EmptyTokenizer.java +++ /dev/null @@ -1,132 +0,0 @@ -package org.eclipse.team.internal.ccvs.core.util; - -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ - -import java.util.NoSuchElementException; -import java.util.StringTokenizer; - -/** - * The EmptyTokenizer is essentialy a StringTokenizer. - * - * The difference is that empty Tokens are given back as - * empty Strings. - * - * If giveFirst an emptyString is the first return of nextToken() - * on line that starts with its delim. - * - * If giveLast an emptyString is the last retrun of nextToken() on - * line that ends with its delim. - */ -public class EmptyTokenizer { - - private StringTokenizer st; - private boolean lastWasDelim; - private final boolean giveLast; - private final boolean giveFirst; - private String delim; - private String line; - - private String cacheToken; - - public EmptyTokenizer(String line, String delim) { - this(line, delim, false, true); - } - - public EmptyTokenizer(String line, String delim, boolean giveFirst, boolean giveLast) { - - this.delim = delim; - this.line = line; - this.giveFirst = giveFirst; - lastWasDelim = giveFirst; - this.giveLast = giveLast; - - st = new StringTokenizer(line, delim, true); - startCacheToken(); - - } - - /** - * Call this before using cachedNextToken(). - */ - private void startCacheToken() { - if (st.hasMoreTokens()) { - cacheToken = st.nextToken(); - } else { - cacheToken = null; - } - } - - /** - * Gives the next Token back. Ensures that cacheToken holds the - * next Token to be given back. - * This is done to have a chance to predict if we have got a token - * at the end of the entry. - */ - private String cachedNextToken() throws NoSuchElementException { - - String oldCacheToken = cacheToken; - - if (cacheToken == null) { - throw new NoSuchElementException(); - } - - if (st.hasMoreTokens()) { - cacheToken = st.nextToken(); - } else { - cacheToken = null; - } - - return oldCacheToken; - } - - - public boolean hasMoreTokens() { - return (giveLast && lastWasDelim) || - (cacheToken != null && !cacheToken.equals(delim)) || - (cacheToken != null && cacheToken.equals(delim) && st.hasMoreTokens()) || - (cacheToken != null && cacheToken.equals(delim) && giveLast); - } - - public String nextToken() { - - String token; - - if (giveLast && lastWasDelim && cacheToken == null) { - lastWasDelim = false; - return ""; //$NON-NLS-1$ - } - - token = cachedNextToken(); - - if (!token.equals(delim)) { - lastWasDelim = false; - return token; - } - - if (lastWasDelim) { - return ""; //$NON-NLS-1$ - } else { - lastWasDelim = true; - return nextToken(); - } - } - - public int countTokens() { - - EmptyTokenizer tmpEmptyTokenizer; - int i=0; - - tmpEmptyTokenizer = new EmptyTokenizer(line, delim, giveFirst, giveLast); - while (tmpEmptyTokenizer.hasMoreTokens()) { - tmpEmptyTokenizer.nextToken(); - i++; - } - - return i; - - } - -} |