+ static { epsilon.add(Sequence.create()); }
+
+ public Topology<Atom<Character>> unwrap() { return this; }
+ public Topology<Atom<Character>> empty() { return new CharAtom(); }
+ public Topology<Character> getTokenTopology() { return top(); }
+
+ public boolean contains(Atom<Character> v) { return top().containsAll(((CharAtom)v).top()); }
+ public boolean disjoint(Topology<Atom<Character>> t) { return top().disjoint(((CharAtom)t).top()); }
+ public boolean containsAll(Topology<Atom<Character>> t) { return top().containsAll(((CharAtom)t).top()); }
+
+ public Topology<Atom<Character>> complement() { return new CharAtom(top().complement()); }
+ public Topology<Atom<Character>> intersect(Topology<Atom<Character>> t) { return new CharAtom(top().intersect(((CharAtom)t).top())); }
+ public Topology<Atom<Character>> minus(Topology<Atom<Character>> t) { return new CharAtom(top().minus(((CharAtom)t).top())); }
+ public Topology<Atom<Character>> union(Topology<Atom<Character>> t) { return new CharAtom(top().union(((CharAtom)t).top())); }
+
+ public int hashCode() { return top().hashCode(); }
+ public boolean equals(Object o) { return o != null && (o instanceof CharAtom) && ((CharAtom)o).top().equals(top()); }
+