src_legacy/Tionvel/WorkflowBundle/Entity/WorkflowAssignee.php line 21

Open in your IDE?
  1. <?php
  2. namespace Tionvel\WorkflowBundle\Entity;
  3. use App\Entity\User;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Symfony\Component\Security\Core\User\UserInterface;
  6. /**
  7. * Class WorkflowAssignee
  8. * @package Tionvel\WorkflowBundle\Entity
  9. * @ORM\Entity()
  10. * @ORM\Table(
  11. * name="workflow_assignee",
  12. * indexes={
  13. * @ORM\Index(name="idx_was_state_user", columns={"state_id", "user_id"}),
  14. * @ORM\Index(name="idx_was_state_name", columns={"state_id", "name"})
  15. * }
  16. * )
  17. */
  18. class WorkflowAssignee
  19. {
  20. /**
  21. * @var int
  22. * @ORM\Id @ORM\Column(type="integer")
  23. * @ORM\GeneratedValue(strategy="AUTO")
  24. */
  25. private $id;
  26. /**
  27. * @var User
  28. * @ORM\ManyToOne(targetEntity="App\Entity\User")
  29. * @ORM\JoinColumn(onDelete="CASCADE")
  30. */
  31. private $user;
  32. /**
  33. * @var string
  34. * @ORM\Column(type="string")
  35. */
  36. private $name;
  37. /**
  38. * @var WorkflowState
  39. * @ORM\ManyToOne(
  40. * targetEntity="Tionvel\WorkflowBundle\Entity\WorkflowState", inversedBy="assignees"
  41. * )
  42. * @ORM\JoinColumn(
  43. * onDelete="CASCADE"
  44. * )
  45. */
  46. private $state;
  47. /**
  48. * @param User $user
  49. * @param $name
  50. * @return WorkflowAssignee
  51. */
  52. public static function create(User $user, $name)
  53. {
  54. $self = new self;
  55. $self->setUser($user);
  56. $self->setName($name);
  57. return $self;
  58. }
  59. /**
  60. * @return int
  61. */
  62. public function getId()
  63. {
  64. return $this->id;
  65. }
  66. /**
  67. * @return User
  68. */
  69. public function getUser()
  70. {
  71. return $this->user;
  72. }
  73. /**
  74. * @param User $user
  75. */
  76. public function setUser(User $user)
  77. {
  78. $this->user = $user;
  79. }
  80. /**
  81. * @param User $user
  82. * @return bool
  83. */
  84. public function isUser(UserInterface $user)
  85. {
  86. return $this->user === $user;
  87. }
  88. /**
  89. * @return string
  90. */
  91. public function getName()
  92. {
  93. return $this->name;
  94. }
  95. /**
  96. * @param string $name
  97. */
  98. public function setName(string $name)
  99. {
  100. $this->name = $name;
  101. }
  102. /**
  103. * @param $type
  104. * @return bool
  105. */
  106. public function isType($type)
  107. {
  108. return $type === $this->name;
  109. }
  110. /**
  111. * @return WorkflowState
  112. */
  113. public function getState()
  114. {
  115. return $this->state;
  116. }
  117. /**
  118. * @param WorkflowState $state
  119. */
  120. public function setState(WorkflowState $state)
  121. {
  122. $this->state = $state;
  123. }
  124. }