You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.3 KiB
84 lines
2.3 KiB
<?php
|
|
|
|
class Node
|
|
{
|
|
|
|
const START_NODE = "START_NODE";
|
|
const TASK_NODE = "TASK_NODE";
|
|
const LOGIC_NODE = "LOGIC_NODE";
|
|
const SPLIT_NODE = "SPLIT_NODE";
|
|
const MERGE_NODE = "MERGE_NODE";
|
|
const FLOW_NODE = "FLOW_NODE";
|
|
const END_NODE = "END_NODE";
|
|
const COUNTER_SIGN_TASK = "COUNTER_SIGN_TASK";
|
|
const COUNTER_SIGN_SUBTASK = "COUNTER_SIGN_SUBTASK";
|
|
const ALL_NODE = [
|
|
self::START_NODE,
|
|
self::TASK_NODE,
|
|
self::LOGIC_NODE,
|
|
self::SPLIT_NODE,
|
|
self::FLOW_NODE,
|
|
self::MERGE_NODE,
|
|
self::END_NODE,
|
|
self::COUNTER_SIGN_TASK,
|
|
self::COUNTER_SIGN_SUBTASK
|
|
];
|
|
|
|
|
|
static $nodeClasses = array(
|
|
self::START_NODE=>"StartNode",
|
|
self::TASK_NODE => "TaskNode",
|
|
self::LOGIC_NODE => "LogicNode",
|
|
self::SPLIT_NODE => "SplitNode",
|
|
self::FLOW_NODE => "FlowNode",
|
|
self::MERGE_NODE => "MergeNode",
|
|
self::END_NODE => "EndNode",
|
|
self::COUNTER_SIGN_TASK => "CounterSignTask",
|
|
self::COUNTER_SIGN_SUBTASK => "CounterSignSubtask"
|
|
);
|
|
static $nodeTypes = array(
|
|
self::START_NODE,
|
|
self::TASK_NODE,
|
|
self::LOGIC_NODE,
|
|
self::SPLIT_NODE,
|
|
self::FLOW_NODE,
|
|
self::MERGE_NODE,
|
|
self::END_NODE,
|
|
self::COUNTER_SIGN_TASK,
|
|
self::COUNTER_SIGN_SUBTASK
|
|
);
|
|
static $handlerClasses = array(
|
|
self::START_NODE=>"StartNodeHandler",
|
|
self::TASK_NODE => "TaskNodeHandler",
|
|
self::LOGIC_NODE => "LogicNodeHandler",
|
|
self::SPLIT_NODE => "SplitNodeHandler",
|
|
self::FLOW_NODE => "FlowNodeHandler",
|
|
self::MERGE_NODE => "MergeNodeHandler",
|
|
self::END_NODE => "EndNodeHandler",
|
|
self::COUNTER_SIGN_TASK => "CounterSignTaskHandler",
|
|
self::COUNTER_SIGN_SUBTASK => "CounterSignSubtaskHandler"
|
|
);
|
|
protected $nodeProperty;
|
|
|
|
/**
|
|
*返回节点类型
|
|
* @param $param
|
|
*/
|
|
function __construct($param)
|
|
{
|
|
$this->nodeProperty = $param;
|
|
}
|
|
|
|
public function getType()
|
|
{
|
|
return $this->nodeProperty['nodeType'];
|
|
}
|
|
public function getNodeId()
|
|
{
|
|
return $this->nodeProperty['nodeId'];
|
|
}
|
|
public function getNodeDescription()
|
|
{
|
|
return $this->nodeProperty['desc'];
|
|
}
|
|
}
|
|
|