home *** CD-ROM | disk | FTP | other *** search
- package com.kav.util;
-
- public class Tokenizer {
- public static final String[] DEFAULT_DELIMITERS = new String[]{" ", "\n", "\r", "\t"};
- private String[] delimiters;
- protected List tokens = new List();
- private int currentIndex;
- private String ntoken;
-
- public Tokenizer(String var1) {
- this.delimiters = DEFAULT_DELIMITERS;
- this.parsePattern(var1);
- }
-
- public Tokenizer(String var1, String[] var2) {
- this.delimiters = var2;
- this.parsePattern(var1);
- }
-
- public int countTokens() {
- return this.tokens.size() - this.currentIndex;
- }
-
- public boolean hasMoreTokens() {
- return this.countTokens() > 0;
- }
-
- public boolean hasToken(String var1) {
- return this.tokens.contains(var1);
- }
-
- public boolean isDelimiter(String var1) {
- for(int var2 = 0; var2 < this.delimiters.length; ++var2) {
- if (var1.equals(this.delimiters[var2])) {
- return true;
- }
- }
-
- return false;
- }
-
- public String nextToken() {
- return this.currentIndex < this.tokens.size() ? (String)this.tokens.get(this.currentIndex++) : null;
- }
-
- public String previousToken() {
- return this.currentIndex > this.tokens.size() ? (String)this.tokens.get(--this.currentIndex) : null;
- }
-
- public void resetPosition() {
- this.currentIndex = 0;
- }
-
- protected void setTokens(List var1) {
- this.currentIndex = 0;
- this.tokens = var1;
- }
-
- private int indexOfNearestToken(String var1) {
- int var2 = -1;
- if (var1 == null) {
- return var2;
- } else {
- String var4 = "";
-
- for(int var6 = 0; var6 < this.delimiters.length; ++var6) {
- String var3 = this.delimiters[var6];
- int var5 = var1.indexOf(var3);
- if (var5 >= 0) {
- if (var2 >= 0 && var5 >= var2) {
- if (var5 == var2 && var3.length() > var4.length()) {
- var4 = var3;
- }
- } else {
- var2 = var5;
- var4 = var3;
- }
- }
- }
-
- this.ntoken = var4;
- return var2;
- }
- }
-
- private void parsePattern(String var1) {
- int var3;
- for(var3 = -1; (var3 = this.indexOfNearestToken(var1)) >= 0; var1 = var1.substring(var3 + this.ntoken.length())) {
- if (var3 != 0) {
- this.tokens.add(var1.substring(0, var3));
- }
-
- this.tokens.add(this.ntoken);
- }
-
- if (var1.length() > 0) {
- this.tokens.add(var1);
- }
-
- }
- }
-