SymbolTable.java 766 Bytes
/*
 * Decompiled with CFR 0_118.
 */
package com.adobe.xfa.ut;

public final class SymbolTable {
    private final String[] table = new String[1024];
    private int size;
    private static final int TABLE_SIZE = 1024;
    private static final int HASH_MASK = 1023;
    private static final int THRESHOLD = 682;

    public String internSymbol(String symbol) {
        String item;
        int i = symbol.hashCode() & 1023;
        while ((item = this.table[i]) != null) {
            if (item.equals(symbol)) {
                return item;
            }
            i = (i + 1) % 1024;
        }
        symbol = symbol.intern();
        if (this.size < 682) {
            this.table[i] = symbol;
            ++this.size;
        }
        return symbol;
    }
}