|
@@ 44-51 (lines=8) @@
|
| 41 |
|
*/ |
| 42 |
|
public function can($transition, array $context = []) |
| 43 |
|
{ |
| 44 |
|
if (! isset($this->config['transitions'][$transition])) { |
| 45 |
|
throw new SMException(sprintf( |
| 46 |
|
'Transition "%s" does not exist on object "%s" with graph "%s".', |
| 47 |
|
$transition, |
| 48 |
|
get_class($this->object), |
| 49 |
|
$this->config['graph'] |
| 50 |
|
)); |
| 51 |
|
} |
| 52 |
|
|
| 53 |
|
if (! in_array($this->getState(), $this->config['transitions'][$transition]['from'])) { |
| 54 |
|
return false; |
|
@@ 125-132 (lines=8) @@
|
| 122 |
|
*/ |
| 123 |
|
protected function setState($state) |
| 124 |
|
{ |
| 125 |
|
if (! $this->hasState($state)) { |
| 126 |
|
throw new SMException(sprintf( |
| 127 |
|
'Cannot set the state to "%s" to object "%s" with graph "%s" because it is not pre-defined.', |
| 128 |
|
$state, |
| 129 |
|
get_class($this->object), |
| 130 |
|
$this->config['graph'] |
| 131 |
|
)); |
| 132 |
|
} |
| 133 |
|
|
| 134 |
|
$accessor = new PropertyAccessor(); |
| 135 |
|
$accessor->setValue($this->object, $this->config['property_path'], $state); |