X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/util/SimpleWordSet.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/util/SimpleWordSet.java deleted file mode 100644 index 7ed0065..0000000 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/util/SimpleWordSet.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2004 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 net.sourceforge.phpdt.internal.core.util; - -import net.sourceforge.phpdt.core.compiler.CharOperation; - -public final class SimpleWordSet { - - // to avoid using Enumerations, walk the individual values skipping nulls - public char[][] words; - - public int elementSize; // number of elements in the table - - public int threshold; - - public SimpleWordSet(int size) { - this.elementSize = 0; - this.threshold = size; // size represents the expected number of - // elements - int extraRoom = (int) (size * 1.5f); - if (this.threshold == extraRoom) - extraRoom++; - this.words = new char[extraRoom][]; - } - - public char[] add(char[] word) { - int length = this.words.length; - int index = CharOperation.hashCode(word) % length; - char[] current; - while ((current = words[index]) != null) { - if (CharOperation.equals(current, word)) - return current; - if (++index == length) - index = 0; - } - words[index] = word; - - // assumes the threshold is never equal to the size of the table - if (++elementSize > threshold) - rehash(); - return word; - } - - public boolean includes(char[] word) { - int length = this.words.length; - int index = CharOperation.hashCode(word) % length; - char[] current; - while ((current = words[index]) != null) { - if (CharOperation.equals(current, word)) - return true; - if (++index == length) - index = 0; - } - return false; - } - - private void rehash() { - SimpleWordSet newSet = new SimpleWordSet(elementSize * 2); // double - // the - // number of - // expected - // elements - char[] current; - for (int i = words.length; --i >= 0;) - if ((current = words[i]) != null) - newSet.add(current); - - this.words = newSet.words; - this.elementSize = newSet.elementSize; - this.threshold = newSet.threshold; - } -} \ No newline at end of file