/* Copyright 2012-2013 the original author or authors. * * Licensed 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 org.snaker.designer.model; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.snaker.designer.utils.StringUtils; /** * 任务元素模型类 * @author yuqs * @version 1.0 */ public class Task extends NodeElement { /** * */ private static final long serialVersionUID = 862281580390510339L; public static final String PROP_FIELDS = "FIELDS"; public static final String PROP_FORM = "form"; public static final String PROP_ASSIGNEE = "assignee"; public static final String PROP_TYPE = "performType"; public static final String PROP_EXPIRETIME = "expireTime"; public static final String PROP_ASSIGNEMENT_HANDLER = "assignmentHandler"; /** * 表单url */ private String form; /** * 参与者变量名称 */ private String assignee; /** * 参与者处理类 */ private String assignmentHandler; /** * 参与方式:0普通any方式;1特殊的all方式 * any:任何一个参与者处理完即执行下一步 * all:所有参与者都完成,才可执行下一步 */ private String performType = "ANY"; /** * 期望完成时间 */ private String expireTime; /** * 提醒时间 */ private String reminderTime; /** * 提醒次数 */ private String reminderRepeat; /** * 是否自动执行 */ private String autoExecute = "Y"; /** * 任务执行后回调方法 */ private String callback; /** * 任务可包含表单的字段 */ private List<Field> fields = new ArrayList<Field>(); public void addField(Field field) { this.fields.add(field); fireStructureChange(PROP_FIELDS, fields); } public void removeField(Field field) { this.fields.remove(field); fireStructureChange(PROP_FIELDS, fields); } public void swapIndex(int i, int j) { Collections.swap(fields, i, j); fireStructureChange(PROP_FIELDS, fields); } public List<Field> getFields() { return fields; } public void setFields(List<Field> fields) { this.fields = fields; fireStructureChange(PROP_FIELDS, fields); } public String getForm() { return form; } public void setForm(String form) { this.form = form; firePropertyChange(PROP_FORM, null, form); } public String getAssignee() { return assignee; } public void setAssignee(String assignee) { this.assignee = assignee; firePropertyChange(PROP_ASSIGNEE, null, assignee); } public String getExpireTime() { return expireTime; } public void setExpireTime(String expireTime) { this.expireTime = expireTime; firePropertyChange(PROP_EXPIRETIME, null, expireTime); } public String getPerformType() { return performType; } public void setPerformType(String performType) { this.performType = performType; firePropertyChange(PROP_TYPE, null, performType); } @Override public String validate() { StringBuffer error = new StringBuffer(super.validate()); if(StringUtils.isEmpty(displayName)) { error.append(this.getName() + " displayName 不能为空\n"); } return error.toString(); } public String getAssignmentHandler() { return assignmentHandler; } public void setAssignmentHandler(String assignmentHandler) { this.assignmentHandler = assignmentHandler; firePropertyChange(PROP_ASSIGNEMENT_HANDLER, null, assignmentHandler); } public String getReminderTime() { return reminderTime; } public void setReminderTime(String reminderTime) { this.reminderTime = reminderTime; } public String getReminderRepeat() { return reminderRepeat; } public void setReminderRepeat(String reminderRepeat) { this.reminderRepeat = reminderRepeat; } public String getAutoExecute() { return autoExecute; } public void setAutoExecute(String autoExecute) { this.autoExecute = autoExecute; } public String getCallback() { return callback; } public void setCallback(String callback) { this.callback = callback; } }