Completed
Pull Request — master (#30)
by nonanerz
04:14
created

SurveyType   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 183
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 2

Test Coverage

Coverage 18.75%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 12
c 1
b 0
f 0
lcom 2
cbo 2
dl 0
loc 183
ccs 6
cts 32
cp 0.1875
rs 10

12 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A getId() 0 4 1
A setName() 0 6 1
A getName() 0 4 1
A setDescription() 0 6 1
A getDescription() 0 4 1
A getSections() 0 4 1
A getSurveys() 0 4 1
A addSection() 0 6 1
A removeSection() 0 4 1
A addSurvey() 0 6 1
A removeSurvey() 0 4 1
1
<?php
2
3
namespace AppBundle\Entity\Survey;
4
5
use Doctrine\ORM\Mapping as ORM;
6
use Knp\DoctrineBehaviors\Model as ORMBehaviors;
7
use Doctrine\Common\Collections\ArrayCollection;
8
use Symfony\Component\Validator\Constraints as Assert;
9
use Symfony\Component\Serializer\Annotation\Groups;
10
11
/**
12
 * SurveyType.
13
 *
14
 * @ORM\Entity(repositoryClass="AppBundle\Repository\SurveyTypeRepository")
15
 */
16
class SurveyType
17
{
18
    use ORMBehaviors\Timestampable\Timestampable;
19
20
    /**
21
     * @var int
22
     *
23
     * @ORM\Column(type="integer")
24
     * @ORM\Id
25
     * @ORM\GeneratedValue(strategy="AUTO")
26
     */
27
    private $id;
28
29
    /**
30
     * @var string
31
     * @Assert\NotBlank()
32
     * @Assert\Type("string")
33
     * @Assert\Length(
34
     *      min = 2,
35
     *      max = 190
36
     * )
37
     * @ORM\Column(type="string", length=190, unique=true)
38
     * @Groups({"group1"})
39
     */
40
    private $name;
41
42
    /**
43
     * @var string
44
     * @Assert\Type("string")
45
     * @Assert\Length(
46
     *      min = 2,
47
     *      max = 500
48
     * )
49
     * @ORM\Column(type="string", length=500, nullable=true)
50
     * @Groups({"group2"})
51
     */
52
    private $description;
53
54
    /**
55
     * @var ArrayCollection[SurveyTypeSection]
56
     * @ORM\OneToMany(targetEntity="SurveyTypeSection", mappedBy="surveyType", cascade={"persist", "remove"})
57
     * @Groups({"group2"})
58
     */
59
    private $sections;
60
61
    /**
62
     * @var ArrayCollection[Survey]
63
     * @ORM\OneToMany(targetEntity="Survey", mappedBy="type", cascade={"persist", "remove"})
64
     */
65
    private $surveys;
66
67
    public function __construct()
68
    {
69
        $this->sections = new ArrayCollection();
70
        $this->surveys = new ArrayCollection();
71
    }
72
73
    /**
74
     * Get id.
75
     *
76
     * @return int
77
     */
78
    public function getId()
79
    {
80
        return $this->id;
81
    }
82
83
    /**
84
     * Set name.
85
     *
86
     * @param string $name
87
     *
88
     * @return SurveyType
89
     */
90
    public function setName($name)
91
    {
92
        $this->name = $name;
93
94
        return $this;
95
    }
96
97
    /**
98
     * Get name.
99
     *
100
     * @return string
101
     */
102 5
    public function getName()
103
    {
104 5
        return $this->name;
105
    }
106
107
    /**
108
     * Set description.
109
     *
110
     * @param string $description
111
     *
112
     * @return SurveyType
113
     */
114
    public function setDescription($description)
115
    {
116
        $this->description = $description;
117
118
        return $this;
119
    }
120
121
    /**
122
     * Get description.
123
     *
124
     * @return string
125
     */
126 3
    public function getDescription()
127
    {
128 3
        return $this->description;
129
    }
130
131
    /**
132
     * Get SurveysTypeSection.
133
     *
134
     * @return ArrayCollection
135
     */
136 4
    public function getSections()
137
    {
138 4
        return $this->sections;
139
    }
140
141
    /**
142
     * Get Surveys.
143
     *
144
     * @return ArrayCollection
145
     */
146
    public function getSurveys()
147
    {
148
        return $this->surveys;
149
    }
150
151
    /**
152
     * Add section.
153
     *
154
     * @param \AppBundle\Entity\Survey\SurveyTypeSection $section
155
     *
156
     * @return SurveyType
157
     */
158
    public function addSection(\AppBundle\Entity\Survey\SurveyTypeSection $section)
159
    {
160
        $this->sections[] = $section;
161
162
        return $this;
163
    }
164
165
    /**
166
     * Remove section.
167
     *
168
     * @param \AppBundle\Entity\Survey\SurveyTypeSection $section
169
     */
170
    public function removeSection(\AppBundle\Entity\Survey\SurveyTypeSection $section)
171
    {
172
        $this->sections->removeElement($section);
173
    }
174
175
    /**
176
     * Add survey.
177
     *
178
     * @param \AppBundle\Entity\Survey\Survey $survey
179
     *
180
     * @return SurveyType
181
     */
182
    public function addSurvey(\AppBundle\Entity\Survey\Survey $survey)
183
    {
184
        $this->surveys[] = $survey;
185
186
        return $this;
187
    }
188
189
    /**
190
     * Remove survey.
191
     *
192
     * @param \AppBundle\Entity\Survey\Survey $survey
193
     */
194
    public function removeSurvey(\AppBundle\Entity\Survey\Survey $survey)
195
    {
196
        $this->surveys->removeElement($survey);
197
    }
198
}
199