Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace DI\Definition;
6
 
7
/**
8
 * Factory that decorates a sub-definition.
9
 *
10
 * @since 5.0
11
 * @author Matthieu Napoli <matthieu@mnapoli.fr>
12
 */
13
class DecoratorDefinition extends FactoryDefinition implements Definition, ExtendsPreviousDefinition
14
{
15
    private ?Definition $decorated = null;
16
 
17
    public function setExtendedDefinition(Definition $definition) : void
18
    {
19
        $this->decorated = $definition;
20
    }
21
 
22
    public function getDecoratedDefinition() : ?Definition
23
    {
24
        return $this->decorated;
25
    }
26
 
27
    public function replaceNestedDefinitions(callable $replacer) : void
28
    {
29
        // no nested definitions
30
    }
31
 
32
    public function __toString() : string
33
    {
34
        return 'Decorate(' . $this->getName() . ')';
35
    }
36
}