Package com.taobao.zeus.store.mysql.tool

Source Code of com.taobao.zeus.store.mysql.tool.PersistenceAndBeanConvert

package com.taobao.zeus.store.mysql.tool;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.commons.lang.StringUtils;

import com.taobao.zeus.model.DebugHistory;
import com.taobao.zeus.model.FileDescriptor;
import com.taobao.zeus.model.GroupDescriptor;
import com.taobao.zeus.model.JobDescriptor;
import com.taobao.zeus.model.JobHistory;
import com.taobao.zeus.model.JobStatus;
import com.taobao.zeus.model.Profile;
import com.taobao.zeus.model.ZeusFollow;
import com.taobao.zeus.model.JobDescriptor.JobRunType;
import com.taobao.zeus.model.JobDescriptor.JobScheduleType;
import com.taobao.zeus.model.JobStatus.Status;
import com.taobao.zeus.model.JobStatus.TriggerType;
import com.taobao.zeus.model.processer.Processer;
import com.taobao.zeus.store.mysql.persistence.DebugHistoryPersistence;
import com.taobao.zeus.store.mysql.persistence.FilePersistence;
import com.taobao.zeus.store.mysql.persistence.GroupPersistence;
import com.taobao.zeus.store.mysql.persistence.JobHistoryPersistence;
import com.taobao.zeus.store.mysql.persistence.JobPersistence;
import com.taobao.zeus.store.mysql.persistence.ProfilePersistence;
import com.taobao.zeus.store.mysql.persistence.ZeusFollowPersistence;
import com.taobao.zeus.util.Tuple;

public class PersistenceAndBeanConvert {

  public static ZeusFollow convert(ZeusFollowPersistence persist){
    if(persist==null){
      return null;
    }
    ZeusFollow zf=new ZeusFollow();
    zf.setId(persist.getId());
    zf.setUid(persist.getUid());
    zf.setTargetId(persist.getTargetId().toString());
    zf.setType(persist.getType());
    return zf;
  }
 
  public static ZeusFollowPersistence convert(ZeusFollow zf){
    if(zf==null){
      return null;
    }
    ZeusFollowPersistence persiste=new ZeusFollowPersistence();
    persiste.setId(zf.getId());
    persiste.setTargetId(Long.valueOf(zf.getTargetId()));
    persiste.setType(zf.getType());
    persiste.setUid(zf.getUid());
    return persiste;
  }
 
  public static JobPersistence convert(Tuple<JobDescriptor, JobStatus> job){
    if(job==null){
      return null;
    }
    JobPersistence persist=convert(job.getX());
    JobPersistence p2=convert(job.getY());
    persist.setReadyDependency(p2.getReadyDependency());
    persist.setStatus(p2.getStatus());
    persist.setHistoryId(p2.getHistoryId());
    return persist;
  }
 
