bound = new BpmnBound(); $this->setBoundDefaults(); } public function getBound() { return $this->bound; } private function setBoundDefaults() { $this->bound->setBouElementType(lcfirst(str_replace(__NAMESPACE__, '', __CLASS__))); $this->bound->setBouElement('pm_canvas'); $this->bound->setBouContainer('bpmnDiagram'); $this->bound->setPrjUid($this->getPrjUid()); $this->bound->setElementUid($this->getActUid()); $process = BpmnProcessPeer::retrieveByPK($this->getProUid()); if (is_object($process)) { $this->bound->setDiaUid($process->getDiaUid()); } } // OVERRIDES public function setActUid($actUid) { parent::setActUid($actUid); $this->bound->setElementUid($this->getActUid()); } public function setPrjUid($prjUid) { parent::setPrjUid($prjUid); $this->bound->setPrjUid($this->getPrjUid()); } public function setProUid($proUid) { parent::setProUid($proUid); $process = BpmnProcessPeer::retrieveByPK($this->getProUid()); $this->bound->setDiaUid($process->getDiaUid()); } public function save($con = null) { parent::save($con); $this->setBoundDefaults(); $this->bound->save($con); } public function delete($con = null) { // first, delete the related bound object if (! is_object($this->bound)) { $this->bound = BpmnBound::findByElement('Activity', $this->getActUid()); } if (is_object($this->bound)) { $this->bound->delete($con); } parent::delete($con); } public static function getAll($prjUid = null, $start = null, $limit = null, $filter = '', $returnType = null, $changeCaseTo=CASE_UPPER) { if (is_array($prjUid)) { // $start, is a array config extract($prjUid, EXTR_OVERWRITE); } $activities = array(); $c = new Criteria('workflow'); $c->addSelectColumn("BPMN_ACTIVITY.*"); $c->addSelectColumn("BPMN_BOUND.*"); $c->addJoin(BpmnActivityPeer::ACT_UID, BpmnBoundPeer::ELEMENT_UID, Criteria::LEFT_JOIN); if (! is_null($prjUid)) { $c->add(BpmnActivityPeer::PRJ_UID, $prjUid, Criteria::EQUAL); } $returnType = ($returnType != 'array' && $returnType != 'object') ? 'array' : $returnType; switch ($returnType) { case 'object': $activities = BpmnActivityPeer::doSelect($c); break; case 'array': $rs = BpmnActivityPeer::doSelectRS($c); $rs->setFetchmode(\ResultSet::FETCHMODE_ASSOC); while ($rs->next()) { $activities[] = $changeCaseTo !== CASE_UPPER ? array_change_key_case($rs->getRow(), CASE_LOWER) : $rs->getRow(); } break; } return $activities; } public function fromArray($data) { parent::fromArray($data, BasePeer::TYPE_FIELDNAME); $bound = BpmnBound::findByElement('Activity', $this->getActUid()); if (is_object($bound)) { $this->bound = $bound; } else { $this->bound = new BpmnBound(); $this->bound->setBouUid(ProcessMaker\Util\Hash::generateUID()); } $this->bound->fromArray($data, BasePeer::TYPE_FIELDNAME); } public function toArray($keyType = BasePeer::TYPE_PHPNAME) { $data = parent::toArray($keyType); if (is_object($this->bound) && get_class($this->bound) == 'BpmnBound') { $data = array_merge($data, $this->bound->toArray($keyType)); } return $data; } } // BpmnActivity