package com.leanwo.activiti.dto.base;

import java.util.List;

import com.leanwo.activiti.dto.approver.OptionalGroup;
import com.leanwo.activiti.dto.approver.OptionalUser;

/**
 * 工作流选择用户的定义.
 *
 * @author YangZhiJie
 */
public class UserSelectDefine {
	
	/**  节点 id. */
	private String nodeId;

	/**  节点名称 . */
	private String nodeName;

	/**  上一个选择用户的节点id. */
	private String previousNodeId;

	/**  上一个选择用户的节点id. */
	private String[] previousNodeIds;
	
	/**  变量名称. */
	private String variableName;

	/**  变量名称. */
	private String condition;

	/**  用户多选. */
	private boolean multiSelect;
	
	/**  选择范围: 全公司(ALL)、指定成员(USER)、用户组(USER_GROUP). */
	private String optionalRange;

	/**  可选用户. */
	private List<OptionalUser> optionalUsers;
	
	/**  可选用户组. */
	private List<OptionalGroup> optionalUserGroups;
	
	/**
	 * Gets the 节点 id.
	 *
	 * @return the 节点 id
	 */
	public String getNodeId() {
		return nodeId;
	}

	/**
	 * Sets the 节点 id.
	 *
	 * @param nodeId the new 节点 id
	 */
	public void setNodeId(String nodeId) {
		this.nodeId = nodeId;
	}

	/**
	 * Gets the 节点名称 .
	 *
	 * @return the 节点名称 
	 */
	public String getNodeName() {
		return nodeName;
	}

	/**
	 * Sets the 节点名称 .
	 *
	 * @param nodeName the new 节点名称 
	 */
	public void setNodeName(String nodeName) {
		this.nodeName = nodeName;
	}

	/**
	 * Gets the 上一个选择用户的节点id.
	 *
	 * @return the 上一个选择用户的节点id
	 */
	public String getPreviousNodeId() {
		return previousNodeId;
	}

	/**
	 * Sets the 上一个选择用户的节点id.
	 *
	 * @param previousNodeId the new 上一个选择用户的节点id
	 */
	public void setPreviousNodeId(String previousNodeId) {
		this.previousNodeId = previousNodeId;
	}

	/**
	 * Gets the 上一个选择用户的节点id.
	 *
	 * @return the 上一个选择用户的节点id
	 */
	public String[] getPreviousNodeIds() {
		return previousNodeIds;
	}

	/**
	 * Sets the 上一个选择用户的节点id.
	 *
	 * @param previousNodeIds the new 上一个选择用户的节点id
	 */
	public void setPreviousNodeIds(String[] previousNodeIds) {
		this.previousNodeIds = previousNodeIds;
	}

	/**
	 * Gets the 变量名称.
	 *
	 * @return the 变量名称
	 */
	public String getVariableName() {
		return variableName;
	}

	/**
	 * Sets the 变量名称.
	 *
	 * @param variableName the new 变量名称
	 */
	public void setVariableName(String variableName) {
		this.variableName = variableName;
	}

	/**
	 * Gets the 变量名称.
	 *
	 * @return the 变量名称
	 */
	public String getCondition() {
		return condition;
	}

	/**
	 * Sets the 变量名称.
	 *
	 * @param condition the new 变量名称
	 */
	public void setCondition(String condition) {
		this.condition = condition;
	}

	/**
	 * Checks if is 用户多选.
	 *
	 * @return the 用户多选
	 */
	public boolean isMultiSelect() {
		return multiSelect;
	}

	/**
	 * Sets the 用户多选.
	 *
	 * @param multiSelect the new 用户多选
	 */
	public void setMultiSelect(boolean multiSelect) {
		this.multiSelect = multiSelect;
	}

	/**
	 * Gets the 选择范围: 全公司(ALL)、指定成员(USER)、用户组(USER_GROUP).
	 *
	 * @return the 选择范围: 全公司(ALL)、指定成员(USER)、用户组(USER_GROUP)
	 */
	public String getOptionalRange() {
		return optionalRange;
	}

	/**
	 * Sets the 选择范围: 全公司(ALL)、指定成员(USER)、用户组(USER_GROUP).
	 *
	 * @param optionalRange the new 选择范围: 全公司(ALL)、指定成员(USER)、用户组(USER_GROUP)
	 */
	public void setOptionalRange(String optionalRange) {
		this.optionalRange = optionalRange;
	}

	/**
	 * Gets the 可选用户.
	 *
	 * @return the 可选用户
	 */
	public List<OptionalUser> getOptionalUsers() {
		return optionalUsers;
	}

	/**
	 * Sets the 可选用户.
	 *
	 * @param optionalUsers the new 可选用户
	 */
	public void setOptionalUsers(List<OptionalUser> optionalUsers) {
		this.optionalUsers = optionalUsers;
	}

	/**
	 * Gets the 可选用户组.
	 *
	 * @return the 可选用户组
	 */
	public List<OptionalGroup> getOptionalUserGroups() {
		return optionalUserGroups;
	}

	/**
	 * Sets the 可选用户组.
	 *
	 * @param optionalUserGroups the new 可选用户组
	 */
	public void setOptionalUserGroups(List<OptionalGroup> optionalUserGroups) {
		this.optionalUserGroups = optionalUserGroups;
	}

	/**
	 * 
	 *
	 * @return 
	 */
	@Override
	public String toString() {
		return "UserSelectDefine [nodeId=" + nodeId + ", variableName=" + variableName + ", condition=" + condition
				+ ", multiSelect=" + multiSelect + ", optionalRange=" + optionalRange + "]";
	}
}
