sisc.modules.hashtable
Class HashtableBase

java.lang.Object
  extended by sisc.util.Util
      extended by sisc.data.Expression
          extended by sisc.data.Value
              extended by sisc.modules.hashtable.HashtableBase
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable, Immediate, ExpressionVisitee, Version
Direct Known Subclasses:
Hashtable, SynchronizedHashtable

public abstract class HashtableBase
extends Value

See Also:
Serialized Form

Field Summary
 
Fields inherited from class sisc.data.Expression
annotations, EMPTYSET
 
Fields inherited from class sisc.util.Util
BACKQUOTE, BEGIN, bundles, caseSensitive, EMPTYLIST, EMPTYVEC, EOF, ERRORK, EVAL, EXPSC, EXPTOP, FALSE, FCONT, FIVE, JEXCEPTION, LAMBDA, LOCATION, maxFloatPrecision, MESSAGE, minFloatPrecision, NAME, OTHER, PARENT, permitInterrupts, QUOTE, QUOTESYM, REPORT, SETBANG, SISC, SISC_SPECIFIC, SISCB, SOURCE_COLUMN, SOURCE_FILE, SOURCE_LINE, SYMENV, THIS, TOPLEVEL, TRUE, UNQUOTE, UNQUOTE_SPLICING, VOID, ZV
 
Fields inherited from interface sisc.util.Version
VERSION
 
Constructor Summary
HashtableBase()
           
 
Method Summary
abstract  void addAList(Pair p)
           
abstract  void clear()
           
abstract  void deserialize(Deserializer s)
          All Expressions must implement a default (no-argument) constructor.
abstract  void display(ValueWriter w)
           
abstract  Value get(Value k)
           
abstract  Procedure getEqualsProc()
           
abstract  Procedure getHashProc()
           
abstract  Pair keys()
           
abstract  Value put(Value k, Value v)
           
abstract  Value remove(Value k)
           
abstract  void serialize(Serializer s)
          All Expressions must implement a default (no-argument) constructor.
abstract  int size()
           
abstract  Pair toAList()
           
abstract  boolean valueEqual(Value v)
          Compares this value to another for semantic equality.
abstract  int valueHashCode()
          a hashCode function consistent with valueEqual
abstract  boolean visit(ExpressionVisitor v)
           
 
Methods inherited from class sisc.data.Value
apply, displayNamedOpaque, equals, eqv, eval, express, getValue, synopsis, synopsis, toString, write, writeReplace
 
Methods inherited from class sisc.data.Expression
deserializeAnnotations, getAnnotation, getAnnotation, getAnnotationKeys, getAnnotations, getName, readExternal, readResolve, serializeAnnotations, setAnnotation, setAnnotation, setName, visitAnnotations, writeExternal
 
Methods inherited from class sisc.util.Util
annotated, annotatedAppEval, append, argCheck, argsToSymbols, assq, bininport, bininstream, binoutport, binoutstream, box, character, charinport, charinreader, charoutport, charoutwriter, charsetFromString, chr, cont, currentClassLoader, env, error, error, error, error, error, error, error, expr, getDefaultCharacterSet, immutablePair, immutableVector, inport, javaExceptionToString, javaWrap, justify, length, liMessage, liMessage, liMessage, liMessage, liMessage, liMessage, liMessage, list, list, list, list, list, makeURL, mapcar, memq, nlib, num, outport, pair, pairToExpressions, pairToExpVect, pairToValues, proc, read, registerBundle, reverse, reverseInPlace, simpleErrorToString, sourceAnnotations, str, string, sym, symbol, symval, truePair, truth, truth, typeError, typeError, updateName, url, url, url, valArrayToList, valArrayToList, valArrayToVec, vec, warn, warn, warn
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

HashtableBase

public HashtableBase()
Method Detail

getEqualsProc

public abstract Procedure getEqualsProc()

getHashProc

public abstract Procedure getHashProc()

get

public abstract Value get(Value k)

put

public abstract Value put(Value k,
                          Value v)

remove

public abstract Value remove(Value k)

size

public abstract int size()

clear

public abstract void clear()

addAList

public abstract void addAList(Pair p)

toAList

public abstract Pair toAList()

keys

public abstract Pair keys()

valueEqual

public abstract boolean valueEqual(Value v)
Description copied from class: Value
Compares this value to another for semantic equality. Used to implement Scheme's 'equal?'. Subclasses must test for pointer equality as well as semantic equality, so that infinite loops on recursive structures are less likely.

Overrides:
valueEqual in class Value
Parameters:
v - the other Value

valueHashCode

public abstract int valueHashCode()
Description copied from class: Value
a hashCode function consistent with valueEqual

Overrides:
valueHashCode in class Value
Returns:
hash code

serialize

public abstract void serialize(Serializer s)
                        throws java.io.IOException
Description copied from class: Expression
All Expressions must implement a default (no-argument) constructor. Those that wish to be serialized to a heap must implement both this and the deserialize method. The Expression may use any method of the Serializer, which implements java.io.DataOutput to write its state.

Overrides:
serialize in class Expression
Parameters:
s - the Serializer
Throws:
java.io.IOException

deserialize

public abstract void deserialize(Deserializer s)
                          throws java.io.IOException
Description copied from class: Expression
All Expressions must implement a default (no-argument) constructor. Those that wish to b serialized to a heap must implement both this and the serialize method. The Expression may use any method of the DataInput stream and the Deserializer serialization context to read its state.

Overrides:
deserialize in class Expression
Parameters:
s - the Deserializer
Throws:
java.io.IOException

visit

public abstract boolean visit(ExpressionVisitor v)
Specified by:
visit in interface ExpressionVisitee
Overrides:
visit in class Expression

display

public abstract void display(ValueWriter w)
                      throws java.io.IOException
Specified by:
display in class Value
Throws:
java.io.IOException