public static final class RubySymbol.SymbolTable
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
(package private) static class |
RubySymbol.SymbolTable.SymbolEntry |
| Modifier and Type | Field and Description |
|---|---|
private java.util.concurrent.ConcurrentHashMap<org.jruby.util.ByteList,RubySymbol> |
bytelistTable |
(package private) static int |
DEFAULT_INITIAL_CAPACITY |
(package private) static float |
DEFAULT_LOAD_FACTOR |
private float |
loadFactor |
(package private) static int |
MAXIMUM_CAPACITY |
private Ruby |
runtime |
private int |
size |
private RubySymbol.SymbolTable.SymbolEntry[] |
symbolTable |
private java.util.concurrent.locks.ReentrantLock |
tableLock |
private int |
threshold |
| Constructor and Description |
|---|
SymbolTable(Ruby runtime) |
| Modifier and Type | Method and Description |
|---|---|
RubyArray |
all_symbols() |
private RubySymbol |
createSymbol(java.lang.String name,
org.jruby.util.ByteList value,
int hash,
RubySymbol.SymbolTable.SymbolEntry[] table) |
private RubySymbol |
fastCreateSymbol(java.lang.String internedName,
RubySymbol.SymbolTable.SymbolEntry[] table) |
RubySymbol |
fastGetSymbol(java.lang.String internedName) |
private static RubySymbol.SymbolTable.SymbolEntry |
getEntryFromTable(RubySymbol.SymbolTable.SymbolEntry[] table,
int hash) |
RubySymbol |
getSymbol(org.jruby.util.ByteList bytes) |
RubySymbol |
getSymbol(java.lang.String name) |
private static boolean |
isSymbolMatch(java.lang.String name,
int hash,
RubySymbol.SymbolTable.SymbolEntry entry) |
private static boolean |
isSymbolMatch(java.lang.String internedName,
RubySymbol.SymbolTable.SymbolEntry entry) |
RubySymbol |
lookup(long id) |
RubySymbol |
lookup(java.lang.String name) |
private RubySymbol.SymbolTable.SymbolEntry[] |
rehash() |
void |
store(RubySymbol symbol)
Deprecated.
|
static final int DEFAULT_INITIAL_CAPACITY
static final int MAXIMUM_CAPACITY
static final float DEFAULT_LOAD_FACTOR
private final java.util.concurrent.locks.ReentrantLock tableLock
private volatile RubySymbol.SymbolTable.SymbolEntry[] symbolTable
private final java.util.concurrent.ConcurrentHashMap<org.jruby.util.ByteList,RubySymbol> bytelistTable
private int size
private int threshold
private final float loadFactor
private final Ruby runtime
public SymbolTable(Ruby runtime)
public RubySymbol getSymbol(java.lang.String name)
public RubySymbol getSymbol(org.jruby.util.ByteList bytes)
public RubySymbol fastGetSymbol(java.lang.String internedName)
private static RubySymbol.SymbolTable.SymbolEntry getEntryFromTable(RubySymbol.SymbolTable.SymbolEntry[] table, int hash)
private static boolean isSymbolMatch(java.lang.String name,
int hash,
RubySymbol.SymbolTable.SymbolEntry entry)
private static boolean isSymbolMatch(java.lang.String internedName,
RubySymbol.SymbolTable.SymbolEntry entry)
private RubySymbol createSymbol(java.lang.String name, org.jruby.util.ByteList value, int hash, RubySymbol.SymbolTable.SymbolEntry[] table)
private RubySymbol fastCreateSymbol(java.lang.String internedName, RubySymbol.SymbolTable.SymbolEntry[] table)
public RubySymbol lookup(java.lang.String name)
public RubySymbol lookup(long id)
public RubyArray all_symbols()
@Deprecated public void store(RubySymbol symbol)
private RubySymbol.SymbolTable.SymbolEntry[] rehash()