package com.alibaba.rocketmq.namesrv.sync; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; /** * * @author lansheng.zj@taobao.com * * @param <R> ����ֵ���� * @param <T> �������� */ public class TaskGroup<R, T> implements Iterable<Entry<String, Task<R, T>>> { private Map<String, Task<R, T>> taskMap; public TaskGroup() { this.taskMap = new HashMap<String, Task<R, T>>(); } public Task<R, T> addTask(String key, Exec<R, T> task) { return taskMap.put(key, new Task<R, T>(task)); } public Task<R, T> getTask(String key) { return taskMap.get(key); } public Task<R, T> removeTask(String key) { return taskMap.remove(key); } public int size() { return taskMap.size(); } public Set<String> getKeys() { return taskMap.keySet(); } @Override public Iterator<Entry<String, Task<R, T>>> iterator() { return new Iterator<Entry<String, Task<R, T>>>() { private Iterator<Entry<String, Task<R, T>>> iterator = taskMap.entrySet().iterator(); @Override public boolean hasNext() { return iterator.hasNext(); } @Override public Entry<String, Task<R, T>> next() { return iterator.next(); } @Override public void remove() { iterator.remove(); } }; } }