Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
93.75% covered (success)
93.75%
15 / 16
66.67% covered (warning)
66.67%
2 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
MediaInfoRdfBuilder
93.75% covered (success)
93.75%
15 / 16
66.67% covered (warning)
66.67%
2 / 3
7.01
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
1 / 1
3
 addEntity
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
3
 addEntityStub
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3declare( strict_types=1 );
4
5namespace Wikibase\MediaInfo\Rdf;
6
7use Wikibase\DataModel\Entity\EntityDocument;
8use Wikibase\Repo\Rdf\EntityRdfBuilder;
9use Wikibase\Repo\Rdf\FullStatementRdfBuilder;
10use Wikibase\Repo\Rdf\FullStatementRdfBuilderFactory;
11use Wikibase\Repo\Rdf\RdfProducer;
12use Wikibase\Repo\Rdf\TermsRdfBuilder;
13use Wikibase\Repo\Rdf\TruthyStatementRdfBuilder;
14use Wikibase\Repo\Rdf\TruthyStatementRdfBuilderFactory;
15
16/**
17 * @license GPL-2.0-or-later
18 */
19class MediaInfoRdfBuilder implements EntityRdfBuilder {
20
21    private ?TruthyStatementRdfBuilder $truthyStatementRdfBuilder = null;
22    private ?FullStatementRdfBuilder $fullStatementRdfBuilder = null;
23
24    public function __construct(
25        int $flavorFlags,
26        private readonly TermsRdfBuilder $termsRdfBuilder,
27        TruthyStatementRdfBuilderFactory $truthyStatementRdfBuilderFactory,
28        FullStatementRdfBuilderFactory $fullStatementRdfBuilderFactory,
29        private readonly MediaInfoSpecificComponentsRdfBuilder $mediaInfoSpecificComponentsRdfBuilder,
30    ) {
31        if ( $flavorFlags & RdfProducer::PRODUCE_TRUTHY_STATEMENTS ) {
32            $this->truthyStatementRdfBuilder = $truthyStatementRdfBuilderFactory->getTruthyStatementRdfBuilder(
33                $flavorFlags
34            );
35        }
36
37        if ( $flavorFlags & RdfProducer::PRODUCE_ALL_STATEMENTS ) {
38            $fullStatementRdfBuilder = $fullStatementRdfBuilderFactory->getFullStatementRdfBuilder(
39                $flavorFlags
40            );
41            $this->fullStatementRdfBuilder = $fullStatementRdfBuilder;
42        }
43    }
44
45    public function addEntity( EntityDocument $entity ) {
46        if ( $this->truthyStatementRdfBuilder ) {
47            $this->truthyStatementRdfBuilder->addEntity( $entity );
48        }
49
50        if ( $this->fullStatementRdfBuilder ) {
51            $this->fullStatementRdfBuilder->addEntity( $entity );
52        }
53
54        $this->termsRdfBuilder->addEntity( $entity );
55        $this->mediaInfoSpecificComponentsRdfBuilder->addEntity( $entity );
56    }
57
58    /**
59     * Map some aspect of an Entity to the RDF graph, as it should appear in the stub
60     * representation of an entity.
61     * @param EntityDocument $entity the entity to output.
62     */
63    public function addEntityStub( EntityDocument $entity ) {
64        // TODO: remove this method once it's no longer part of EntityRdfBuilder
65    }
66}