org.armedbear.lisp
Class WeakHashTable

java.lang.Object
  extended by org.armedbear.lisp.LispObject
      extended by org.armedbear.lisp.WeakHashTable
All Implemented Interfaces:
org.armedbear.lisp.protocol.Hashtable, org.armedbear.lisp.protocol.LispObject

public class WeakHashTable
extends LispObject
implements org.armedbear.lisp.protocol.Hashtable


Nested Class Summary
protected static class WeakHashTable.Comparator
           
protected static class WeakHashTable.EqlComparator
           
protected static class WeakHashTable.EqualComparator
           
protected static class WeakHashTable.EqualpComparator
           
 
Field Summary
protected  org.armedbear.lisp.WeakHashTable.HashEntry[] buckets
          Array containing the actual key-value mappings.
protected  int count
          The actual current number of key-value pairs.
protected static float loadFactor
           
protected  LispObject rehashSize
           
protected  LispObject rehashThreshold
           
protected  int threshold
          The rounded product of the capacity and the load factor.
 
Method Summary
protected static int calculateInitialCapacity(int size)
           
 LispObject classOf()
           
 void clear()
           
 LispObject ENTRIES()
          Deprecated. 
 boolean equalp(LispObject obj)
           
 LispObject get(LispObject key)
           
 int getCount()
          Number of entries stored in the hash buckets.
 LispObject getEntries()
           
protected  org.armedbear.lisp.WeakHashTable.HashEntry getEntry(LispObject key)
           
 LispObject gethash(LispObject key)
           
 LispObject gethash(LispObject key, LispObject defaultValue)
           
 LispObject gethash1(LispObject key)
           
 LispObject getParts()
          Implementing the getParts() protocol will allow INSPECT to return information about the substructure of a descendent of LispObject.
 LispObject getRehashSize()
           
 LispObject getRehashThreshold()
           
 int getSize()
          How many hash buckets exist in the underlying data structure.
 Symbol getTest()
           
 LispObject getWeakness()
           
 LispObject MAPHASH(LispObject function)
           
static WeakHashTable newEqHashTable(int size, LispObject rehashSize, LispObject rehashThreshold, LispObject weakness)
           
static WeakHashTable newEqlHashTable(int size, LispObject rehashSize, LispObject rehashThreshold, LispObject weakness)
           
static WeakHashTable newEqualHashTable(int size, LispObject rehashSize, LispObject rehashThreshold, LispObject weakness)
           
static WeakHashTable newEqualpHashTable(int size, LispObject rehashSize, LispObject rehashThreshold, LispObject weakness)
           
 java.lang.String printObject()
           
 int psxhash()
           
 void put(LispObject key, LispObject value)
           
 LispObject puthash(LispObject key, LispObject newValue)
           
protected  void rehash()
           
 LispObject remhash(LispObject key)
           
 LispObject remove(LispObject key)
           
 LispObject typeOf()
           
 LispObject typep(LispObject type)
           
 
Methods inherited from class org.armedbear.lisp.LispObject
ABS, add, add, aref_long, aref, AREF, AREF, aset, aset, aset, ash, ash, atom, ATOM, caddr, cadr, car, cddr, cdr, CHAR, characterp, CHARACTERP, chars, COMPLEXP, constantp, CONSTANTP, copyToArray, decr, DENOMINATOR, dispatch, divideBy, doubleValue, elt, endp, ENDP, EQ, eql, eql, eql, EQL, equal, equal, EQUAL, equalp, evenp, EVENP, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, floatp, FLOATP, floatValue, getBooleanValue, getCallCount, getDescription, getDocumentation, getFixnumSlotValue, getHotCount, getInstance, getPropertyList, getSlotValue_0, getSlotValue_1, getSlotValue_2, getSlotValue_3, getSlotValue, getSlotValueAsBoolean, getStringChars, getStringValue, getSymbolFunction, getSymbolFunctionOrDie, getSymbolSetfFunction, getSymbolSetfFunctionOrDie, getSymbolValue, incr, incrementCallCount, incrementHotCount, integerp, INTEGERP, intValue, IS_E, IS_GE, IS_GT, IS_LE, IS_LT, IS_NE, isEqualTo, isEqualTo, isGreaterThan, isGreaterThan, isGreaterThanOrEqualTo, isGreaterThanOrEqualTo, isLessThan, isLessThan, isLessThanOrEqualTo, isLessThanOrEqualTo, isNotEqualTo, isNotEqualTo, isSpecialOperator, isSpecialVariable, javaInstance, javaInstance, LDB, length, LENGTH, listp, LISTP, lockableInstance, LOGAND, LOGAND, LOGIOR, LOGIOR, LOGNOT, LOGXOR, LOGXOR, longValue, minusp, MINUSP, MOD, MOD, multiplyBy, multiplyBy, negate, noFillPointer, NOT, nreverse, NTH, NTH, nthcdr, numberp, NUMBERP, NUMERATOR, oddp, ODDP, plusp, PLUSP, princToString, psxhash, push, rationalp, RATIONALP, realp, REALP, resolve, reverse, RPLACA, RPLACD, SCHAR, setCallCount, setCar, setCdr, setDocumentation, setHotCount, setPropertyList, setSlotValue_0, setSlotValue_1, setSlotValue_2, setSlotValue_3, setSlotValue, setSlotValue, SIMPLE_STRING_P, SLOT_VALUE, STRING, stringp, STRINGP, subtract, subtract, SVREF, svset, sxhash, SYMBOLP, truncate, unreadableString, unreadableString, VECTOR_PUSH_EXTEND, VECTOR_PUSH_EXTEND, vectorp, VECTORP, vectorPushExtend, zerop, ZEROP
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

