• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jojo1981 / json-ast-builder / 17578687754

09 Sep 2025 09:48AM UTC coverage: 35.019%. Remained the same
17578687754

push

github

jojo1981
Fix: Make compatible with PHP versions: ^8.0|^8.1|^8.2|^8.3|^8.4. Closes #1
https://github.com/jojo1981/json-ast-builder/issues/1

161 of 407 new or added lines in 17 files covered. (39.56%)

290 existing lines in 25 files now uncovered.

374 of 1068 relevant lines covered (35.02%)

3.47 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Generator.php
1
<?php
2
/*
3
 * This file is part of the jojo1981/json-ast-builder package
4
 *
5
 * Copyright (c) 2019 Joost Nijhuis <jnijhuis81@gmail.com>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed in the root of the source code
9
 */
10
declare(strict_types=1);
11

12
namespace Jojo1981\JsonAstBuilder;
13

14
use Jojo1981\JsonAstBuilder\Ast\JsonNode;
15
use Jojo1981\JsonAstBuilder\Visitor\AnalyzerVisitor;
16
use Jojo1981\JsonAstBuilder\Visitor\DataGeneratorVisitor;
17
use Jojo1981\JsonAstBuilder\Visitor\JsonStringGeneratorVisitor;
18
use Jojo1981\JsonAstBuilder\Visitor\PlantUmlAstNodesGeneratorVisitor;
19
use Jojo1981\JsonAstBuilder\Visitor\PlantUmlDataGeneratorVisitor;
20
use Jojo1981\JsonAstBuilder\Visitor\TokenGeneratorVisitor;
21

22
/**
23
 * @package Jojo1981\JsonAstBuilder
24
 */
25
final class Generator
26
{
27
    /**
28
     * @param JsonNode $jsonNode
29
     * @param array $options
30
     * @return string
31
     */
32
    public function generateJsonString(JsonNode $jsonNode, array $options = []): string
33
    {
UNCOV
34
        $visitor = new JsonStringGeneratorVisitor($options);
×
UNCOV
35
        $jsonNode->accept($visitor);
×
36

37
        return $visitor->getResult();
×
38
    }
39

40
    /**
41
     * @param JsonNode $jsonNode
42
     * @param array $options
43
     * @return mixed
44
     */
45
    public function generateData(JsonNode $jsonNode, array $options = []): mixed
46
    {
UNCOV
47
        $visitor = new DataGeneratorVisitor($options);
×
48

UNCOV
49
        return $jsonNode->accept($visitor);
×
50
    }
51

52
    /**
53
     * @param JsonNode $jsonNode
54
     * @return string
55
     */
56
    public function generatePlantUmlAstNodes(JsonNode $jsonNode): string
57
    {
UNCOV
58
        $visitor = new PlantUmlAstNodesGeneratorVisitor();
×
UNCOV
59
        $jsonNode->accept($visitor);
×
60

61
        return $visitor->getResult();
×
62
    }
63

64
    /**
65
     * @param JsonNode $jsonNode
66
     * @return string
67
     */
68
    public function generatePlantUmlData(JsonNode $jsonNode): string
69
    {
UNCOV
70
        $visitor = new PlantUmlDataGeneratorVisitor();
×
UNCOV
71
        $jsonNode->accept($visitor);
×
72

73
        return $visitor->getResult();
×
74
    }
75

76
    /**
77
     * @param JsonNode $jsonNode
78
     * @return array
79
     */
80
    public function getStatistics(JsonNode $jsonNode): array
81
    {
UNCOV
82
        $visitor = new AnalyzerVisitor();
×
83

UNCOV
84
        return $jsonNode->accept($visitor);
×
85
    }
86

87
    /**
88
     * @param JsonNode $jsonNode
89
     * @return array
90
     */
91
    public function getTokens(JsonNode $jsonNode): array
92
    {
NEW
93
        $visitor = new TokenGeneratorVisitor();
×
NEW
94
        $jsonNode->accept($visitor);
×
95

NEW
96
        return $visitor->getResult();
×
97
    }
98
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc