diff --git a/src/Symfony/Component/Workflow/Definition.php b/src/Symfony/Component/Workflow/Definition.php index 52e1d1ee4c042..c1bce17373196 100644 --- a/src/Symfony/Component/Workflow/Definition.php +++ b/src/Symfony/Component/Workflow/Definition.php @@ -18,7 +18,7 @@ * @author Fabien Potencier * @author Grégoire Pineau */ -class Definition +class Definition implements DefinitionInterface { private $places = array(); private $transitions = array(); diff --git a/src/Symfony/Component/Workflow/DefinitionInterface.php b/src/Symfony/Component/Workflow/DefinitionInterface.php new file mode 100644 index 0000000000000..118242696b5e5 --- /dev/null +++ b/src/Symfony/Component/Workflow/DefinitionInterface.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Workflow; + +/** + * @author Tobias Nyholm + */ +interface DefinitionInterface +{ + /** + * Get the initial place. + * + * @return string + */ + public function getInitialPlace(); + + /** + * Get all the places. + * + * @return string[] + */ + public function getPlaces(); + + /** + * @return Transition[] + */ + public function getTransitions(); +} diff --git a/src/Symfony/Component/Workflow/Dumper/DumperInterface.php b/src/Symfony/Component/Workflow/Dumper/DumperInterface.php index b0eebd34f1952..1dd9492273ec2 100644 --- a/src/Symfony/Component/Workflow/Dumper/DumperInterface.php +++ b/src/Symfony/Component/Workflow/Dumper/DumperInterface.php @@ -11,7 +11,7 @@ namespace Symfony\Component\Workflow\Dumper; -use Symfony\Component\Workflow\Definition; +use Symfony\Component\Workflow\DefinitionInterface; use Symfony\Component\Workflow\Marking; /** @@ -25,11 +25,11 @@ interface DumperInterface /** * Dumps a workflow definition. * - * @param Definition $definition A Definition instance - * @param Marking|null $marking A Marking instance - * @param array $options An array of options + * @param DefinitionInterface $definition A Definition instance + * @param Marking|null $marking A Marking instance + * @param array $options An array of options * * @return string The representation of the workflow */ - public function dump(Definition $definition, Marking $marking = null, array $options = array()); + public function dump(DefinitionInterface $definition, Marking $marking = null, array $options = array()); } diff --git a/src/Symfony/Component/Workflow/Dumper/GraphvizDumper.php b/src/Symfony/Component/Workflow/Dumper/GraphvizDumper.php index 916c4bd460622..8ae079bcb865d 100644 --- a/src/Symfony/Component/Workflow/Dumper/GraphvizDumper.php +++ b/src/Symfony/Component/Workflow/Dumper/GraphvizDumper.php @@ -11,7 +11,7 @@ namespace Symfony\Component\Workflow\Dumper; -use Symfony\Component\Workflow\Definition; +use Symfony\Component\Workflow\DefinitionInterface; use Symfony\Component\Workflow\Marking; /** @@ -43,7 +43,7 @@ class GraphvizDumper implements DumperInterface * * node: The default options for nodes (places + transitions) * * edge: The default options for edges */ - public function dump(Definition $definition, Marking $marking = null, array $options = array()) + public function dump(DefinitionInterface $definition, Marking $marking = null, array $options = array()) { $places = $this->findPlaces($definition, $marking); $transitions = $this->findTransitions($definition); @@ -58,7 +58,7 @@ public function dump(Definition $definition, Marking $marking = null, array $opt .$this->endDot(); } - private function findPlaces(Definition $definition, Marking $marking = null) + private function findPlaces(DefinitionInterface $definition, Marking $marking = null) { $places = array(); @@ -79,7 +79,7 @@ private function findPlaces(Definition $definition, Marking $marking = null) return $places; } - private function findTransitions(Definition $definition) + private function findTransitions(DefinitionInterface $definition) { $transitions = array(); @@ -123,7 +123,7 @@ private function addTransitions(array $transitions) return $code; } - private function findEdges(Definition $definition) + private function findEdges(DefinitionInterface $definition) { $dotEdges = array(); diff --git a/src/Symfony/Component/Workflow/StateMachine.php b/src/Symfony/Component/Workflow/StateMachine.php index 0c4e3edc0a6b5..5fc0be74e164d 100644 --- a/src/Symfony/Component/Workflow/StateMachine.php +++ b/src/Symfony/Component/Workflow/StateMachine.php @@ -11,7 +11,7 @@ */ class StateMachine extends Workflow { - public function __construct(Definition $definition, MarkingStoreInterface $markingStore = null, EventDispatcherInterface $dispatcher = null, $name = 'unnamed') + public function __construct(DefinitionInterface $definition, MarkingStoreInterface $markingStore = null, EventDispatcherInterface $dispatcher = null, $name = 'unnamed') { parent::__construct($definition, $markingStore ?: new ScalarMarkingStore(), $dispatcher, $name); } diff --git a/src/Symfony/Component/Workflow/Validator/DefinitionValidatorInterface.php b/src/Symfony/Component/Workflow/Validator/DefinitionValidatorInterface.php index 09fbc706c74bd..77a73696bf592 100644 --- a/src/Symfony/Component/Workflow/Validator/DefinitionValidatorInterface.php +++ b/src/Symfony/Component/Workflow/Validator/DefinitionValidatorInterface.php @@ -12,6 +12,7 @@ namespace Symfony\Component\Workflow\Validator; use Symfony\Component\Workflow\Definition; +use Symfony\Component\Workflow\DefinitionInterface; use Symfony\Component\Workflow\Exception\InvalidDefinitionException; /** @@ -20,12 +21,12 @@ interface DefinitionValidatorInterface { /** - * @param Definition $definition - * @param string $name + * @param DefinitionInterface $definition + * @param string $name * * @return bool * * @throws InvalidDefinitionException on invalid definition */ - public function validate(Definition $definition, $name); + public function validate(DefinitionInterface $definition, $name); } diff --git a/src/Symfony/Component/Workflow/Validator/SinglePlaceWorkflowValidator.php b/src/Symfony/Component/Workflow/Validator/SinglePlaceWorkflowValidator.php index 6b59db507dff9..61c4bc7c6b827 100644 --- a/src/Symfony/Component/Workflow/Validator/SinglePlaceWorkflowValidator.php +++ b/src/Symfony/Component/Workflow/Validator/SinglePlaceWorkflowValidator.php @@ -11,7 +11,7 @@ namespace Symfony\Component\Workflow\Validator; -use Symfony\Component\Workflow\Definition; +use Symfony\Component\Workflow\DefinitionInterface; use Symfony\Component\Workflow\Exception\InvalidDefinitionException; /** @@ -21,7 +21,7 @@ */ class SinglePlaceWorkflowValidator extends WorkflowValidator { - public function validate(Definition $definition, $name) + public function validate(DefinitionInterface $definition, $name) { foreach ($definition->getTransitions() as $transition) { if (1 < count($transition->getTos())) { diff --git a/src/Symfony/Component/Workflow/Validator/StateMachineValidator.php b/src/Symfony/Component/Workflow/Validator/StateMachineValidator.php index 6f34c1f2f41ab..e4f29281dc479 100644 --- a/src/Symfony/Component/Workflow/Validator/StateMachineValidator.php +++ b/src/Symfony/Component/Workflow/Validator/StateMachineValidator.php @@ -11,7 +11,7 @@ namespace Symfony\Component\Workflow\Validator; -use Symfony\Component\Workflow\Definition; +use Symfony\Component\Workflow\DefinitionInterface; use Symfony\Component\Workflow\Exception\InvalidDefinitionException; /** @@ -19,7 +19,7 @@ */ class StateMachineValidator implements DefinitionValidatorInterface { - public function validate(Definition $definition, $name) + public function validate(DefinitionInterface $definition, $name) { $transitionFromNames = array(); foreach ($definition->getTransitions() as $transition) { diff --git a/src/Symfony/Component/Workflow/Validator/WorkflowValidator.php b/src/Symfony/Component/Workflow/Validator/WorkflowValidator.php index 7d4366fdfb9c3..a4c5e207ad2af 100644 --- a/src/Symfony/Component/Workflow/Validator/WorkflowValidator.php +++ b/src/Symfony/Component/Workflow/Validator/WorkflowValidator.php @@ -11,14 +11,14 @@ namespace Symfony\Component\Workflow\Validator; -use Symfony\Component\Workflow\Definition; +use Symfony\Component\Workflow\DefinitionInterface; /** * @author Tobias Nyholm */ class WorkflowValidator implements DefinitionValidatorInterface { - public function validate(Definition $definition, $name) + public function validate(DefinitionInterface $definition, $name) { } } diff --git a/src/Symfony/Component/Workflow/Workflow.php b/src/Symfony/Component/Workflow/Workflow.php index 348b3b95a9a98..e8cefd8009304 100644 --- a/src/Symfony/Component/Workflow/Workflow.php +++ b/src/Symfony/Component/Workflow/Workflow.php @@ -30,7 +30,7 @@ class Workflow private $dispatcher; private $name; - public function __construct(Definition $definition, MarkingStoreInterface $markingStore = null, EventDispatcherInterface $dispatcher = null, $name = 'unnamed') + public function __construct(DefinitionInterface $definition, MarkingStoreInterface $markingStore = null, EventDispatcherInterface $dispatcher = null, $name = 'unnamed') { $this->definition = $definition; $this->markingStore = $markingStore ?: new PropertyAccessorMarkingStore();