/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package cn.escheduler.dao.model; import cn.escheduler.common.enums.Flag; import cn.escheduler.common.enums.ReleaseState; import cn.escheduler.common.process.Property; import com.alibaba.fastjson.JSONObject; import org.apache.commons.lang3.StringUtils; import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * process definition */ public class ProcessDefinition { /** * id */ private int id; /** * name */ private String name; /** * version */ private int version; /** * release state : online/offline */ private ReleaseState releaseState; /** * project id */ private int projectId; /** * definition json string */ private String processDefinitionJson; /** * description */ private String desc; /** * user defined parameters */ private String globalParams; /** * user defined parameter list */ private List globalParamList; /** * user define parameter map */ private Map globalParamMap; /** * create time */ private Date createTime; /** * update time */ private Date updateTime; /** * process is valid: yes/no */ private Flag flag; /** * process user id */ private int userId; /** * user name */ private String userName; /** * project name */ private String projectName; /** * locations array for web */ private String locations; /** * connects array for web */ private String connects; /** * receivers */ private String receivers; /** * receivers cc */ private String receiversCc; /** * schedule release state : online/offline */ private ReleaseState scheduleReleaseState; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getVersion() { return version; } public void setVersion(int version) { this.version = version; } public int getId() { return id; } public void setId(int id) { this.id = id; } public ReleaseState getReleaseState() { return releaseState; } public void setReleaseState(ReleaseState releaseState) { this.releaseState = releaseState; } public String getProcessDefinitionJson() { return processDefinitionJson; } public void setProcessDefinitionJson(String processDefinitionJson) { this.processDefinitionJson = processDefinitionJson; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public int getProjectId() { return projectId; } public void setProjectId(int projectId) { this.projectId = projectId; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } public Flag getFlag() { return flag; } public void setFlag(Flag flag) { this.flag = flag; } public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getProjectName() { return projectName; } public void setProjectName(String projectName) { this.projectName = projectName; } public String getGlobalParams() { return globalParams; } public void setGlobalParams(String globalParams) { this.globalParamList = JSONObject.parseArray(globalParams, Property.class); this.globalParams = globalParams; } public List getGlobalParamList() { return globalParamList; } public void setGlobalParamList(List globalParamList) { this.globalParams = JSONObject.toJSONString(globalParamList); this.globalParamList = globalParamList; } public Map getGlobalParamMap() { List propList; if (globalParamMap == null && StringUtils.isNotEmpty(globalParams)) { propList = JSONObject.parseArray(globalParams, Property.class); globalParamMap = propList.stream().collect(Collectors.toMap(Property::getProp, Property::getValue)); } return globalParamMap; } public void setGlobalParamMap(Map globalParamMap) { this.globalParamMap = globalParamMap; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public String getLocations() { return locations; } public void setLocations(String locations) { this.locations = locations; } public String getConnects() { return connects; } public void setConnects(String connects) { this.connects = connects; } public String getReceivers() { return receivers; } public void setReceivers(String receivers) { this.receivers = receivers; } public String getReceiversCc() { return receiversCc; } public void setReceiversCc(String receiversCc) { this.receiversCc = receiversCc; } public ReleaseState getScheduleReleaseState() { return scheduleReleaseState; } public void setScheduleReleaseState(ReleaseState scheduleReleaseState) { this.scheduleReleaseState = scheduleReleaseState; } @Override public String toString() { return "ProcessDefinition{" + "id=" + id + ", name='" + name + '\'' + ", version=" + version + ", releaseState=" + releaseState + ", projectId=" + projectId + ", processDefinitionJson='" + processDefinitionJson + '\'' + ", desc='" + desc + '\'' + ", globalParams='" + globalParams + '\'' + ", globalParamList=" + globalParamList + ", globalParamMap=" + globalParamMap + ", createTime=" + createTime + ", updateTime=" + updateTime + ", flag=" + flag + ", userId=" + userId + ", userName='" + userName + '\'' + ", projectName='" + projectName + '\'' + ", locations='" + locations + '\'' + ", connects='" + connects + '\'' + ", receivers='" + receivers + '\'' + ", receiversCc='" + receiversCc + '\'' + ", scheduleReleaseState=" + scheduleReleaseState + '}'; } }