Code Duplication    Length = 31-31 lines in 2 locations

src/Element/IfFalseElement.php 1 location

@@ 18-48 (lines=31) @@
15
use Alchemy\Pipeline\Specification;
16
use Alchemy\Resource\Resource;
17
18
class IfFalseElement implements PipelineElement
19
{
20
    /**
21
     * @var Specification
22
     */
23
    private $specification;
24
25
    /**
26
     * @var PipelineElement
27
     */
28
    private $element;
29
30
    public function __construct(Specification $condition, PipelineElement $ifFalseElement)
31
    {
32
        $this->specification = $condition;
33
        $this->element = $ifFalseElement;
34
    }
35
36
    /**
37
     * @param \Alchemy\Resource\Resource $resource
38
     * @return \Alchemy\Resource\Resource
39
     */
40
    public function execute(Resource $resource)
41
    {
42
        if (! $this->specification->isSatisfiedBy($resource)) {
43
            $resource = $this->element->execute($resource);
44
        }
45
46
        return $resource;
47
    }
48
}
49

src/Element/IfTrueElement.php 1 location

@@ 18-48 (lines=31) @@
15
use Alchemy\Pipeline\Specification;
16
use Alchemy\Resource\Resource;
17
18
class IfTrueElement implements PipelineElement
19
{
20
    /**
21
     * @var Specification
22
     */
23
    private $specification;
24
25
    /**
26
     * @var PipelineElement
27
     */
28
    private $element;
29
30
    public function __construct(Specification $condition, PipelineElement $ifTrueElement)
31
    {
32
        $this->specification = $condition;
33
        $this->element = $ifTrueElement;
34
    }
35
36
    /**
37
     * @param \Alchemy\Resource\Resource $resource
38
     * @return \Alchemy\Resource\Resource
39
     */
40
    public function execute(Resource $resource)
41
    {
42
        if ($this->specification->isSatisfiedBy($resource)) {
43
            $resource = $this->element->execute($resource);
44
        }
45
46
        return $resource;
47
    }
48
}
49