package org.act.tstream.task.group; import java.util.ArrayList; import java.util.List; import org.act.tstream.utils.JStormUtils; import org.act.tstream.utils.RandomRange; public class MkLocalShuffer { private List<Integer> outTasks; private RandomRange randomrange; private boolean isLocal; public MkLocalShuffer(List<Integer> workerTasks, List<Integer> allOutTasks) { List<Integer> localOutTasks = new ArrayList<Integer>(); for (Integer outTask : allOutTasks) { if (workerTasks.contains(outTask)) { localOutTasks.add(outTask); } } if (localOutTasks.size() != 0) { this.outTasks = localOutTasks; isLocal = true; } else { this.outTasks = new ArrayList<Integer>() ; this.outTasks.addAll(allOutTasks); isLocal = false; } randomrange = new RandomRange(outTasks.size()); } public List<Integer> grouper(List<Object> values) { int index = randomrange.nextInt(); return JStormUtils.mk_list(outTasks.get(index)); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub } }