+// Copyright 2006-2007 all rights reserved; see LICENSE file for BSD-style license
+
package edu.berkeley.sbp.util;
import edu.berkeley.sbp.util.*;
import edu.berkeley.sbp.*;
//
/** a mapping from topologies over <tt>K</tt> to <i>sets of</i> values of type <tt>V</tt> */
-public class TopologicalBag<K,V> implements MapBag<Topology<K>,V>, VisitableMap<K,V> {
+public class TopologicalBag<K,V> implements MapBag<Topology<K>,V>, VisitableMap<K,V>, Serializable {
// CRUCIAL INVARIANT: keys in this hashmap MUST be disjoint or the universe will implode
private final HashMap<Topology<K>,HashSet<V>> h = new HashMap<Topology<K>,HashSet<V>>();
for(V vv : h.get(t)) al.add(vv);
Object[] vs = new Object[al.size()];
al.toArray(vs);
- // XXX hack
- if (t instanceof Atom) t = ((Atom)t).underlying();
IntegerTopology it = (IntegerTopology)t;
for(Range r : it.getRanges()) {
min_.add(r.isMinNegInf() ? Long.MIN_VALUE : r.getMin());