Skip to content

Commit 86f2ad4

Browse files
committed
Accept multiple filters with a single addFilter call
1 parent 9a25740 commit 86f2ad4

File tree

2 files changed

+20
-18
lines changed

2 files changed

+20
-18
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "wol-soft/php-json-schema-model-generator",
33
"homepage": "https://github.com/wol-soft/php-json-schema-model-generator",
4-
"description": "Creates (immutable) PHP model classes from JSON-Schema files",
4+
"description": "Creates (immutable) PHP model classes from JSON-Schema files including all validation rules as PHP code",
55
"type": "library",
66
"license": "MIT",
77
"authors": [

src/Model/GeneratorConfiguration.php

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -67,32 +67,34 @@ public function __construct()
6767
/**
6868
* Add an additional filter
6969
*
70-
* @param FilterInterface $filter
70+
* @param FilterInterface ...$additionalFilter
7171
*
7272
* @return $this
7373
*
7474
* @throws InvalidFilterException
7575
*/
76-
public function addFilter(FilterInterface $filter): self
76+
public function addFilter(FilterInterface ...$additionalFilter): self
7777
{
78-
$this->validateFilterCallback($filter->getFilter(), "Invalid filter callback for filter {$filter->getToken()}");
79-
80-
if ($filter instanceof TransformingFilterInterface) {
81-
$this->validateFilterCallback(
82-
$filter->getSerializer(),
83-
"Invalid serializer callback for filter {$filter->getToken()}"
84-
);
85-
}
78+
foreach ($additionalFilter as $filter) {
79+
$this->validateFilterCallback($filter->getFilter(), "Invalid filter callback for filter {$filter->getToken()}");
80+
81+
if ($filter instanceof TransformingFilterInterface) {
82+
$this->validateFilterCallback(
83+
$filter->getSerializer(),
84+
"Invalid serializer callback for filter {$filter->getToken()}"
85+
);
86+
}
8687

87-
foreach ($filter->getAcceptedTypes() as $acceptedType) {
88-
if (!in_array($acceptedType, ['integer', 'number', 'boolean', 'string', 'array', 'null']) &&
89-
!class_exists($acceptedType)
90-
) {
91-
throw new InvalidFilterException('Filter accepts invalid types');
88+
foreach ($filter->getAcceptedTypes() as $acceptedType) {
89+
if (!in_array($acceptedType, ['integer', 'number', 'boolean', 'string', 'array', 'null']) &&
90+
!class_exists($acceptedType)
91+
) {
92+
throw new InvalidFilterException('Filter accepts invalid types');
93+
}
9294
}
93-
}
9495

95-
$this->filter[$filter->getToken()] = $filter;
96+
$this->filter[$filter->getToken()] = $filter;
97+
}
9698

9799
return $this;
98100
}

0 commit comments

Comments
 (0)