loadFactor

protected static final float loadFactor
See Also:
Constant Field Values

rehashSize

protected final LispObject rehashSize

rehashThreshold

protected final LispObject rehashThreshold

threshold

protected int threshold
The rounded product of the capacity and the load factor. When the number of elements exceeds the threshold, the implementation calls rehash().


buckets

protected volatile org.armedbear.lisp.WeakHashTable.HashEntry[] buckets
Array containing the actual key-value mappings.


count

protected volatile int count
The actual current number of key-value pairs.

Method Detail

calculateInitialCapacity

protected static int calculateInitialCapacity(int size)

newEqHashTable

public static WeakHashTable newEqHashTable(int size,
                                           LispObject rehashSize,
                                           LispObject rehashThreshold,
                                           LispObject weakness)

newEqlHashTable

public static WeakHashTable newEqlHashTable(int size,
                                            LispObject rehashSize,
                                            LispObject rehashThreshold,
                                            LispObject weakness)

newEqualHashTable

public static WeakHashTable newEqualHashTable(int size,
                                              LispObject rehashSize,
                                              LispObject rehashThreshold,
                                              LispObject weakness)

newEqualpHashTable

public static WeakHashTable newEqualpHashTable(int size,
                                               LispObject rehashSize,
                                               LispObject rehashThreshold,
                                               LispObject weakness)

getRehashSize

public final LispObject getRehashSize()

getRehashThreshold

public final LispObject getRehashThreshold()

getSize

public int getSize()
How many hash buckets exist in the underlying data structure.


getCount

public int getCount()
Number of entries stored in the hash buckets.


typeOf

public LispObject typeOf()
Specified by:
typeOf in interface org.armedbear.lisp.protocol.LispObject
Overrides:
typeOf in class LispObject

classOf

public LispObject classOf()
Overrides:
classOf in class LispObject

typep

public LispObject typep(LispObject type)
Overrides:
typep in class LispObject

equalp

public boolean equalp(LispObject obj)
Overrides:
equalp in class LispObject

getParts

public LispObject getParts()
Description copied from class: LispObject
Implementing the getParts() protocol will allow INSPECT to return information about the substructure of a descendent of LispObject. The protocol is to return a List of Cons pairs, where the car of each pair contains a decriptive string, and the cdr returns a subobject for inspection.

Overrides:
getParts in class LispObject

clear

public void clear()

gethash

public LispObject gethash(LispObject key)

gethash

public LispObject gethash(LispObject key,
                          LispObject defaultValue)

gethash1

public LispObject gethash1(LispObject key)

puthash

public LispObject puthash(LispObject key,
                          LispObject newValue)

remhash

public LispObject remhash(LispObject key)

printObject

public java.lang.String printObject()
Overrides:
printObject in class LispObject

getTest

public Symbol getTest()

getWeakness

public LispObject getWeakness()

getEntry

protected org.armedbear.lisp.WeakHashTable.HashEntry getEntry(LispObject key)

get

public LispObject get(LispObject key)

put

public void put(LispObject key,
                LispObject value)

remove

public LispObject remove(LispObject key)

rehash

protected void rehash()

ENTRIES

@Deprecated
public LispObject ENTRIES()
Deprecated. 

Specified by:
ENTRIES in interface org.armedbear.lisp.protocol.Hashtable

getEntries

public LispObject getEntries()
Specified by:
getEntries in interface org.armedbear.lisp.protocol.Hashtable

MAPHASH

public LispObject MAPHASH(LispObject function)

psxhash

public int psxhash()
Overrides:
psxhash in class LispObject