package org.frameworkset.task;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* <p>Title: ScheduleServiceInfo.java</p>
* <p>Description: </p>
* <p>bboss workgroup</p>
* <p>Copyright (c) 2007</p>
* @Date 2010-3-26 下午02:04:36
* @author biaoping.yin,gao.tang
* @version 1.0
*/
public class ScheduleServiceInfo implements java.io.Serializable {
private String name;
private String id;
private String clazz;
private boolean used = true;
private ScheduleService instance;
/**
* Map<String,SchedulejobInfo>
*/
private Map jobsbyIds = new HashMap();
/**
* List<SchedulejobInfo>
*/
private List jobs = new ArrayList();
public String getClazz() {
return clazz;
}
public void setClazz(String clazz) {
this.clazz = clazz;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isUsed() {
return used;
}
public void setUsed(boolean used) {
this.used = used;
}
public void add(SchedulejobInfo schedulejobInfo)
{
schedulejobInfo.setParent(this);
this.jobs.add(schedulejobInfo);
this.jobsbyIds.put(schedulejobInfo.getId(), schedulejobInfo);
}
//
/**
*
* @return List<SchedulejobInfo>
*/
public List getJobs()
{
return this.jobs;
}
public SchedulejobInfo getSchedulejobInfoByID(String id)
{
return (SchedulejobInfo)this.jobsbyIds.get(id);
}
public String toString(){
StringBuilder returnVal = new StringBuilder();
returnVal.append("[name=").append(name).append(",")
.append("id=").append(id).append(",")
.append("clazz=").append(clazz).append("]");
return returnVal.toString();
}
private Object lock = new Object();
public ScheduleService getScheduleService(TaskService taskService)
{
if(instance != null)
return instance;
synchronized(lock)
{
if(instance!= null)
return instance;
try
{
instance = (ScheduleService) Class.forName(clazz).newInstance();
instance.init(this);
instance.setTaskservice(taskService);
}
catch (InstantiationException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IllegalAccessException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return instance;
}
}