minijlisp.util
Class Symbol

java.lang.Object
  |
  +--minijlisp.util.Symbol

public final class Symbol
extends java.lang.Object

Only one instance of a specific symbol can be live at any moment.

Because only a single Symbol class may be shared by multiple threads, the implementation uses a weak synchronized hash map. This prevents race conditions and symbols from taking up memory unnecessarily.


Field Summary
 java.lang.String name
           
 
Method Summary
static Symbol create(java.lang.String name)
           
static Symbol createUnique()
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

name

public final java.lang.String name
Method Detail

create

public static Symbol create(java.lang.String name)

createUnique

public static Symbol createUnique()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object