/** * @param WorkflowDefinition $definition, * @param array $configuration * @return ArrayCollection * @throws AssemblerException If configuration is invalid */ public function assemble(WorkflowDefinition $definition, array $configuration) { $entityAttributeName = $definition->getEntityAttributeName(); if (!array_key_exists($entityAttributeName, $configuration)) { $configuration[$entityAttributeName] = array('label' => $entityAttributeName, 'type' => 'entity', 'options' => array('class' => $definition->getRelatedEntity())); } $attributes = new ArrayCollection(); foreach ($configuration as $name => $options) { $attribute = $this->assembleAttribute($definition, $name, $options); $attributes->set($name, $attribute); } return $attributes; }
/** * @param WorkflowDefinition $definition * @return WorkflowDefinition */ public function import(WorkflowDefinition $definition) { $this->setName($definition->getName())->setLabel($definition->getLabel())->setRelatedEntity($definition->getRelatedEntity())->setEntityAttributeName($definition->getEntityAttributeName())->setConfiguration($definition->getConfiguration())->setSteps($definition->getSteps())->setStartStep($definition->getStartStep())->setStepsDisplayOrdered($definition->isStepsDisplayOrdered())->setEntityAcls($definition->getEntityAcls())->setSystem($definition->isSystem()); return $this; }