Skip to content

Commit 5a292ea

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

14 files changed

+52
-41
lines changed

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

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
use CycloneDX\Core\Models\Bom;
2828
use CycloneDX\Core\Models\Metadata;
2929
use CycloneDX\Core\Serialization\JSON\_BaseNormalizer;
30+
use stdClass;
3031

3132
/**
3233
* @author jkowalleck
@@ -37,11 +38,11 @@ class BomNormalizer extends _BaseNormalizer
3738

3839
private const BOM_FORMAT = 'CycloneDX';
3940

40-
public function normalize(Bom $bom): array
41+
public function normalize(Bom $bom): object
4142
{
4243
$factory = $this->getNormalizerFactory();
4344

44-
return array_filter(
45+
return (object) array_filter(
4546
[
4647
'bomFormat' => self::BOM_FORMAT,
4748
'specVersion' => $factory->getSpec()->getVersion(),
@@ -55,19 +56,15 @@ public function normalize(Bom $bom): array
5556
);
5657
}
5758

58-
private function normalizeMetaData(Metadata $metaData): ?array
59+
private function normalizeMetaData(Metadata $metaData): ?object
5960
{
6061
$factory = $this->getNormalizerFactory();
6162

6263
if (false === $factory->getSpec()->supportsMetaData()) {
6364
return null;
6465
}
6566

66-
$data = $factory->makeForMetaData()->normalize($metaData);
67-
68-
return empty($data)
69-
? null
70-
: $data;
67+
return $factory->makeForMetaData()->normalize($metaData);
7168
}
7269

7370
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: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@
2828
use CycloneDX\Core\Models\BomRef;
2929
use CycloneDX\Core\Models\Component;
3030
use CycloneDX\Core\Serialization\JSON\_BaseNormalizer;
31+
use stdClass;
3132

3233
/**
33-
* @psalm-type Dependency = array{ref: string, dependsOn?: non-empty-list<string>}
34+
* @psalm-type Dependency = object{ref: string, dependsOn?: non-empty-list<string>}
3435
*/
3536
class DependenciesNormalizer extends _BaseNormalizer
3637
{
@@ -40,7 +41,7 @@ class DependenciesNormalizer extends _BaseNormalizer
4041
* Only named {@see \CycloneDX\Core\Models\BomRef BomRefs} will be taken into account.
4142
* Make sure to use the {@see \CycloneDX\Core\Serialization\BomRefDiscriminator} before calling.
4243
*
43-
* @return array[]
44+
* @return object[]
4445
*
4546
* @psalm-return list<Dependency>
4647
*/
@@ -76,14 +77,15 @@ public function normalize(Bom $bom): array
7677
/**
7778
* @psalm-return Dependency|null
7879
*/
79-
private function normalizeDependency(BomRef $componentRef, BomRef ...$dependencyRefs): ?array
80+
private function normalizeDependency(BomRef $componentRef, BomRef ...$dependencyRefs): ?object
8081
{
8182
$componentRefValue = $componentRef->getValue();
8283
if (null === $componentRefValue) {
8384
return null;
8485
}
8586

86-
$dep = ['ref' => $componentRefValue];
87+
$dep = new stdClass();
88+
$dep->ref = $componentRefValue;
8789

8890
$deps = [];
8991
foreach ($dependencyRefs as $dependencyRef) {
@@ -93,7 +95,7 @@ private function normalizeDependency(BomRef $componentRef, BomRef ...$dependency
9395
}
9496
}
9597
if (!empty($deps)) {
96-
$dep['dependsOn'] = $deps;
98+
$dep->dependsOn = $deps;
9799
}
98100

99101
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: 2 additions & 2 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
{

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)