adding BpmnData handling support, to Project->diagram object

This commit is contained in:
eriknyk
2014-07-18 12:57:39 -04:00
parent 1f4ded7897
commit c927a56b02
3 changed files with 291 additions and 2 deletions

View File

@@ -672,6 +672,7 @@ class BpmnWorkflow extends Project\Bpmn
$diagram["artifacts"] = $bwp->getArtifacts($configList);
$diagram["laneset"] = $bwp->getLanesets($configList);
$diagram["lanes"] = $bwp->getLanes($configList);
$diagram["data"] = $bwp->getDataCollection($configList);
$project["diagrams"][] = $diagram;
}
@@ -862,6 +863,7 @@ class BpmnWorkflow extends Project\Bpmn
$bwp->removeGateway($gatewayData["GAT_UID"]);
}
}
/*
* Diagram's Events Handling
*/
@@ -914,6 +916,52 @@ class BpmnWorkflow extends Project\Bpmn
}
}
/*
* Diagram's Data Handling
*/
$whiteList = array();
foreach ($diagram["data"] as $i => $dataObjectData) {
$dataObjectData = array_change_key_case($dataObjectData, CASE_UPPER);
unset($dataObjectData["_EXTENDED"]);
$dataObject = $bwp->getData($dataObjectData["DAT_UID"]);
if ($forceInsert || is_null($dataObject)) {
if ($generateUid) {
//Event
unset($dataObjectData["BOU_UID"]);
$uidOld = $dataObjectData["DAT_UID"];
$dataObjectData["DAT_UID"] = Util\Common::generateUID();
$result[] = array(
"object" => "data",
"old_uid" => $uidOld,
"new_uid" => $dataObjectData["DAT_UID"]
);
}
$bwp->addData($dataObjectData);
} elseif (! $bwp->isEquals($dataObject, $dataObjectData)) {
$bwp->updateData($dataObjectData["DAT_UID"], $dataObjectData);
} else {
Util\Logger::log("Update Data ({$dataObjectData["DAT_UID"]}) Skipped - No changes required");
}
$diagram["data"][$i] = $dataObjectData;
$whiteList[] = $dataObjectData["DAT_UID"];
}
$dataCollection = $bwp->getDataCollection();
// looking for removed elements
foreach ($dataCollection as $dataObjectData) {
if (! in_array($dataObjectData["DAT_UID"], $whiteList)) {
// If it is not in the white list, then remove them
$bwp->removeData($dataObjectData["DAT_UID"]);
}
}
/*
* Diagram's Flows Handling