Skip to content

Commit eff67f9

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

27 files changed

+145
-165
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 & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,6 @@
2929
use CycloneDX\Core\Models\Component;
3030
use CycloneDX\Core\Serialization\JSON\_BaseNormalizer;
3131

32-
/**
33-
* @psalm-type Dependency = array{ref: string, dependsOn?: non-empty-list<string>}
34-
*/
3532
class DependenciesNormalizer extends _BaseNormalizer
3633
{
3734
use NullAssertionTrait;
@@ -40,9 +37,9 @@ class DependenciesNormalizer extends _BaseNormalizer
4037
* Only named {@see \CycloneDX\Core\Models\BomRef BomRefs} will be taken into account.
4138
* Make sure to use the {@see \CycloneDX\Core\Serialization\BomRefDiscriminator} before calling.
4239
*
43-
* @return array[]
40+
* @return object[]
4441
*
45-
* @psalm-return list<Dependency>
42+
* @psalm-return list<object>
4643
*/
4744
public function normalize(Bom $bom): array
4845
{
@@ -73,17 +70,15 @@ public function normalize(Bom $bom): array
7370
return $dependencies;
7471
}
7572

76-
/**
77-
* @psalm-return Dependency|null
78-
*/
79-
private function normalizeDependency(BomRef $componentRef, BomRef ...$dependencyRefs): ?array
73+
private function normalizeDependency(BomRef $componentRef, BomRef ...$dependencyRefs): ?object
8074
{
8175
$componentRefValue = $componentRef->getValue();
8276
if (null === $componentRefValue) {
8377
return null;
8478
}
8579

86-
$dep = ['ref' => $componentRefValue];
80+
$dep = (object) [];
81+
$dep->ref = $componentRefValue;
8782

8883
$deps = [];
8984
foreach ($dependencyRefs as $dependencyRef) {
@@ -93,7 +88,7 @@ private function normalizeDependency(BomRef $componentRef, BomRef ...$dependency
9388
}
9489
}
9590
if (!empty($deps)) {
96-
$dep['dependsOn'] = $deps;
91+
$dep->dependsOn = $deps;
9792
}
9893

9994
return $dep;

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class ExternalReferenceNormalizer extends _BaseNormalizer
4545
*
4646
* @SuppressWarnings(PHPMD.StaticAccess)
4747
*/
48-
public function normalize(ExternalReference $externalReference): array
48+
public function normalize(ExternalReference $externalReference): object
4949
{
5050
$url = $externalReference->getUrl();
5151
if (false === IriFormats::iriReference($url)) {
@@ -62,7 +62,7 @@ public function normalize(ExternalReference $externalReference): array
6262
}
6363
}
6464

65-
return array_filter(
65+
return (object) array_filter(
6666
[
6767
'type' => $type,
6868
'url' => $url,

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

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@
3434
class ExternalReferenceRepositoryNormalizer extends _BaseNormalizer
3535
{
3636
/**
37-
* @return array[]
37+
* @return object[]
3838
*
39-
* @psalm-return list<array>
39+
* @psalm-return list<object>
4040
*/
4141
public function normalize(ExternalReferenceRepository $repo): array
4242
{
@@ -45,12 +45,9 @@ public function normalize(ExternalReferenceRepository $repo): array
4545
$externalReferences = [];
4646
foreach ($repo->getItems() as $externalReference) {
4747
try {
48-
$item = $normalizer->normalize($externalReference);
48+
$externalReferences[] = $normalizer->normalize($externalReference);
4949
} catch (DomainException|UnexpectedValueException) {
50-
continue;
51-
}
52-
if (false === empty($item)) {
53-
$externalReferences[] = $item;
50+
/* pass */
5451
}
5552
}
5653

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
@@ -37,33 +37,33 @@ class LicenseNormalizer extends _BaseNormalizer
3737
{
3838
use NullAssertionTrait;
3939

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

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

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

5555
/**
5656
* @SuppressWarnings(PHPMD.ShortVariable) $id
5757
* @SuppressWarnings(PHPMD.StaticAccess)
5858
*/
59-
private function normalizeDisjunctive(DisjunctiveLicenseWithId|DisjunctiveLicenseWithName $license): array
59+
private function normalizeDisjunctive(DisjunctiveLicenseWithId|DisjunctiveLicenseWithName $license): object
6060
{
6161
[$id, $name] = $license instanceof DisjunctiveLicenseWithId
6262
? [$license->getId(), null]
6363
: [null, $license->getName()];
6464
$url = $license->getUrl();
6565

66-
return ['license' => array_filter(
66+
return (object) ['license' => (object) array_filter(
6767
[
6868
'id' => $id,
6969
'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)