Skip to content

Commit 0a93b8e

Browse files
committed
Fixed conditional mapper : elseif conditions were not correctly use
1 parent 9710cc8 commit 0a93b8e

File tree

9 files changed

+24
-26
lines changed

9 files changed

+24
-26
lines changed

src/Builder/ArrayMapper.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public function getNode(): Node
2525
name: null,
2626
subNodes: [
2727
'implements' => [
28-
new Node\Name\FullyQualified(\Kiboko\Contract\Mapping\CompiledMapperInterface::class),
28+
new Node\Name\FullyQualified('Kiboko\\Contract\\Mapping\\CompiledMapperInterface'),
2929
],
3030
'stmts' => [
3131
new Node\Stmt\ClassMethod(

src/Builder/ConditionalMapper.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,13 @@ private function compileConditions(array $alternatives): Node
3535

3636
/** @var Builder $builder */
3737
[$condition, $builder] = array_shift($alternatives);
38-
/** @var Node\Stmt\Expression $expression */
39-
$expression = $parser->parse('<?php '.$this->interpreter->compile($condition, ['input', 'output']).';')[0];
4038

4139
return new Node\Expr\New_(
4240
new Node\Stmt\Class_(
4341
name: null,
4442
subNodes: [
4543
'implements' => [
46-
new Node\Name\FullyQualified(\Kiboko\Contract\Mapping\CompiledMapperInterface::class),
44+
new Node\Name\FullyQualified('Kiboko\\Contract\\Mapping\\CompiledMapperInterface'),
4745
],
4846
'stmts' => [
4947
new Node\Stmt\Property(
@@ -108,7 +106,7 @@ function ($alternative) {
108106
],
109107
'stmts' => [
110108
new Node\Stmt\If_(
111-
cond: $expression->expr,
109+
cond: $parser->parse('<?php '.$this->interpreter->compile($condition, ['input', 'output']).';')[0]->expr ?? throw new \UnexpectedValueException('Expected parsing result to be an instance of Node\Expr.'),
112110
subNodes: [
113111
'stmts' => [
114112
new Node\Stmt\Return_(
@@ -132,11 +130,11 @@ function ($alternative) {
132130
),
133131
],
134132
'elseifs' => array_map(
135-
function ($alternative, $index) use ($expression) {
133+
function ($alternative, $index) use ($parser) {
136134
[$condition, $repository] = $alternative;
137135

138136
return new Node\Stmt\ElseIf_(
139-
cond: $expression->expr,
137+
cond: $parser->parse('<?php '.$this->interpreter->compile($condition, ['input', 'output']).';')[0]->expr ?? throw new \UnexpectedValueException('Expected parsing result to be an instance of Node\Expr.'),
140138
stmts: [
141139
new Node\Stmt\Return_(
142140
new Node\Expr\FuncCall(

src/Builder/ObjectMapper.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public function getNode(): Node
2525
name: null,
2626
subNodes: [
2727
'implements' => [
28-
new Node\Name\FullyQualified(\Kiboko\Contract\Mapping\CompiledMapperInterface::class),
28+
new Node\Name\FullyQualified('Kiboko\\Contract\\Mapping\\CompiledMapperInterface'),
2929
],
3030
'stmts' => [
3131
new Node\Stmt\ClassMethod(

src/Builder/Transformer.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class: new Node\Stmt\Class_(
3737
name: null,
3838
subNodes: [
3939
'implements' => [
40-
new Node\Name\FullyQualified(\Kiboko\Contract\Pipeline\TransformerInterface::class),
40+
new Node\Name\FullyQualified('Kiboko\\Contract\\Pipeline\\TransformerInterface'),
4141
],
4242
'stmts' => [
4343
new Node\Stmt\ClassMethod(
@@ -74,7 +74,7 @@ class: new Node\Stmt\Class_(
7474
expr: new Node\Expr\Yield_(
7575
new Node\Expr\New_(
7676
class: new Node\Name\FullyQualified(
77-
\Kiboko\Component\Bucket\AcceptanceResultBucket::class
77+
'Kiboko\\Component\\Bucket\\AcceptanceResultBucket'
7878
),
7979
args: [
8080
new Node\Arg(
@@ -110,7 +110,7 @@ class: new Node\Name\FullyQualified(
110110
new Node\Expr\Yield_(
111111
new Node\Expr\New_(
112112
class: new Node\Name\FullyQualified(
113-
\Kiboko\Component\Bucket\AcceptanceResultBucket::class,
113+
'Kiboko\\Component\\Bucket\\AcceptanceResultBucket',
114114
),
115115
args: [
116116
new Node\Arg(
@@ -121,7 +121,7 @@ class: new Node\Name\FullyQualified(
121121
)
122122
),
123123
],
124-
'returnType' => new Node\Name\FullyQualified(\Generator::class),
124+
'returnType' => new Node\Name\FullyQualified('Generator'),
125125
],
126126
),
127127
],

src/Factory/ArrayMapper.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public function normalize(array $config): array
3636
{
3737
try {
3838
return $this->processor->processConfiguration($this->configuration, $config);
39-
} catch (Symfony\InvalidTypeException|Symfony\InvalidConfigurationException $exception) {
39+
} catch (Symfony\InvalidConfigurationException|Symfony\InvalidTypeException $exception) {
4040
throw new Configurator\InvalidConfigurationException($exception->getMessage(), 0, $exception);
4141
}
4242
}
@@ -73,7 +73,7 @@ public function compile(array $config): Repository\TransformerMapper
7373

7474
try {
7575
return new Repository\TransformerMapper($builder);
76-
} catch (Symfony\InvalidTypeException|Symfony\InvalidConfigurationException $exception) {
76+
} catch (Symfony\InvalidConfigurationException|Symfony\InvalidTypeException $exception) {
7777
throw new Configurator\InvalidConfigurationException(message: $exception->getMessage(), previous: $exception);
7878
}
7979
}

src/Factory/ConditionalMapper.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public function normalize(array $config): array
3939
{
4040
try {
4141
return $this->processor->processConfiguration($this->configuration, $config);
42-
} catch (Symfony\InvalidTypeException|Symfony\InvalidConfigurationException $exception) {
42+
} catch (Symfony\InvalidConfigurationException|Symfony\InvalidTypeException $exception) {
4343
throw new Configurator\InvalidConfigurationException($exception->getMessage(), 0, $exception);
4444
}
4545
}
@@ -86,7 +86,7 @@ public function compile(array $config): Repository\TransformerMapper
8686
$alternative['condition'],
8787
$mapperBuilder
8888
);
89-
} catch (Symfony\InvalidTypeException|Symfony\InvalidConfigurationException $exception) {
89+
} catch (Symfony\InvalidConfigurationException|Symfony\InvalidTypeException $exception) {
9090
throw new Configurator\InvalidConfigurationException(message: $exception->getMessage(), previous: $exception);
9191
}
9292
} elseif (\array_key_exists('object', $alternative)) {
@@ -113,13 +113,13 @@ className: $alternative['object']['class'],
113113
$alternative['condition'],
114114
$mapperBuilder
115115
);
116-
} catch (Symfony\InvalidTypeException|Symfony\InvalidConfigurationException $exception) {
116+
} catch (Symfony\InvalidConfigurationException|Symfony\InvalidTypeException $exception) {
117117
throw new Configurator\InvalidConfigurationException(message: $exception->getMessage(), previous: $exception);
118118
}
119119
} else {
120120
throw new InvalidConfigurationException('Could not determine if the factory should build an array or an object transformer.');
121121
}
122-
} catch (Symfony\InvalidTypeException|Symfony\InvalidConfigurationException $exception) {
122+
} catch (Symfony\InvalidConfigurationException|Symfony\InvalidTypeException $exception) {
123123
throw new InvalidConfigurationException($exception->getMessage(), 0, $exception);
124124
}
125125
}
@@ -128,7 +128,7 @@ className: $alternative['object']['class'],
128128
return new Repository\TransformerMapper(
129129
new FastMap\Builder\Transformer($builder),
130130
);
131-
} catch (Symfony\InvalidTypeException|Symfony\InvalidConfigurationException $exception) {
131+
} catch (Symfony\InvalidConfigurationException|Symfony\InvalidTypeException $exception) {
132132
throw new Configurator\InvalidConfigurationException(message: $exception->getMessage(), previous: $exception);
133133
}
134134
}

src/Factory/ObjectMapper.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public function normalize(array $config): array
3535
{
3636
try {
3737
return $this->processor->processConfiguration($this->configuration, $config);
38-
} catch (Symfony\InvalidTypeException|Symfony\InvalidConfigurationException $exception) {
38+
} catch (Symfony\InvalidConfigurationException|Symfony\InvalidTypeException $exception) {
3939
throw new Configurator\InvalidConfigurationException($exception->getMessage(), 0, $exception);
4040
}
4141
}
@@ -67,7 +67,7 @@ className: $config['class'],
6767

6868
try {
6969
return new Repository\TransformerMapper($builder);
70-
} catch (Symfony\InvalidTypeException|Symfony\InvalidConfigurationException $exception) {
70+
} catch (Symfony\InvalidConfigurationException|Symfony\InvalidTypeException $exception) {
7171
throw new Configurator\InvalidConfigurationException(message: $exception->getMessage(), previous: $exception);
7272
}
7373
}

src/Factory/Repository/RepositoryTrait.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ trait RepositoryTrait
1515
/** @var string[] */
1616
private array $packages;
1717

18-
public function addFiles(FileInterface|DirectoryInterface ...$files): Configurator\RepositoryInterface
18+
public function addFiles(DirectoryInterface|FileInterface ...$files): Configurator\RepositoryInterface
1919
{
2020
array_push($this->files, ...$files);
2121

src/Service.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
#[Configurator\Pipeline(
1515
name: 'fastmap',
1616
dependencies: [
17-
'php-etl/mapping-contracts:0.4.*'
17+
'php-etl/mapping-contracts:0.4.*',
1818
],
1919
steps: [
2020
new Configurator\Pipeline\StepTransformer(null),
@@ -50,7 +50,7 @@ public function normalize(array $config): array
5050
{
5151
try {
5252
return $this->processor->processConfiguration($this->configuration, $config);
53-
} catch (Symfony\InvalidTypeException|Symfony\InvalidConfigurationException $exception) {
53+
} catch (Symfony\InvalidConfigurationException|Symfony\InvalidTypeException $exception) {
5454
throw new InvalidConfigurationException($exception->getMessage(), 0, $exception);
5555
}
5656
}
@@ -61,7 +61,7 @@ public function validate(array $config): bool
6161
$this->processor->processConfiguration($this->configuration, $config);
6262

6363
return true;
64-
} catch (Symfony\InvalidTypeException|Symfony\InvalidConfigurationException) {
64+
} catch (Symfony\InvalidConfigurationException|Symfony\InvalidTypeException) {
6565
return false;
6666
}
6767
}
@@ -99,7 +99,7 @@ public function compile(array $config): Factory\Repository\TransformerMapper
9999
return $objectFactory->compile($config['object']);
100100
}
101101
throw new InvalidConfigurationException('Could not determine if the factory should build an array or an object transformer.');
102-
} catch (Symfony\InvalidTypeException|Symfony\InvalidConfigurationException $exception) {
102+
} catch (Symfony\InvalidConfigurationException|Symfony\InvalidTypeException $exception) {
103103
throw new InvalidConfigurationException($exception->getMessage(), 0, $exception);
104104
}
105105
}

0 commit comments

Comments
 (0)