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;
49 
60  public function __construct($reuseUpload, $reuseGroup, $reuseMain = false,
61  $reuseEnhanced = false)
62  {
63  if (is_array($reuseUpload)) {
64  if (empty($reuseUpload)) {
65  throw new \UnexpectedValueException(
66  "reuse_upload should be integer or array of integers", 400);
67  }
68  $filtered = array_filter($reuseUpload, function ($val) {
69  return filter_var($val, FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE) !== null;
70  });
71  if (count($filtered) !== count($reuseUpload)) {
72  throw new \UnexpectedValueException(
73  "reuse_upload should be integer or array of integers", 400);
74  }
75  $this->reuseUpload = array_map('intval', $reuseUpload);
76  } elseif (is_numeric($reuseUpload)) {
77  $this->reuseUpload = $reuseUpload;
78  } else {
79  throw new \UnexpectedValueException(
80  "reuse_upload should be integer or array of integers", 400);
81  }
82  $this->reuseGroup = $reuseGroup;
83  $this->reuseMain = $reuseMain;
84  $this->reuseEnhanced = $reuseEnhanced;
85  $this->reuseReport = false;
86  $this->reuseCopyright = false;
87  }
88 
97  public function setUsingArray($reuserArray, $version = ApiVersion::V1)
98  {
99  if (array_key_exists(($version == ApiVersion::V2? "reuseUpload" : "reuse_upload"), $reuserArray)) {
100  $this->setReuseUpload($reuserArray[$version == ApiVersion::V2? "reuseUpload" : "reuse_upload"]);
101  }
102  if (array_key_exists(($version == ApiVersion::V2? "reuseGroup" : "reuse_group"), $reuserArray)) {
103  $this->reuseGroup = $reuserArray[$version == ApiVersion::V2? "reuseGroup" : "reuse_group"];
104  }
105  if (array_key_exists(($version == ApiVersion::V2? "reuseMain" : "reuse_main"), $reuserArray)) {
106  $this->setReuseMain($reuserArray[$version == ApiVersion::V2? "reuseMain" : "reuse_main"]);
107  }
108  if (array_key_exists(($version == ApiVersion::V2? "reuseEnhanced" : "reuse_enhanced"), $reuserArray)) {
109  $this->setReuseEnhanced($reuserArray[$version == ApiVersion::V2? "reuseEnhanced" : "reuse_enhanced"]);
110  }
111  if (array_key_exists(($version == ApiVersion::V2? "reuseReport" : "reuse_report"), $reuserArray)) {
112  $this->setReuseReport($reuserArray[$version == ApiVersion::V2? "reuseReport" : "reuse_report"]);
113  }
114  if (array_key_exists(($version == ApiVersion::V2? "reuseCopyright" : "reuse_copyright"), $reuserArray)) {
115  $this->setReuseCopyright($reuserArray[$version == ApiVersion::V2? "reuseCopyright" : "reuse_copyright"]);
116  }
117  if ($this->reuseUpload === null || (is_array($this->reuseUpload) && empty($this->reuseUpload))) {
118  throw new \UnexpectedValueException(
119  "reuse_upload should be integer or array of integers", 400);
120  }
121  if ($this->reuseGroup === null) {
122  throw new \UnexpectedValueException(
123  "reuse_group should be a string", 400);
124  }
125  return $this;
126  }
127 
129 
132  public function getReuseUpload()
133  {
134  return $this->reuseUpload;
135  }
136 
141  public function getReuseUploads()
142  {
143  if (is_array($this->reuseUpload)) {
144  return $this->reuseUpload;
145  }
146  return [$this->reuseUpload];
147  }
148 
152  public function getReuseGroup()
153  {
154  return $this->reuseGroup;
155  }
156 
160  public function getReuseMain()
161  {
162  return $this->reuseMain;
163  }
164 
168  public function getReuseEnhanced()
169  {
170  return $this->reuseEnhanced;
171  }
172 
176  public function getReuseReport()
177  {
178  return $this->reuseReport;
179  }
180 
184  public function getReuseCopyright()
185  {
186  return $this->reuseCopyright;
187  }
188 
190 
193  public function setReuseUpload($reuseUpload)
194  {
195  if (is_array($reuseUpload)) {
196  if (empty($reuseUpload)) {
197  throw new \UnexpectedValueException("Reuse upload should be an integer or array of integers!", 400);
198  }
199  $filtered = array_filter($reuseUpload, function ($val) {
200  return filter_var($val, FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE) !== null;
201  });
202  if (count($filtered) !== count($reuseUpload)) {
203  throw new \UnexpectedValueException("Reuse upload should be an integer or array of integers!", 400);
204  }
205  $this->reuseUpload = array_map('intval', $reuseUpload);
206  } else {
207  $this->reuseUpload = filter_var($reuseUpload,
208  FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE);
209  if ($this->reuseUpload === null) {
210  throw new \UnexpectedValueException("Reuse upload should be an integer or array of integers!", 400);
211  }
212  }
213  }
214 
218  public function setReuseGroup($reuseGroup)
219  {
220  $this->reuseGroup = $reuseGroup;
221  if ($this->reuseGroup === null) {
222  throw new \UnexpectedValueException("Reuse group should be a string!", 400);
223  }
224  }
225 
229  public function setReuseMain($reuseMain)
230  {
231  $this->reuseMain = filter_var($reuseMain,
232  FILTER_VALIDATE_BOOLEAN);
233  }
234 
239  {
240  $this->reuseEnhanced = filter_var($reuseEnhanced,
241  FILTER_VALIDATE_BOOLEAN);
242  }
243 
247  public function setReuseReport($reuseReport)
248  {
249  $this->reuseReport = filter_var($reuseReport,
250  FILTER_VALIDATE_BOOLEAN);
251  }
252 
257  {
258  $this->reuseCopyright = filter_var($reuseCopyright,
259  FILTER_VALIDATE_BOOLEAN);
260  }
261 
266  public function getArray($version = ApiVersion::V1)
267  {
268  if ($version == ApiVersion::V2) {
269  return [
270  "reuseUpload" => $this->reuseUpload,
271  "reuseGroup" => $this->reuseGroup,
272  "reuseMain" => $this->reuseMain,
273  "reuseEnhanced" => $this->reuseEnhanced,
274  "reuseReport" => $this->reuseReport,
275  "reuseCopyright" => $this->reuseCopyright
276  ];
277  } else {
278  return [
279  "reuse_upload" => $this->reuseUpload,
280  "reuse_group" => $this->reuseGroup,
281  "reuse_main" => $this->reuseMain,
282  "reuse_enhanced" => $this->reuseEnhanced,
283  "reuse_report" => $this->reuseReport,
284  "reuse_copyright" => $this->reuseCopyright
285  ];
286  }
287  }
288 }
Model to hold info required by Reuser agent.
Definition: Reuser.php:18
setReuseReport($reuseReport)
Definition: Reuser.php:247
setReuseUpload($reuseUpload)
Definition: Reuser.php:193
__construct($reuseUpload, $reuseGroup, $reuseMain=false, $reuseEnhanced=false)
Definition: Reuser.php:60
setReuseCopyright($reuseCopyright)
Definition: Reuser.php:256
getArray($version=ApiVersion::V1)
Definition: Reuser.php:266
setUsingArray($reuserArray, $version=ApiVersion::V1)
Definition: Reuser.php:97
setReuseEnhanced($reuseEnhanced)
Definition: Reuser.php:238