| @@ 22-110 (lines=89) @@ | ||
| 19 | * |
|
| 20 | * @author Beñat Espiña <[email protected]> |
|
| 21 | */ |
|
| 22 | class BadgeCount implements BadgeCountInterface |
|
| 23 | { |
|
| 24 | /** |
|
| 25 | * Number of bronze badges. |
|
| 26 | * |
|
| 27 | * @var int |
|
| 28 | */ |
|
| 29 | protected $bronze; |
|
| 30 | ||
| 31 | /** |
|
| 32 | * Number of gold badges. |
|
| 33 | * |
|
| 34 | * @var int |
|
| 35 | */ |
|
| 36 | protected $gold; |
|
| 37 | ||
| 38 | /** |
|
| 39 | * Number of silver badges. |
|
| 40 | * |
|
| 41 | * @var int |
|
| 42 | */ |
|
| 43 | protected $silver; |
|
| 44 | ||
| 45 | /** |
|
| 46 | * Constructor. |
|
| 47 | * |
|
| 48 | * @param null|mixed[] $json The json string being decoded |
|
| 49 | */ |
|
| 50 | public function __construct($json = null) |
|
| 51 | { |
|
| 52 | $this->bronze = Util::setIfIntegerExists($json, 'bronze'); |
|
| 53 | $this->gold = Util::setIfIntegerExists($json, 'gold'); |
|
| 54 | $this->silver = Util::setIfIntegerExists($json, 'silver'); |
|
| 55 | } |
|
| 56 | ||
| 57 | /** |
|
| 58 | * {@inheritdoc} |
|
| 59 | */ |
|
| 60 | public function setBronze($bronze) |
|
| 61 | { |
|
| 62 | $this->bronze = $bronze; |
|
| 63 | ||
| 64 | return $this; |
|
| 65 | } |
|
| 66 | ||
| 67 | /** |
|
| 68 | * {@inheritdoc} |
|
| 69 | */ |
|
| 70 | public function getBronze() |
|
| 71 | { |
|
| 72 | return $this->bronze; |
|
| 73 | } |
|
| 74 | ||
| 75 | /** |
|
| 76 | * {@inheritdoc} |
|
| 77 | */ |
|
| 78 | public function setGold($gold) |
|
| 79 | { |
|
| 80 | $this->gold = $gold; |
|
| 81 | ||
| 82 | return $this; |
|
| 83 | } |
|
| 84 | ||
| 85 | /** |
|
| 86 | * {@inheritdoc} |
|
| 87 | */ |
|
| 88 | public function getGold() |
|
| 89 | { |
|
| 90 | return $this->gold; |
|
| 91 | } |
|
| 92 | ||
| 93 | /** |
|
| 94 | * {@inheritdoc} |
|
| 95 | */ |
|
| 96 | public function setSilver($silver) |
|
| 97 | { |
|
| 98 | $this->silver = $silver; |
|
| 99 | ||
| 100 | return $this; |
|
| 101 | } |
|
| 102 | ||
| 103 | /** |
|
| 104 | * {@inheritdoc} |
|
| 105 | */ |
|
| 106 | public function getSilver() |
|
| 107 | { |
|
| 108 | return $this->silver; |
|
| 109 | } |
|
| 110 | } |
|
| 111 | ||
| @@ 23-129 (lines=107) @@ | ||
| 20 | * |
|
| 21 | * @author Beñat Espiña <[email protected]> |
|
| 22 | */ |
|
| 23 | trait CountTrait |
|
| 24 | { |
|
| 25 | /** |
|
| 26 | * Answer count. |
|
| 27 | * |
|
| 28 | * @var int |
|
| 29 | */ |
|
| 30 | protected $answerCount; |
|
| 31 | ||
| 32 | /** |
|
| 33 | * The total Badges, segregated by rank. |
|
| 34 | * |
|
| 35 | * @var \BenatEspina\StackExchangeApiClient\Model\Interfaces\BadgeCountInterface |
|
| 36 | */ |
|
| 37 | protected $badgeCount; |
|
| 38 | ||
| 39 | /** |
|
| 40 | * Number of questions. |
|
| 41 | * |
|
| 42 | * @var int |
|
| 43 | */ |
|
| 44 | protected $questionCount; |
|
| 45 | ||
| 46 | /** |
|
| 47 | * Sets number of answers. |
|
| 48 | * |
|
| 49 | * @param int $answerCount The number of answers |
|
| 50 | * |
|
| 51 | * @return $this self Object |
|
| 52 | */ |
|
| 53 | public function setAnswerCount($answerCount) |
|
| 54 | { |
|
| 55 | $this->answerCount = $answerCount; |
|
| 56 | ||
| 57 | return $this; |
|
| 58 | } |
|
| 59 | ||
| 60 | /** |
|
| 61 | * Gets number of answers. |
|
| 62 | * |
|
| 63 | * @return int |
|
| 64 | */ |
|
| 65 | public function getAnswerCount() |
|
| 66 | { |
|
| 67 | return $this->answerCount; |
|
| 68 | } |
|
| 69 | ||
| 70 | /** |
|
| 71 | * Sets badge count. |
|
| 72 | * |
|
| 73 | * @param \BenatEspina\StackExchangeApiClient\Model\Interfaces\BadgeCountInterface $badgeCount The badge count |
|
| 74 | * |
|
| 75 | * @return $this self Object |
|
| 76 | */ |
|
| 77 | public function setBadgeCount(BadgeCountInterface $badgeCount) |
|
| 78 | { |
|
| 79 | $this->badgeCount = $badgeCount; |
|
| 80 | ||
| 81 | return $this; |
|
| 82 | } |
|
| 83 | ||
| 84 | /** |
|
| 85 | * Gets badge count. |
|
| 86 | * |
|
| 87 | * @return \BenatEspina\StackExchangeApiClient\Model\Interfaces\BadgeCountInterface |
|
| 88 | */ |
|
| 89 | public function getBadgeCount() |
|
| 90 | { |
|
| 91 | return $this->badgeCount; |
|
| 92 | } |
|
| 93 | ||
| 94 | /** |
|
| 95 | * Sets question id. |
|
| 96 | * |
|
| 97 | * @param int $questionCount The question id |
|
| 98 | * |
|
| 99 | * @return $this self Object |
|
| 100 | */ |
|
| 101 | public function setQuestionCount($questionCount) |
|
| 102 | { |
|
| 103 | $this->questionCount = $questionCount; |
|
| 104 | ||
| 105 | return $this; |
|
| 106 | } |
|
| 107 | ||
| 108 | /** |
|
| 109 | * Gets question id. |
|
| 110 | * |
|
| 111 | * @return int |
|
| 112 | */ |
|
| 113 | public function getQuestionCount() |
|
| 114 | { |
|
| 115 | return $this->questionCount; |
|
| 116 | } |
|
| 117 | ||
| 118 | /** |
|
| 119 | * Loads the variables if the data exist into resource. It works like a constructor. |
|
| 120 | * |
|
| 121 | * @param null|mixed[] $resource The resource |
|
| 122 | */ |
|
| 123 | protected function loadCount($resource) |
|
| 124 | { |
|
| 125 | $this->answerCount = Util::setIfIntegerExists($resource, 'answer_count'); |
|
| 126 | $this->badgeCount = new BadgeCount(Util::setIfArrayExists($resource, 'badge_counts')); |
|
| 127 | $this->questionCount = Util::setIfIntegerExists($resource, 'question_count'); |
|
| 128 | } |
|
| 129 | } |
|
| 130 | ||