Example #1
0
 /**
  * Get Workflow by WorkflowDefinition
  *
  * @param WorkflowDefinition $definition
  * @return Workflow
  */
 protected function getAssembledWorkflow(WorkflowDefinition $definition)
 {
     $workflowName = $definition->getName();
     if (!isset($this->workflowByName[$workflowName])) {
         $workflow = $this->workflowAssembler->assemble($definition);
         $this->workflowByName[$workflowName] = $workflow;
     }
     return $this->refreshWorkflow($this->workflowByName[$workflowName]);
 }
 /**
  * @param string $name
  * @param array $configuration
  * @return WorkflowDefinition
  */
 public function buildOneFromConfiguration($name, array $configuration)
 {
     $this->assertConfigurationOptions($configuration, array('label', 'entity'));
     $system = $this->getConfigurationOption($configuration, 'is_system', false);
     $startStepName = $this->getConfigurationOption($configuration, 'start_step', null);
     $entityAttributeName = $this->getConfigurationOption($configuration, 'entity_attribute', WorkflowConfiguration::DEFAULT_ENTITY_ATTRIBUTE);
     $stepsDisplayOrdered = $this->getConfigurationOption($configuration, 'steps_display_ordered', false);
     $workflowDefinition = new WorkflowDefinition();
     $workflowDefinition->setName($name)->setLabel($configuration['label'])->setRelatedEntity($configuration['entity'])->setStepsDisplayOrdered($stepsDisplayOrdered)->setSystem($system)->setEntityAttributeName($entityAttributeName)->setConfiguration($this->filterConfiguration($configuration));
     $workflow = $this->workflowAssembler->assemble($workflowDefinition, false);
     $this->setSteps($workflowDefinition, $workflow);
     $workflowDefinition->setStartStep($workflowDefinition->getStepByName($startStepName));
     $this->setEntityAcls($workflowDefinition, $workflow);
     $this->fieldGenerator->generateWorkflowFields($workflowDefinition->getRelatedEntity());
     return $workflowDefinition;
 }
 /**
  * @param array $configuration
  */
 protected function assembleWorkflow(array $configuration)
 {
     $workflow = $this->createWorkflow();
     $workflowDefinition = $this->createWorkflowDefinition($configuration);
     $attributes = new ArrayCollection();
     $steps = new ArrayCollection();
     $transitions = new ArrayCollection();
     $container = $this->createContainerMock($workflow, false);
     $configurationTree = $this->createConfigurationTreeMock($workflowDefinition);
     $attributeAssembler = $this->createAttributeAssemblerMock($configuration, $attributes, false);
     $stepAssembler = $this->createStepAssemblerMock($configuration, $attributes, $steps, false);
     $transitionAssembler = $this->createTransitionAssemblerMock($configuration, $steps, $transitions, false);
     $workflowAssembler = new WorkflowAssembler($container, $configurationTree, $attributeAssembler, $stepAssembler, $transitionAssembler);
     $workflowAssembler->assemble($workflowDefinition);
 }
 /**
  * Assembles Workflow by WorkflowDefinition
  *
  * @param WorkflowDefinition $workflowDefinition
  * @return Workflow
  */
 protected function assembleWorkflow(WorkflowDefinition $workflowDefinition)
 {
     return $this->workflowAssembler->assemble($workflowDefinition);
 }