X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Futil%2FTopologicalBag.java;h=b034bafe12adc3cfc98f2d00b98ab38d217b7747;hb=80f8bc14a13b5e4912004e081ec96dc6ed807385;hp=6e73681567344c0ed1ed51dfa1b66e5f1353401f;hpb=173e1696d10a91db6f5a919dbb2b2ed2c6e2a227;p=sbp.git diff --git a/src/edu/berkeley/sbp/util/TopologicalBag.java b/src/edu/berkeley/sbp/util/TopologicalBag.java index 6e73681..b034baf 100644 --- a/src/edu/berkeley/sbp/util/TopologicalBag.java +++ b/src/edu/berkeley/sbp/util/TopologicalBag.java @@ -1,3 +1,5 @@ +// 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.*; @@ -12,7 +14,7 @@ import java.lang.ref.*; // /** a mapping from topologies over K to sets of values of type V */ -public class TopologicalBag implements MapBag,V>, VisitableMap { +public class TopologicalBag implements MapBag,V>, VisitableMap, Serializable { // CRUCIAL INVARIANT: keys in this hashmap MUST be disjoint or the universe will implode private final HashMap,HashSet> h = new HashMap,HashSet>(); @@ -101,11 +103,11 @@ public class TopologicalBag implements MapBag,V>, VisitableMap< private HashMap> cache = new HashMap>(); public Iterable getAll(Topology k) { return h.get(k); } - public void invoke(K k, Invokable ivbc, B b, C c) { + public void invoke(K k, Invokable ivbc, B b) { for(Topology t : h.keySet()) if (t.contains(k)) for(V v : h.get(t)) - ivbc.invoke(v, b, c); + ivbc.invoke(v, b); } public Iterable get(K k) { @@ -144,8 +146,6 @@ public class TopologicalBag implements MapBag,V>, VisitableMap< 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()); @@ -165,13 +165,13 @@ public class TopologicalBag implements MapBag,V>, VisitableMap< return true; return false; } - public void invoke(K k, Invokable ivbc, B b, C c) { + public void invoke(K k, Invokable ivbc, B b) { int asint = f.invoke(k); for(int i=0; i= asint) { Object[] arr = v[i]; for(int j=0; j