home *** CD-ROM | disk | FTP | other *** search
- package com.ms.xml.util;
-
- public class StringHashtable {
- Entry[] entries;
-
- public Object put(String var1, Object var2) {
- int var3 = var1.hashCode();
- int var4 = (var3 & Integer.MAX_VALUE) % this.entries.length;
-
- for(Entry var5 = this.entries[var4]; var5 != null; var5 = var5.next) {
- if (var5.hash == var3 && var5.key.equals(var1)) {
- Object var6 = var5.value;
- var5.value = var2;
- return var6;
- }
- }
-
- Entry var7 = new Entry(var1, var2, var3);
- var7.next = this.entries[var4];
- this.entries[var4] = var7;
- return null;
- }
-
- public Object get(String var1) {
- int var2 = var1.hashCode();
- int var3 = (var2 & Integer.MAX_VALUE) % this.entries.length;
-
- for(Entry var4 = this.entries[var3]; var4 != null; var4 = var4.next) {
- if (var4.hash == var2 && var4.key.equals(var1)) {
- return var4.value;
- }
- }
-
- return null;
- }
-
- public Object get(char[] var1, int var2, int var3) {
- int var4 = 0;
- int var5 = var2;
- if (var3 < 16) {
- for(int var6 = var3; var6 > 0; --var6) {
- var4 = var4 * 37 + var1[var5++];
- }
- } else {
- int var9 = var3 / 8;
-
- for(int var7 = var3; var7 > 0; var5 += var9) {
- var4 = var4 * 39 + var1[var5];
- var7 -= var9;
- }
- }
-
- int var10 = (var4 & Integer.MAX_VALUE) % this.entries.length;
-
- for(Entry var11 = this.entries[var10]; var11 != null; var11 = var11.next) {
- if (var11.hash == var4) {
- String var8 = var11.key;
- if (var8.length() == var3) {
- while(true) {
- --var3;
- if (var3 < 0) {
- return var11.value;
- }
-
- if (var1[var2 + var3] != var8.charAt(var3)) {
- break;
- }
- }
- }
- }
- }
-
- return null;
- }
-
- public StringHashtable() {
- this(13);
- }
-
- public StringHashtable(int var1) {
- this.entries = new Entry[var1];
- }
- }
-