package com.taobao.zeus.model.processer; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import net.sf.json.JSONObject; /** * 可以将其他Job作为一个Processer处理单元,嵌入到当前Job中 * @author zhoufang * */ public class JobProcesser implements Processer{ private static final long serialVersionUID = 1L; private String jobId; private Map<String, String> kvConfig=new HashMap<String, String>(); @Override public String getConfig() { JSONObject o=new JSONObject(); o.put("jobId", jobId); JSONObject kv=new JSONObject(); if(kvConfig!=null){ for(String key:kvConfig.keySet()){ if(key.startsWith("instance.")){ kv.put(key, kvConfig.get(key)); } } } o.put("kvConfig", kv); return o.toString(); } @Override public String getId() { return "JobProcesser"; } @Override public void parse(String config) { JSONObject o=JSONObject.fromObject(config); jobId=o.getString("jobId"); JSONObject kvc=o.getJSONObject("kvConfig"); Map<String, String> map=new HashMap<String, String>(); for(Iterator<Object> it=kvc.keys();it.hasNext();){ Object key=it.next(); if(kvc.getString(key.toString())!=null){ map.put(key.toString(), kvc.getString(key.toString())); } } kvConfig=map; } public String getJobId() { return jobId; } public void setJobId(String jobId) { this.jobId = jobId; } public Map<String, String> getKvConfig() { return kvConfig; } public void setKvConfig(Map<String, String> kvConfig) { this.kvConfig = kvConfig; } }