| package org.netbeans.lib.cvsclient.command.reservedcheckout; |
| |
| /** |
| * @author Thomas Singer |
| */ |
| public final class TabStringTokenizer { |
| |
| // Fields ================================================================= |
| |
| private final String line; |
| private int startIndex; |
| private String nextToken; |
| |
| // Setup ================================================================== |
| |
| public TabStringTokenizer(String line) { |
| this.line = line; |
| |
| fetchNextToken(); |
| } |
| |
| // Actions ================================================================ |
| |
| public String nextToken() { |
| final String token = nextToken; |
| fetchNextToken(); |
| return token; |
| } |
| |
| // Utils ================================================================== |
| |
| private void fetchNextToken() { |
| nextToken = null; |
| if (startIndex >= line.length()) { |
| return; |
| } |
| |
| final int nextIndex = line.indexOf('\t', startIndex); |
| if (nextIndex >= 0) { |
| nextToken = line.substring(startIndex, nextIndex); |
| startIndex = nextIndex + 1; |
| } |
| else { |
| nextToken = line.substring(startIndex); |
| startIndex = line.length(); |
| } |
| } |
| } |