Completed
Push — master ( 5c4d20...2b3e4b )
by
unknown
12s
created

BaseUserDataTransferObject   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 76
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 9
c 0
b 0
f 0
lcom 1
cbo 2
dl 0
loc 76
rs 10

7 Methods

Rating   Name   Duplication   Size   Complexity  
A fromUser() 0 14 2
A getEntity() 0 15 2
A getId() 0 4 1
A getUserName() 0 4 1
A getDisplayName() 0 4 1
A getEmail() 0 4 1
A getPlainPassword() 0 4 1
1
<?php
2
3
namespace SumoCoders\FrameworkMultiUserBundle\DataTransferObject;
4
5
use SumoCoders\FrameworkMultiUserBundle\DataTransferObject\Interfaces\UserDataTransferObject
6
    as UserDataTransferObjectInterface;
7
use SumoCoders\FrameworkMultiUserBundle\User\Interfaces\User;
8
use SumoCoders\FrameworkMultiUserBundle\Entity\BaseUser;
9
10
class BaseUserDataTransferObject implements UserDataTransferObjectInterface
11
{
12
    /** @var int */
13
    public $id;
14
15
    /** @var string */
16
    public $userName;
17
18
    /** @var string */
19
    public $displayName;
20
21
    /** @var string */
22
    public $email;
23
24
    /** @var string */
25
    public $plainPassword;
26
27
    /** @var User */
28
    protected $user;
29
30
    public static function fromUser(User $user)
31
    {
32
        $baseUserTransferObject = new static();
33
        $baseUserTransferObject->user = $user;
34
        $baseUserTransferObject->id = $user->getId();
35
        $baseUserTransferObject->userName = $user->getUsername();
36
        $baseUserTransferObject->displayName = $user->getDisplayName();
37
        $baseUserTransferObject->email = $user->getEmail();
38
        if ($user->hasPlainPassword()) {
39
            $baseUserTransferObject->plainPassword = $user->getPlainPassword();
40
        }
41
42
        return $baseUserTransferObject;
43
    }
44
45
    public function getEntity()
46
    {
47
        if ($this->user) {
48
            $this->user->change($this);
49
50
            return $this->user;
51
        }
52
53
        return new BaseUser(
54
            $this->userName,
55
            $this->plainPassword,
56
            $this->displayName,
57
            $this->email
58
        );
59
    }
60
61
    public function getId()
62
    {
63
        return $this->id;
64
    }
65
66
    public function getUserName()
67
    {
68
        return $this->userName;
69
    }
70
71
    public function getDisplayName()
72
    {
73
        return $this->displayName;
74
    }
75
76
    public function getEmail()
77
    {
78
        return $this->email;
79
    }
80
81
    public function getPlainPassword()
82
    {
83
        return $this->plainPassword;
84
    }
85
}
86