  public static Tuple<JobDescriptor,JobStatus> convert(JobPersistence persist){
    if(persist==null){
      return null;
    }
    JobDescriptor jd=new JobDescriptor();
    jd.setId(String.valueOf(persist.getId()));
    jd.setName(persist.getName());
    jd.setDesc(persist.getDescr());
    jd.setOwner(persist.getOwner());
    jd.setGroupId(persist.getGroupId()==null?null:String.valueOf(persist.getGroupId()));
    jd.setAuto((persist.getAuto()!=null &&persist.getAuto()==1)?true:false);
    jd.setCronExpression(persist.getCronExpression());
    if(persist.getConfigs()!=null){
      JSONObject object=JSONObject.fromObject(persist.getConfigs());
      jd.setProperties(new HashMap<String, String>());
      for(Object key:object.keySet()){
        jd.getProperties().put(key.toString(), object.getString(key.toString()));
      }
    }
    if(persist.getDependencies()!=null){
      jd.setDependencies(Arrays.asList(persist.getDependencies().split(",")));
    }
    jd.setJobType(JobRunType.parser(persist.getRunType()));
    jd.setScheduleType(JobScheduleType.parser(persist.getScheduleType()));
    String res=persist.getResources();
    if(res!=null){
      List<Map<String, String>> tempRes=new ArrayList<Map<String,String>>();
      JSONArray resArray=JSONArray.fromObject(res);
      for(int i=0;i<resArray.size();i++){
        JSONObject o=resArray.getJSONObject(i);
        Map<String, String> map=new HashMap<String, String>();
        for(Object key:o.keySet()){
          map.put(key.toString(), o.getString(key.toString()));
        }
        tempRes.add(map);
      }
      jd.setResources(tempRes);
    }
   
    jd.setScript(persist.getScript());
   
    if(persist.getPreProcessers()!=null && !"".equals(persist.getPreProcessers().trim())){
      JSONArray preArray=JSONArray.fromObject(persist.getPreProcessers());
      List<Processer> preProcessers=new ArrayList<Processer>();
      for(int i=0;i<preArray.size();i++){
        Processer p=ProcesserUtil.parse(preArray.getJSONObject(i));
        if(p!=null){
          preProcessers.add(p);
        }
       
      }
      jd.setPreProcessers(preProcessers);
    }
    if(persist.getPostProcessers()!=null && !"".equals(persist.getPostProcessers().trim())){
      JSONArray postArray=JSONArray.fromObject(persist.getPostProcessers());
      List<Processer> postProcessers=new ArrayList<Processer>();
      for(int i=0;i<postArray.size();i++){
        Processer p=ProcesserUtil.parse(postArray.getJSONObject(i));
        if(p!=null){
          postProcessers.add(p);
        }
      }
      jd.setPostProcessers(postProcessers);
    }
   
   
    JobStatus status=new JobStatus();
    status.setJobId(String.valueOf(persist.getId()));
    status.setStatus(Status.parser(persist.getStatus()));
    status.setHistoryId(persist.getHistoryId()==null?null:persist.getHistoryId().toString());
    status.setReadyDependency(new HashMap<String, String>());
    if(persist.getReadyDependency()!=null){
      JSONObject o=JSONObject.fromObject(persist.getReadyDependency());
      for(Object key:o.keySet()){
        status.getReadyDependency().put(key.toString(), o.getString(key.toString()));
      }
    }
    return new Tuple<JobDescriptor, JobStatus>(jd, status);
  }
 
  public static JobPersistence convert(JobStatus jobStatus){
    if(jobStatus==null){
      return null;
    }
    JobPersistence persist=new JobPersistence();
    persist.setId(Long.valueOf(jobStatus.getJobId()));
    persist.setStatus(jobStatus.getStatus()==null?null:jobStatus.getStatus().getId());
    JSONObject o=new JSONObject();
    for(String key:jobStatus.getReadyDependency().keySet()){
      o.put(key, jobStatus.getReadyDependency().get(key));
    }
    persist.setReadyDependency(o.toString());
    persist.setHistoryId(jobStatus.getHistoryId()==null?null:Long.valueOf(jobStatus.getHistoryId()));
    return persist;
  }
 
  public static JobPersistence convert(JobDescriptor jd){
    if(jd==null){
      return null;
    }
    JobPersistence persist=new JobPersistence();
    JSONArray resArray=new JSONArray();
    for(Map<String, String> map:jd.getResources()){
      JSONObject o=new JSONObject();
      for(String key:map.keySet()){
        o.put(key, map.get(key));
      }
      resArray.add(o);
    }
    persist.setResources(resArray.toString());
    JSONObject object=new JSONObject();
    for(Object key:jd.getProperties().keySet()){
      object.put(key, jd.getProperties().get(key.toString()));
    }
    persist.setAuto(jd.getAuto()?1:0);
    persist.setConfigs(object.toString());
    persist.setCronExpression(jd.getCronExpression());
    persist.setDependencies(StringUtils.join(jd.getDependencies().iterator(), ","));
    persist.setDescr(jd.getDesc());
    persist.setGroupId(jd.getGroupId()==null?null:Integer.valueOf(jd.getGroupId()));
    if(jd.getId()!=null){
      persist.setId(Long.valueOf(jd.getId()));
    }
    persist.setName(jd.getName());
    persist.setOwner(jd.getOwner());
    persist.setRunType(jd.getJobType()==null?null:jd.getJobType().toString());
    persist.setScheduleType(jd.getScheduleType()==null?null:jd.getScheduleType().getType());
   
    persist.setScript(jd.getScript());
   
    JSONArray preArray=new JSONArray();
    for(Processer p:jd.getPreProcessers()){
      JSONObject o=new JSONObject();
      o.put("id", p.getId());
      o.put("config", p.getConfig());
      preArray.add(o);
    }
    persist.setPreProcessers(preArray.toString());
   
    JSONArray postArray=new JSONArray();
    for(Processer p:jd.getPostProcessers()){
      JSONObject o=new JSONObject();
      o.put("id", p.getId());
      o.put("config", p.getConfig());
      postArray.add(o);
    }
    persist.setPostProcessers(postArray.toString());
   
    return persist;
  }
 
