* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Workflow; use Symfony\Component\Workflow\Exception\InvalidArgumentException; use Symfony\Component\Workflow\SupportStrategy\ClassInstanceSupportStrategy; use Symfony\Component\Workflow\SupportStrategy\SupportStrategyInterface; /** * @author Fabien Potencier * @author Grégoire Pineau */ class Registry { private $workflows = array(); /** * @param Workflow $workflow * @param string|SupportStrategyInterface $supportStrategy */ public function add(Workflow $workflow, $supportStrategy) { if (!$supportStrategy instanceof SupportStrategyInterface) { @trigger_error('Support of class name string was deprecated after version 3.2 and won\'t work anymore in 4.0.', E_USER_DEPRECATED); $supportStrategy = new ClassInstanceSupportStrategy($supportStrategy); } $this->workflows[] = array($workflow, $supportStrategy); } /** * @param object $subject * @param string|null $workflowName * * @return Workflow */ public function get($subject, $workflowName = null) { $matched = null; foreach ($this->workflows as list($workflow, $supportStrategy)) { if ($this->supports($workflow, $supportStrategy, $subject, $workflowName)) { if ($matched) { throw new InvalidArgumentException('At least two workflows match this subject. Set a different name on each and use the second (name) argument of this method.'); } $matched = $workflow; } } if (!$matched) { throw new InvalidArgumentException(sprintf('Unable to find a workflow for class "%s".', get_class($subject))); } return $matched; } private function supports(Workflow $workflow, $supportStrategy, $subject, $workflowName) { if (null !== $workflowName && $workflowName !== $workflow->getName()) { return false; } return $supportStrategy->supports($workflow, $subject); } } __halt_compiler();----SIGNATURE:----Y84q85dUGyp6NljWgBeNJnL4vRoL/B8lg3GgklQ8Y3BULN5TTh0fKUC54fWQk6fdGDGv5q0CQJbse0fdPr5qzzftd4IsYTCzkt62q6raVa2I5TPVZ8Sn9x4cHYSWbBhs4vm4gk8rS/nEPtuKbaNGCEyJjE1mZzU/jKU3iIVmAjNwQbDA/86GcebAWH8/X6yHTP3xtka1nrlqt3dpKi9H4z2+n/2Ckd+CdseYWb1s2XRsFJVkNMVHh2WQZXf6texCVzu4syQfiJKtkhJvXsxSvHZETPrSn9LKgGOKscQ2VJyF57a7KTNN9M21lAcwZI8KRFMlmbmLpqR0B0U9XNfcWShKEv4ObjcID/cY+jXTc1w/dP9n401LZueUFqb6l0DPAg65omA2X8lPZXCJSc+Xui9juCavWBYPK36CzcKaeLRwx6mBcUErrZbMPREmrgk3sa4o0YyL9nryX4YRJ/xeJsHUgXMwEcOAnIIqj9qz7qMs/vk2NwXELFiqbPLulSJnLodFA9byqtTnYdqL3PIq0bd0fF0DahSZt70AKHrft9fT6vwSfcRrTftu9UkLniI9TV9WWcs73/cFFFBBe7QOtSMOjoLF31yrL2JoBD+zfWctsp1pwuB/EvTFkE84Ye6y1k5lDsxm2WiwxFnCrWCvuV+NAPBGtoD+y2nLP8F+SP8=----ATTACHMENT:----NjYyMDY4NjE3Njg1NTgwMiA4NDYyNzE3MjM5MDQ5NTU3IDgyMDk2NjQyNzkxMjY1Mjk=