diff src/goodjava/util/MapReduce.java @ 2172:75c45f1a743e default tip

MapReduce cleanup
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 22 Mar 2026 20:58:17 -0600
parents 8b77bd42864d
children
line wrap: on
line diff
--- a/src/goodjava/util/MapReduce.java	Sun Mar 22 19:24:52 2026 -0600
+++ b/src/goodjava/util/MapReduce.java	Sun Mar 22 20:58:17 2026 -0600
@@ -11,37 +11,33 @@
 
 public class MapReduce {
 
-	public interface Mapper {
+	public interface Handler {
 		public List map(Object arg);
-	}
-
-	public interface Handler extends Mapper {
 		public List reduce(List<List> lists);
 	}
 
 	private static Map<String,MapReduce> instances = new HashMap<String,MapReduce>();
 
 	// an active handler will be arbitrarily chosen for reduce
-	public static synchronized MapReduce register(String key,Mapper mapper) {
+	public static synchronized MapReduce register(String key,Handler handler) {
 		MapReduce mr = instances.get(key);
 		if( mr == null ) {
 			mr = new MapReduce();
 			instances.put(key,mr);
 		}
-		mr.mappers.add(mapper);
+		mr.handlers.add(handler);
 		return mr;
 	}
 
-	private Set<Mapper> mappers = Collections.newSetFromMap(new WeakHashMap<Mapper, Boolean>());
+	private Set<Handler> handlers = Collections.newSetFromMap(new WeakHashMap<Handler, Boolean>());
 
 	public List run(Object arg) {
 		List<List> lists = new ArrayList<List>();
 		Handler lastHandler = null;
-		Mapper[] snapshot = mappers.toArray(new Mapper[0]);
-		for( Mapper m : snapshot ) {
-			lists.add( m.map(arg) );
-			if( m instanceof Handler )
-				lastHandler = (Handler)m;
+		Handler[] snapshot = handlers.toArray(new Handler[0]);
+		for( Handler h : snapshot ) {
+			lists.add( h.map(arg) );
+			lastHandler = h;
 		}
 		return lastHandler==null ? Collections.emptyList() : lastHandler.reduce(lists);
 	}