/* ==================================================================
* Created [2009-4-27 下午11:32:55] by Jon.King
* ==================================================================
* TSS
* ==================================================================
* mailTo:jinpujun@hotmail.com
* Copyright (c) Jon.King, 2009-2012
* ==================================================================
*/
package com.jinhe.tss.core.common.progress;
import java.util.Map;
import java.util.Random;
import com.jinhe.tss.core.sso.context.ContextSupportThread;
/**
* <p> ProgressManager.java </p>
*
* 进度条执行入口。
*/
public class ProgressManager {
private Progressable progressExcutor;
private long total;
private Map<String, Object> params;
public ProgressManager(Progressable progressExcutor, long total, Map<String, Object> params) {
this.progressExcutor = progressExcutor;
this.total = total;
this.params = params;
}
public String execute() {
final Progress progress = new Progress(total);
final String code = new Random().nextInt() + "_" + System.currentTimeMillis();
ProgressPool.putSchedule(code, progress);
ProgressThreadGroup group = new ProgressThreadGroup("threadGroup_" + code, progress);
new ContextSupportThread(group, "thread_" + code) {
public void runSupportContext() {
progressExcutor.execute(params, progress);
}
}.start();
return code;
}
}