refactored Topology to make it a value (immutable) class
[sbp.git] / src / edu / berkeley / sbp / Atom.java
index 524ab3a..3b7ce1f 100644 (file)
@@ -12,7 +12,7 @@ public abstract class Atom<T extends Token> extends Element implements Topology<
 
     protected abstract Topology<T> top();
 
-    public Topology toAtom() { return dup(); }
+    public Topology toAtom() { return this; }
 
     /** equality is based on the underlying <tt>Topology</tt> */
     public int hashCode() { return top().hashCode(); }
@@ -25,13 +25,9 @@ public abstract class Atom<T extends Token> extends Element implements Topology<
 
     // Topology Thunks //////////////////////////////////////////////////////////////////////////////
 
-    public void              add(Topology<T> t)         { top().add(t); }
-    public void              add(T t)                   { top().add(t); }
-    public void              remove(Topology<T> t)      { top().remove(t); }
-    public void              remove(T t)                { top().remove(t); }
-    public Topology<T>       dup()                      { return top().dup(); }
+    public Topology<T>       unwrap() { return top().unwrap(); }
+    public Topology<T>       empty()                    { return top().empty(); }
     public boolean           contains(T v)              { return top().contains(v); }
-    public Topology<T>       fresh()                    { return top().fresh(); }
     public Topology<T>       intersect(Topology<T> t)   { return top().intersect(t); }
     public Topology<T>       minus(Topology<T> t)       { return top().minus(t); }
     public Topology<T>       union(Topology<T> t)       { return top().union(t); }