public class CharAtom extends Atom<Character> {
+ public CharAtom() { this(new CharTopology()); }
public CharAtom(char a) { this(a,a); }
public CharAtom(char a, char b) { this(new CharTopology(a, b)); }
public CharAtom(CharTopology t) { this.t = t; }
+ public CharAtom(Topology<Character> t) { this(t instanceof CharTopology ? (CharTopology)t : new CharTopology(t)); }
private CharTopology t;
public Topology<Character> top() { return t; }
private static Union epsilon = new Union("()");
static { epsilon.add(Sequence.empty); }
+
+ public Topology<Atom<Character>> unwrap() { return this; }
+ public Topology<Atom<Character>> empty() { return new CharAtom(); }
+ public Topology<Character> underlying() { 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()); }
+
}