1 // Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
3 package edu.berkeley.sbp.util;
4 import edu.berkeley.sbp.util.*;
5 import edu.berkeley.sbp.*;
8 import java.lang.reflect.*;
9 import java.lang.ref.*;
11 /** values inhabiting a topology over <tt>V</tt> (roughly, infinite sets of <tt>V</tt>'s equipped with union/intersection/complement) */
12 public interface Topology<V> {
14 public Topology<V> unwrap();
15 public Topology<V> empty();
17 public boolean contains(V v);
18 public boolean disjoint(Topology<V> t);
19 public boolean containsAll(Topology<V> t);
21 public Topology<V> complement();
22 public Topology<V> intersect(Topology<V> t);
23 public Topology<V> minus(Topology<V> t);
24 public Topology<V> union(Topology<V> t);
26 public abstract int hashCode();
27 public abstract boolean equals(Object o);