/**
* Copyright 1996-2014 FoxBPM Co.,Ltd.
*
* 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.
*
* @author kenshin
*/
package org.foxbpm.engine.impl.task;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import org.foxbpm.engine.expression.Expression;
import org.foxbpm.engine.impl.Context;
import org.foxbpm.engine.impl.connector.ConnectorListener;
import org.foxbpm.engine.impl.expression.ExpressionImpl;
import org.foxbpm.engine.impl.util.StringUtil;
import org.foxbpm.engine.task.ClaimType;
import org.foxbpm.engine.task.TaskCommand;
public class TaskDefinition implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1357653109003002722L;
private String id;
private String name;
private String taskType;
private Expression completeTaskDescription;
private Expression taskDescription;
private String claimType;
private Expression taskSubject;
private Expression taskPriority;
private Expression formUri;
private Expression formUriView;
private List<FormParam> formParams;
private double expectExecuteTime;
/**
* 处理命令集合
*/
private List<TaskCommand> taskCommands = new ArrayList<TaskCommand>();
protected List<ConnectorListener> actorConnectors = new ArrayList<ConnectorListener>();
public Expression getTaskSubject() {
return taskSubject;
}
public void setTaskSubject(String taskSubject) {
this.taskSubject = new ExpressionImpl(taskSubject);
}
public Expression getTaskPriority() {
return taskPriority;
}
public void setTaskPriority(String taskPriority) {
this.taskPriority = new ExpressionImpl(taskPriority);
}
public Expression getFormUri() {
return formUri;
}
public void setFormUri(String formUri) {
this.formUri = new ExpressionImpl(formUri);
}
public Expression getFormUriView() {
return formUriView;
}
public void setFormUriView(String formUriView) {
this.formUriView = new ExpressionImpl(formUriView);
}
public List<FormParam> getFormParams() {
return formParams;
}
public void setFormParams(List<FormParam> formParams) {
this.formParams = formParams;
}
public List<ConnectorListener> getActorConnectors() {
return actorConnectors;
}
public void setActorConnectors(List<ConnectorListener> actorConnectors) {
this.actorConnectors = actorConnectors;
}
public List<TaskCommand> getTaskCommands() {
return taskCommands;
}
public List<TaskCommand> getTaskCommands(String type) {
List<TaskCommand> taskCommands = new ArrayList<TaskCommand>();
for (TaskCommand taskCommand : getTaskCommands()) {
if (taskCommand.getTaskCommandType().equals(type)) {
taskCommands.add(taskCommand);
}
}
return taskCommands;
}
public TaskCommand getTaskCommand(String taskCommandId) {
for (TaskCommand taskCommand : taskCommands) {
if (taskCommand.getId().equals(taskCommandId)) {
return taskCommand;
}
}
return null;
}
public void setTaskCommands(List<TaskCommand> taskCommands) {
this.taskCommands = taskCommands;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Expression getCompleteTaskDescription() {
return completeTaskDescription;
}
public void setCompleteTaskDescription(String completeTaskDescription) {
this.completeTaskDescription = new ExpressionImpl(completeTaskDescription);
}
public Expression getTaskDescription() {
return taskDescription;
}
public void setTaskDescription(String taskDescription) {
this.taskDescription = new ExpressionImpl(taskDescription);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTaskType() {
return taskType;
}
public boolean isAutoClaim() {
boolean defaultClaimType = Context.getProcessEngineConfiguration().isAutoClaim();
if (StringUtil.isNotEmpty(claimType)) {
if (claimType.toLowerCase().equals(ClaimType.DEFAULT_CLAIM)) {
return defaultClaimType;
}
if (claimType.toLowerCase().equals(ClaimType.AUTO_CLAIM)) {
return true;
}
if (claimType.toLowerCase().equals(ClaimType.MANUAL_CLAIM)) {
return false;
}
return false;
}
return defaultClaimType;
}
public void setTaskType(String taskType) {
this.taskType = taskType;
}
public String getClaimType() {
return claimType;
}
public void setClaimType(String claimType) {
this.claimType = claimType;
}
public void setExpectExecuteTime(double expectExecuteTime) {
this.expectExecuteTime = expectExecuteTime;
}
public double getExpectExecuteTime() {
return expectExecuteTime;
}
}