Code Duplication    Length = 54-55 lines in 4 locations

src/Extensions/Gedmo/Locale.php 1 location

@@ 10-64 (lines=55) @@
7
use LaravelDoctrine\Fluent\Builders\Field;
8
use LaravelDoctrine\Fluent\Extensions\ExtensibleClassMetadata;
9
10
class Locale implements Buildable
11
{
12
    const MACRO_METHOD = 'locale';
13
14
    /**
15
     * @var ExtensibleClassMetadata
16
     */
17
    private $classMetadata;
18
19
    /**
20
     * @var string
21
     */
22
    private $fieldName;
23
24
    /**
25
     * Locale constructor.
26
     * @param ExtensibleClassMetadata $classMetadata
27
     * @param string                  $fieldName
28
     */
29
    public function __construct(ExtensibleClassMetadata $classMetadata, $fieldName)
30
    {
31
        $this->classMetadata = $classMetadata;
32
        $this->fieldName     = $fieldName;
33
    }
34
35
    /**
36
     * @return void
37
     */
38
    public static function enable()
39
    {
40
        Field::macro(self::MACRO_METHOD, function (Field $field) {
41
            return new static($field->getClassMetadata(), $field->getName());
42
        });
43
    }
44
45
    /**
46
     * Execute the build process
47
     */
48
    public function build()
49
    {
50
        $this->classMetadata->appendExtension($this->getExtensionName(), [
51
            'locale' => $this->fieldName
52
        ]);
53
    }
54
55
    /**
56
     * Return the name of the actual extension.
57
     *
58
     * @return string
59
     */
60
    public function getExtensionName()
61
    {
62
        return FluentDriver::EXTENSION_NAME;
63
    }
64
}
65

src/Extensions/Gedmo/SortablePosition.php 1 location

@@ 10-63 (lines=54) @@
7
use LaravelDoctrine\Fluent\Builders\Field;
8
use LaravelDoctrine\Fluent\Extensions\ExtensibleClassMetadata;
9
10
class SortablePosition implements Buildable
11
{
12
    const MACRO_METHOD = 'sortablePosition';
13
14
    /**
15
     * @var ExtensibleClassMetadata
16
     */
17
    protected $classMetadata;
18
19
    /**
20
     * @var string
21
     */
22
    protected $fieldName;
23
24
    /**
25
     * @param ExtensibleClassMetadata $classMetadata
26
     * @param string                  $fieldName
27
     */
28
    public function __construct(ExtensibleClassMetadata $classMetadata, $fieldName)
29
    {
30
        $this->classMetadata = $classMetadata;
31
        $this->fieldName     = $fieldName;
32
    }
33
34
    /**
35
     * Return the name of the actual extension.
36
     *
37
     * @return string
38
     */
39
    public function getExtensionName()
40
    {
41
        return FluentDriver::EXTENSION_NAME;
42
    }
43
44
    /**
45
     * @return void
46
     */
47
    public static function enable()
48
    {
49
        Field::macro(self::MACRO_METHOD, function (Field $builder) {
50
            return new static($builder->getClassMetadata(), $builder->getName());
51
        });
52
    }
53
54
    /**
55
     * Execute the build process
56
     */
57
    public function build()
58
    {
59
        $this->classMetadata->appendExtension($this->getExtensionName(), [
60
            'position' => $this->fieldName
61
        ]);
62
    }
63
}
64

src/Extensions/Gedmo/TranslationClass.php 1 location

@@ 10-64 (lines=55) @@
7
use LaravelDoctrine\Fluent\Builders\Builder;
8
use LaravelDoctrine\Fluent\Extensions\ExtensibleClassMetadata;
9
10
class TranslationClass implements Buildable
11
{
12
    const MACRO_METHOD = 'translationClass';
13
14
    /**
15
     * @var ExtensibleClassMetadata
16
     */
17
    private $classMetadata;
18
19
    /**
20
     * @var string
21
     */
22
    private $class;
23
24
    /**
25
     * Locale constructor.
26
     * @param ExtensibleClassMetadata $classMetadata
27
     * @param string                  $class
28
     */
29
    public function __construct(ExtensibleClassMetadata $classMetadata, $class)
30
    {
31
        $this->classMetadata = $classMetadata;
32
        $this->class         = $class;
33
    }
34
35
    /**
36
     * @return void
37
     */
38
    public static function enable()
39
    {
40
        Builder::macro(self::MACRO_METHOD, function (Builder $builder, $class) {
41
            return new static($builder->getClassMetadata(), $class);
42
        });
43
    }
44
45
    /**
46
     * Execute the build process
47
     */
48
    public function build()
49
    {
50
        $this->classMetadata->appendExtension($this->getExtensionName(), [
51
            'translationClass' => $this->class
52
        ]);
53
    }
54
55
    /**
56
     * Return the name of the actual extension.
57
     *
58
     * @return string
59
     */
60
    public function getExtensionName()
61
    {
62
        return FluentDriver::EXTENSION_NAME;
63
    }
64
}
65

src/Extensions/Gedmo/TreePathHash.php 1 location

@@ 10-63 (lines=54) @@
7
use LaravelDoctrine\Fluent\Builders\Field;
8
use LaravelDoctrine\Fluent\Extensions\ExtensibleClassMetadata;
9
10
class TreePathHash implements Buildable
11
{
12
    const MACRO_METHOD = 'treePathHash';
13
14
    /**
15
     * @var ExtensibleClassMetadata
16
     */
17
    protected $classMetadata;
18
19
    /**
20
     * @var string
21
     */
22
    protected $fieldName;
23
24
    /**
25
     * @param ExtensibleClassMetadata $classMetadata
26
     * @param string                  $fieldName
27
     */
28
    public function __construct(ExtensibleClassMetadata $classMetadata, $fieldName)
29
    {
30
        $this->classMetadata = $classMetadata;
31
        $this->fieldName     = $fieldName;
32
    }
33
34
    /**
35
     * Enable TreePathHash
36
     */
37
    public static function enable()
38
    {
39
        Field::macro(self::MACRO_METHOD, function (Field $field) {
40
            return new static($field->getClassMetadata(), $field->getName());
41
        });
42
    }
43
44
    /**
45
     * Execute the build process
46
     */
47
    public function build()
48
    {
49
        $this->classMetadata->mergeExtension($this->getExtensionName(), [
50
            'path_hash' => $this->fieldName,
51
        ]);
52
    }
53
54
    /**
55
     * Return the name of the actual extension.
56
     *
57
     * @return string
58
     */
59
    public function getExtensionName()
60
    {
61
        return FluentDriver::EXTENSION_NAME;
62
    }
63
}
64