Skip to content

Commit cadf8d9

Browse files
committed
stdClass instead of AssocArray #4
Signed-off-by: Jan Kowalleck <[email protected]>
1 parent c7b5362 commit cadf8d9

27 files changed

+145
-159
lines changed

src/Core/Serialization/JSON/Normalizers/BomNormalizer.php

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ class BomNormalizer extends _BaseNormalizer
3737

3838
private const BOM_FORMAT = 'CycloneDX';
3939

40-
public function normalize(Bom $bom): array
40+
public function normalize(Bom $bom): object
4141
{
4242
$factory = $this->getNormalizerFactory();
4343

44-
return array_filter(
44+
return (object) array_filter(
4545
[
4646
'bomFormat' => self::BOM_FORMAT,
4747
'specVersion' => $factory->getSpec()->getVersion(),
@@ -55,19 +55,15 @@ public function normalize(Bom $bom): array
5555
);
5656
}
5757

58-
private function normalizeMetadata(Metadata $metadata): ?array
58+
private function normalizeMetadata(Metadata $metadata): ?object
5959
{
6060
$factory = $this->getNormalizerFactory();
6161

6262
if (false === $factory->getSpec()->supportsMetadata()) {
6363
return null;
6464
}
6565

66-
$data = $factory->makeForMetadata()->normalize($metadata);
67-
68-
return empty($data)
69-
? null
70-
: $data;
66+
return $factory->makeForMetadata()->normalize($metadata);
7167
}
7268

7369
private function normalizeExternalReferences(Bom $bom): ?array

src/Core/Serialization/JSON/Normalizers/ComponentNormalizer.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class ComponentNormalizer extends _BaseNormalizer
4242
/**
4343
* @throws DomainException if component has unsupported type
4444
*/
45-
public function normalize(Component $component): array
45+
public function normalize(Component $component): object
4646
{
4747
$spec = $this->getNormalizerFactory()->getSpec();
4848

@@ -63,7 +63,7 @@ public function normalize(Component $component): array
6363
? $component->getBomRef()->getValue()
6464
: null;
6565

66-
return array_filter(
66+
return (object) array_filter(
6767
[
6868
'bom-ref' => $bomRef,
6969
'type' => $type,

src/Core/Serialization/JSON/Normalizers/ComponentRepositoryNormalizer.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@
3232
class ComponentRepositoryNormalizer extends _BaseNormalizer
3333
{
3434
/**
35-
* @psalm-return list<mixed>
35+
* @return object[]
36+
*
37+
* @psalm-return list<object>
3638
*/
3739
public function normalize(ComponentRepository $repo): array
3840
{

src/Core/Serialization/JSON/Normalizers/DependenciesNormalizer.php

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
use CycloneDX\Core\Serialization\JSON\_BaseNormalizer;
3131

3232
/**
33-
* @psalm-type Dependency = array{ref: string, dependsOn?: non-empty-list<string>}
33+
* @psalm-type Dependency = object{ref: string, dependsOn?: non-empty-list<string>}
3434
*/
3535
class DependenciesNormalizer extends _BaseNormalizer
3636
{
@@ -40,7 +40,7 @@ class DependenciesNormalizer extends _BaseNormalizer
4040
* Only named {@see \CycloneDX\Core\Models\BomRef BomRefs} will be taken into account.
4141
* Make sure to use the {@see \CycloneDX\Core\Serialization\BomRefDiscriminator} before calling.
4242
*
43-
* @return array[]
43+
* @return object[]
4444
*
4545
* @psalm-return list<Dependency>
4646
*/
@@ -76,14 +76,15 @@ public function normalize(Bom $bom): array
7676
/**
7777
* @psalm-return Dependency|null
7878
*/
79-
private function normalizeDependency(BomRef $componentRef, BomRef ...$dependencyRefs): ?array
79+
private function normalizeDependency(BomRef $componentRef, BomRef ...$dependencyRefs): ?object
8080
{
8181
$componentRefValue = $componentRef->getValue();
8282
if (null === $componentRefValue) {
8383
return null;
8484
}
8585

86-
$dep = ['ref' => $componentRefValue];
86+
$dep = (object) [];
87+
$dep->ref = $componentRefValue;
8788

8889
$deps = [];
8990
foreach ($dependencyRefs as $dependencyRef) {
@@ -93,7 +94,7 @@ private function normalizeDependency(BomRef $componentRef, BomRef ...$dependency
9394
}
9495
}
9596
if (!empty($deps)) {
96-
$dep['dependsOn'] = $deps;
97+
$dep->dependsOn = $deps;
9798
}
9899

99100
return $dep;

src/Core/Serialization/JSON/Normalizers/ExternalReferenceNormalizer.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class ExternalReferenceNormalizer extends _BaseNormalizer
4040
/**
4141
* @throws DomainException when the type was not supported by the spec
4242
*/
43-
public function normalize(ExternalReference $externalReference): array
43+
public function normalize(ExternalReference $externalReference): object
4444
{
4545
$spec = $this->getNormalizerFactory()->getSpec();
4646
$type = $externalReference->getType();
@@ -52,7 +52,7 @@ public function normalize(ExternalReference $externalReference): array
5252
}
5353
}
5454

55-
return array_filter(
55+
return (object) array_filter(
5656
[
5757
'type' => $type,
5858
'url' => $externalReference->getUrl(),

src/Core/Serialization/JSON/Normalizers/ExternalReferenceRepositoryNormalizer.php

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232
class ExternalReferenceRepositoryNormalizer extends _BaseNormalizer
3333
{
3434
/**
35-
* @return array[]
35+
* @return object[]
3636
*
37-
* @psalm-return list<array>
37+
* @psalm-return list<object>
3838
*/
3939
public function normalize(ExternalReferenceRepository $repo): array
4040
{
@@ -43,12 +43,9 @@ public function normalize(ExternalReferenceRepository $repo): array
4343
$externalReferences = [];
4444
foreach ($repo->getItems() as $externalReference) {
4545
try {
46-
$item = $normalizer->normalize($externalReference);
46+
$externalReferences[] = $normalizer->normalize($externalReference);
4747
} catch (\DomainException) {
48-
continue;
49-
}
50-
if (false === empty($item)) {
51-
$externalReferences[] = $item;
48+
/* pass */
5249
}
5350
}
5451

src/Core/Serialization/JSON/Normalizers/HashDictionaryNormalizer.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@
3131
*/
3232
class HashDictionaryNormalizer extends _BaseNormalizer
3333
{
34+
/**
35+
* @return object[]
36+
*
37+
* @psalm-return list<object>
38+
*/
3439
public function normalize(HashDictionary $repo): array
3540
{
3641
$hashes = [];

src/Core/Serialization/JSON/Normalizers/HashNormalizer.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class HashNormalizer extends _BaseNormalizer
3434
/**
3535
* @throws DomainException
3636
*/
37-
public function normalize(string $algorithm, string $content): array
37+
public function normalize(string $algorithm, string $content): object
3838
{
3939
$spec = $this->getNormalizerFactory()->getSpec();
4040
if (false === $spec->isSupportedHashAlgorithm($algorithm)) {
@@ -44,7 +44,7 @@ public function normalize(string $algorithm, string $content): array
4444
throw new DomainException("Invalid hash content: $content", 2);
4545
}
4646

47-
return [
47+
return (object) [
4848
'alg' => $algorithm,
4949
'content' => $content,
5050
];

src/Core/Serialization/JSON/Normalizers/LicenseNormalizer.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,31 +36,31 @@ class LicenseNormalizer extends _BaseNormalizer
3636
{
3737
use NullAssertionTrait;
3838

39-
public function normalize(LicenseExpression|DisjunctiveLicenseWithId|DisjunctiveLicenseWithName $license): array
39+
public function normalize(LicenseExpression|DisjunctiveLicenseWithId|DisjunctiveLicenseWithName $license): object
4040
{
4141
return $license instanceof LicenseExpression
4242
? $this->normalizeExpression($license)
4343
: $this->normalizeDisjunctive($license);
4444
}
4545

46-
private function normalizeExpression(LicenseExpression $license): array
46+
private function normalizeExpression(LicenseExpression $license): object
4747
{
4848
// TODO: IMPLEMENTED IF NEEDED: may throw, if not supported by the spec
4949
// $this->getNormalizerFactory()->getSpec()->supportsLicenseExpression()
5050

51-
return ['expression' => $license->getExpression()];
51+
return (object) ['expression' => $license->getExpression()];
5252
}
5353

5454
/**
5555
* @SuppressWarnings(PHPMD.ShortVariable)
5656
*/
57-
private function normalizeDisjunctive(DisjunctiveLicenseWithId|DisjunctiveLicenseWithName $license): array
57+
private function normalizeDisjunctive(DisjunctiveLicenseWithId|DisjunctiveLicenseWithName $license): object
5858
{
5959
[$id, $name] = $license instanceof DisjunctiveLicenseWithId
6060
? [$license->getId(), null]
6161
: [null, $license->getName()];
6262

63-
return ['license' => array_filter(
63+
return (object) ['license' => (object) array_filter(
6464
[
6565
'id' => $id,
6666
'name' => $name,

src/Core/Serialization/JSON/Normalizers/LicenseRepositoryNormalizer.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@
3131
*/
3232
class LicenseRepositoryNormalizer extends _BaseNormalizer
3333
{
34+
/**
35+
* @return object[]
36+
*
37+
* @psalm-return list<object>
38+
*/
3439
public function normalize(LicenseRepository $repo): array
3540
{
3641
return array_map(

0 commit comments

Comments
 (0)