  public static GroupDescriptor convert(GroupPersistence persist){
    if(persist==null){
      return null;
    }
    GroupDescriptor gd=new GroupDescriptor();
    gd.setId(String.valueOf(persist.getId()));
    gd.setParent(persist.getParent()==null?null:String.valueOf(persist.getParent()));
    gd.setName(persist.getName());
    gd.setOwner(persist.getOwner());
    gd.setDesc(persist.getDescr());
    gd.setDirectory(persist.getDirectory()==0?true:false);
    if(persist.getConfigs()!=null){
      JSONObject object=JSONObject.fromObject(persist.getConfigs());
      gd.setProperties(new HashMap<String, String>());
      for(Object key:object.keySet()){
        gd.getProperties().put(key.toString(), object.getString(key.toString()));
      }
    }
    String cp=persist.getResources();
    gd.setResources(new ArrayList<Map<String,String>>());
   
    if(persist.getResources()!=null){
      JSONArray resArray=JSONArray.fromObject(cp);
      for(int i=0;i<resArray.size();i++){
        Map<String, String> map=new HashMap<String, String>();
        JSONObject o=resArray.getJSONObject(i);
        for(Object key:o.keySet()){
          map.put(key.toString(), o.getString(key.toString()));
        }
        gd.getResources().add(map);
      }
    }
   
    return gd;
  }
 
  public static GroupPersistence convert(GroupDescriptor gd){
    if(gd==null){
      return null;
    }
    GroupPersistence persist=new GroupPersistence();
    JSONArray resArray=new JSONArray();
    for(Map<String, String> map:gd.getResources()){
      JSONObject o=new JSONObject();
      for(String key:map.keySet()){
        o.put(key, map.get(key));
      }
      resArray.add(o);
    }
    persist.setResources(resArray.toString());
    JSONObject object=new JSONObject();
    for(Object key:gd.getProperties().keySet()){
      object.put(key, gd.getProperties().get(key.toString()));
    }
    persist.setConfigs(object.toString());
    persist.setDescr(gd.getDesc());
    persist.setDirectory(gd.isDirectory()?0:1);
    if(gd.getId()!=null){
      persist.setId(Integer.valueOf(gd.getId()));
    }
    persist.setName(gd.getName());
    persist.setOwner(gd.getOwner());
    persist.setParent(gd.getParent()==null?null:Integer.valueOf(gd.getParent()));
    return persist;
  }
 
  public static JobHistory convert(JobHistoryPersistence persist){
    if(persist==null){
      return null;
    }
    JobHistory history=new JobHistory();
    history.setId(String.valueOf(persist.getId()));
    history.setJobId(String.valueOf(persist.getJobId()));
    history.setStartTime(persist.getStartTime());
    history.setEndTime( persist.getEndTime());
    history.setLog(persist.getLog());
    history.setExecuteHost(persist.getExecuteHost());
    history.setStatus(Status.parser(persist.getStatus()));
    history.setTriggerType(persist.getTriggerType()==null?null:TriggerType.parser(persist.getTriggerType()));
    history.setIllustrate(persist.getIllustrate());
    history.setOperator(persist.getOperator());
    Map<String, String> prop=new HashMap<String, String>();
    if(persist.getProperties()!=null){
      JSONObject json=JSONObject.fromObject(persist.getProperties());
      for(Object key:json.keySet()){
        prop.put(key.toString(), json.getString(key.toString()));
      }
    }
    history.setProperties(prop);
    return history;
  }
 
  public static JobHistoryPersistence convert(JobHistory history){
    if(history==null){
      return null;
    }
    JobHistoryPersistence persist = new JobHistoryPersistence();
    persist.setEndTime(history.getEndTime());
    persist.setExecuteHost(history.getExecuteHost());
    persist.setId(history.getId()== null ? null : Long.valueOf(history.getId()));
    persist.setJobId(Long.valueOf(history.getJobId()));
    persist.setLog(history.getLog().getContent());
    persist.setStartTime(history.getStartTime());
    persist.setStatus(history.getStatus() == null ? null : history.getStatus().getId());
    persist.setTriggerType(history.getTriggerType()==null?null:history.getTriggerType().getId());
    persist.setIllustrate(history.getIllustrate());
    persist.setOperator(history.getOperator());
    JSONObject json=new JSONObject();
    if(history.getProperties()!=null){
      for(String key:history.getProperties().keySet()){
        json.put(key, history.getProperties().get(key));
      }
    }
    persist.setProperties(json.toString());
    return persist;
  }
 
