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

<?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'];
}
}