FOSSology  4.7.1
Open Source License Compliance by Open Source Software
Reuser.php
Go to the documentation of this file.
1 <?php
2 /*
3  SPDX-FileCopyrightText: © 2018, 2021 Siemens AG
4 
5  SPDX-License-Identifier: GPL-2.0-only
6 */
11 namespace Fossology\UI\Api\Models;
12 
17 class Reuser
18 {
23  private $reuseUpload;
28  private $reuseGroup;
33  private $reuseMain;
38  private $reuseEnhanced;
43  private $reuseReport;
48  private $reuseCopyright;
53  private $reuseBulk;
54 
65  public function __construct($reuseUpload, $reuseGroup, $reuseMain = false,
66  $reuseEnhanced = false)
67  {
68  if (is_array($reuseUpload)) {
69  if (empty($reuseUpload)) {
70  throw new \UnexpectedValueException(
71  "reuse_upload should be integer or array of integers", 400);
72  }
73  $filtered = array_filter($reuseUpload, function ($val) {
74  return filter_var($val, FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE) !== null;
75  });
76  if (count($filtered) !== count($reuseUpload)) {
77  throw new \UnexpectedValueException(
78  "reuse_upload should be integer or array of integers", 400);
79  }
80  $this->reuseUpload = array_map('intval', $reuseUpload);
81  } elseif (is_numeric($reuseUpload)) {
82  $this->reuseUpload = $reuseUpload;
83  } else {
84  throw new \UnexpectedValueException(
85  "reuse_upload should be integer or array of integers", 400);
86  }
87  $this->reuseGroup = $reuseGroup;
88  $this->reuseMain = $reuseMain;
89  $this->reuseEnhanced = $reuseEnhanced;
90  $this->reuseReport = false;
91  $this->reuseCopyright = false;
92  $this->reuseBulk = false;
93  }
94 
103  public function setUsingArray($reuserArray, $version = ApiVersion::V1)
104  {
105  if (array_key_exists(($version == ApiVersion::V2? "reuseUpload" : "reuse_upload"), $reuserArray)) {
106  $this->setReuseUpload($reuserArray[$version == ApiVersion::V2? "reuseUpload" : "reuse_upload"]);
107  }
108  if (array_key_exists(($version == ApiVersion::V2? "reuseGroup" : "reuse_group"), $reuserArray)) {
109  $this->reuseGroup = $reuserArray[$version == ApiVersion::V2? "reuseGroup" : "reuse_group"];
110  }
111  if (array_key_exists(($version == ApiVersion::V2? "reuseMain" : "reuse_main"), $reuserArray)) {
112  $this->setReuseMain($reuserArray[$version == ApiVersion::V2? "reuseMain" : "reuse_main"]);
113  }
114  if (array_key_exists(($version == ApiVersion::V2? "reuseEnhanced" : "reuse_enhanced"), $reuserArray)) {
115  $this->setReuseEnhanced($reuserArray[$version == ApiVersion::V2? "reuseEnhanced" : "reuse_enhanced"]);
116  }
117  if (array_key_exists(($version == ApiVersion::V2? "reuseReport" : "reuse_report"), $reuserArray)) {
118  $this->setReuseReport($reuserArray[$version == ApiVersion::V2? "reuseReport" : "reuse_report"]);
119  }
120  if (array_key_exists(($version == ApiVersion::V2? "reuseCopyright" : "reuse_copyright"), $reuserArray)) {
121  $this->setReuseCopyright($reuserArray[$version == ApiVersion::V2? "reuseCopyright" : "reuse_copyright"]);
122  }
123  if (array_key_exists(($version == ApiVersion::V2? "reuseBulk" : "reuse_bulk"), $reuserArray)) {
124  $this->setReuseBulk($reuserArray[$version == ApiVersion::V2? "reuseBulk" : "reuse_bulk"]);
125  }
126  if ($this->reuseUpload === null || (is_array($this->reuseUpload) && empty($this->reuseUpload))) {
127  throw new \UnexpectedValueException(
128  "reuse_upload should be integer or array of integers", 400);
129  }
130  if ($this->reuseGroup === null) {
131  throw new \UnexpectedValueException(
132  "reuse_group should be a string", 400);
133  }
134  return $this;
135  }
136 
138 
141  public function getReuseUpload()
142  {
143  return $this->reuseUpload;
144  }
145 
150  public function getReuseUploads()
151  {
152  if (is_array($this->reuseUpload)) {
153  return $this->reuseUpload;
154  }
155  return [$this->reuseUpload];
156  }
157 
161  public function getReuseGroup()
162  {
163  return $this->reuseGroup;
164  }
165 
169  public function getReuseMain()
170  {
171  return $this->reuseMain;
172  }
173 
177  public function getReuseEnhanced()
178  {
179  return $this->reuseEnhanced;
180  }
181 
185  public function getReuseReport()
186  {
187  return $this->reuseReport;
188  }
189 
193  public function getReuseCopyright()
194  {
195  return $this->reuseCopyright;
196  }
197 
201  public function getReuseBulk()
202  {
203  return $this->reuseBulk;
204  }
205 
207 
210  public function setReuseUpload($reuseUpload)
211  {
212  if (is_array($reuseUpload)) {
213  if (empty($reuseUpload)) {
214  throw new \UnexpectedValueException("Reuse upload should be an integer or array of integers!", 400);
215  }
216  $filtered = array_filter($reuseUpload, function ($val) {
217  return filter_var($val, FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE) !== null;
218  });
219  if (count($filtered) !== count($reuseUpload)) {
220  throw new \UnexpectedValueException("Reuse upload should be an integer or array of integers!", 400);
221  }
222  $this->reuseUpload = array_map('intval', $reuseUpload);
223  } else {
224  $this->reuseUpload = filter_var($reuseUpload,
225  FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE);
226  if ($this->reuseUpload === null) {
227  throw new \UnexpectedValueException("Reuse upload should be an integer or array of integers!", 400);
228  }
229  }
230  }
231 
235  public function setReuseGroup($reuseGroup)
236  {
237  $this->reuseGroup = $reuseGroup;
238  if ($this->reuseGroup === null) {
239  throw new \UnexpectedValueException("Reuse group should be a string!", 400);
240  }
241  }
242 
246  public function setReuseMain($reuseMain)
247  {
248  $this->reuseMain = filter_var($reuseMain,
249  FILTER_VALIDATE_BOOLEAN);
250  }
251 
256  {
257  $this->reuseEnhanced = filter_var($reuseEnhanced,
258  FILTER_VALIDATE_BOOLEAN);
259  }
260 
264  public function setReuseReport($reuseReport)
265  {
266  $this->reuseReport = filter_var($reuseReport,
267  FILTER_VALIDATE_BOOLEAN);
268  }
269 
274  {
275  $this->reuseCopyright = filter_var($reuseCopyright,
276  FILTER_VALIDATE_BOOLEAN);
277  }
278 
282  public function setReuseBulk($reuseBulk)
283  {
284  $this->reuseBulk = filter_var($reuseBulk,
285  FILTER_VALIDATE_BOOLEAN);
286  }
287 
292  public function getArray($version = ApiVersion::V1)
293  {
294  if ($version == ApiVersion::V2) {
295  return [
296  "reuseUpload" => $this->reuseUpload,
297  "reuseGroup" => $this->reuseGroup,
298  "reuseMain" => $this->reuseMain,
299  "reuseEnhanced" => $this->reuseEnhanced,
300  "reuseReport" => $this->reuseReport,
301  "reuseCopyright" => $this->reuseCopyright,
302  "reuseBulk" => $this->reuseBulk
303  ];
304  } else {
305  return [
306  "reuse_upload" => $this->reuseUpload,
307  "reuse_group" => $this->reuseGroup,
308  "reuse_main" => $this->reuseMain,
309  "reuse_enhanced" => $this->reuseEnhanced,
310  "reuse_report" => $this->reuseReport,
311  "reuse_copyright" => $this->reuseCopyright,
312  "reuse_bulk" => $this->reuseBulk
313  ];
314  }
315  }
316 }
Model to hold info required by Reuser agent.
Definition: Reuser.php:18
setReuseReport($reuseReport)
Definition: Reuser.php:264
setReuseUpload($reuseUpload)
Definition: Reuser.php:210
__construct($reuseUpload, $reuseGroup, $reuseMain=false, $reuseEnhanced=false)
Definition: Reuser.php:65
setReuseCopyright($reuseCopyright)
Definition: Reuser.php:273
getArray($version=ApiVersion::V1)
Definition: Reuser.php:292
setUsingArray($reuserArray, $version=ApiVersion::V1)
Definition: Reuser.php:103
setReuseEnhanced($reuseEnhanced)
Definition: Reuser.php:255