  public static FileDescriptor convert(FilePersistence persistence){
    if(persistence==null){
      return null;
    }
    FileDescriptor file=new FileDescriptor();
    file.setId(persistence.getId()==null?null:persistence.getId().toString());
    file.setContent(persistence.getContent());
    file.setFolder(persistence.getType()==FilePersistence.FOLDER?true:false);
    file.setName(persistence.getName());
    file.setOwner(persistence.getOwner());
    file.setParent(persistence.getParent()==null?null:persistence.getParent().toString());
    file.setGmtCreate(persistence.getGmtCreate());
    file.setGmtModified(persistence.getGmtModified());
    return file;
  }
  public static FilePersistence convert(FileDescriptor file){
    if(file==null){
      return null;
    }
    FilePersistence persistence=new FilePersistence();
    persistence.setContent(file.getContent());
    persistence.setId(file.getId()==null?null:Long.valueOf(file.getId()));
    persistence.setName(file.getName());
    persistence.setOwner(file.getOwner());
    persistence.setParent(file.getParent()==null?null:Long.valueOf(file.getParent()));
    persistence.setType(file.isFolder()?FilePersistence.FOLDER:FilePersistence.FILE);
    persistence.setGmtCreate(file.getGmtCreate());
    persistence.setGmtModified(file.getGmtModified());
    return persistence;
  }
 
  public static DebugHistory convert(DebugHistoryPersistence persistence){
    DebugHistory debug=new DebugHistory();
    debug.setEndTime(persistence.getEndTime());
    debug.setExecuteHost(persistence.getExecuteHost());
    debug.setFileId(persistence.getFileId()==null?null:persistence.getFileId().toString());
    debug.setId(persistence.getId()==null?null:persistence.getId().toString());
    debug.setStartTime(persistence.getStartTime());
    debug.setStatus(Status.parser(persistence.getStatus()));
    debug.setGmtCreate(persistence.getGmtCreate());
    debug.setGmtModified(persistence.getGmtModified());
    debug.setScript(persistence.getScript());
    debug.setJobRunType(JobRunType.parser(persistence.getRuntype()));
    debug.setLog(persistence.getLog());
    return debug;
  }
  public static DebugHistoryPersistence convert(DebugHistory debug){
    DebugHistoryPersistence persist=new DebugHistoryPersistence();
    persist.setEndTime(debug.getEndTime());
    persist.setExecuteHost(debug.getExecuteHost());
    persist.setFileId(debug.getFileId()==null?null:Long.valueOf(debug.getFileId()));
    persist.setId(debug.getId()==null?null:Long.valueOf(debug.getId()));
    persist.setStartTime(debug.getStartTime());
    persist.setStatus(debug.getStatus()==null?null:debug.getStatus().toString());
    persist.setGmtCreate(debug.getGmtCreate());
    persist.setGmtModified(debug.getGmtModified());
    persist.setScript(debug.getScript());
    persist.setRuntype(debug.getJobRunType()==null?null:debug.getJobRunType().toString());
    persist.setLog(debug.getLog().getContent());
    return persist;
  }
 
  public static ProfilePersistence convert(Profile p){
    if(p==null){
      return null;
    }
    ProfilePersistence pp=new ProfilePersistence();
    if(p.getHadoopConf()!=null){
      JSONObject o=new JSONObject();
      for(String key:p.getHadoopConf().keySet()){
        o.put(key, p.getHadoopConf().get(key));
      }
      pp.setHadoopConf(o.toString());
    }
    pp.setId(p.getId()==null?null:Long.valueOf(p.getId()));
    pp.setUid(p.getUid());
    pp.setGmtCreate(p.getGmtCreate());
    pp.setGmtModified(p.getGmtModified());
    return pp;
  }
 
  public static Profile convert(ProfilePersistence pp){
    if(pp==null){
      return null;
    }
    Profile p=new Profile();
    if(pp.getHadoopConf()!=null){
      JSONObject o=JSONObject.fromObject(pp.getHadoopConf());
      for(Object key:o.keySet()){
        p.getHadoopConf().put(key.toString(), o.getString(key.toString()));
      }
    }
    p.setId(pp.getId()==null?null:pp.getId().toString());
    p.setUid(pp.getUid());
    p.setGmtCreate(pp.getGmtCreate());
    p.setGmtModified(pp.getGmtModified());
    return p;
  }
}
TOP

Related Classes of com.taobao.zeus.store.mysql.tool.PersistenceAndBeanConvert

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.