X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Futil%2FTopologicalBag.java;h=b034bafe12adc3cfc98f2d00b98ab38d217b7747;hb=61566402d83d5c06d57fb850e60ca0f82c27b9a2;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