Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
94.44% covered (success)
94.44%
17 / 18
66.67% covered (warning)
66.67%
2 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
MediaInfoRdfBuilder
94.44% covered (success)
94.44%
17 / 18
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%
11 / 11
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    /**
22     * @var TruthyStatementRdfBuilder
23     */
24    private $truthyStatementRdfBuilder;
25
26    /**
27     * @var TermsRdfBuilder
28     */
29    private $termsRdfBuilder;
30
31    /**
32     * @var FullStatementRdfBuilder
33     */
34    private $fullStatementRdfBuilder;
35
36    /**
37     * @var MediaInfoSpecificComponentsRdfBuilder
38     */
39    private $mediaInfoSpecificComponentsRdfBuilder;
40
41    public function __construct(
42        int $flavorFlags,
43        TermsRdfBuilder $termsRdfBuilder,
44        TruthyStatementRdfBuilderFactory $truthyStatementRdfBuilderFactory,
45        FullStatementRdfBuilderFactory $fullStatementRdfBuilderFactory,
46        MediaInfoSpecificComponentsRdfBuilder $mediaInfoSpecificComponentsRdfBuilder
47    ) {
48        if ( $flavorFlags & RdfProducer::PRODUCE_TRUTHY_STATEMENTS ) {
49            $this->truthyStatementRdfBuilder = $truthyStatementRdfBuilderFactory->getTruthyStatementRdfBuilder(
50                $flavorFlags
51            );
52        }
53
54        if ( $flavorFlags & RdfProducer::PRODUCE_ALL_STATEMENTS ) {
55            $fullStatementRdfBuilder = $fullStatementRdfBuilderFactory->getFullStatementRdfBuilder(
56                $flavorFlags
57            );
58            $this->fullStatementRdfBuilder = $fullStatementRdfBuilder;
59        }
60
61        $this->termsRdfBuilder = $termsRdfBuilder;
62        $this->mediaInfoSpecificComponentsRdfBuilder = $mediaInfoSpecificComponentsRdfBuilder;
63    }
64
65    public function addEntity( EntityDocument $entity ) {
66        if ( $this->truthyStatementRdfBuilder ) {
67            $this->truthyStatementRdfBuilder->addEntity( $entity );
68        }
69
70        if ( $this->fullStatementRdfBuilder ) {
71            $this->fullStatementRdfBuilder->addEntity( $entity );
72        }
73
74        $this->termsRdfBuilder->addEntity( $entity );
75        $this->mediaInfoSpecificComponentsRdfBuilder->addEntity( $entity );
76    }
77
78    /**
79     * Map some aspect of an Entity to the RDF graph, as it should appear in the stub
80     * representation of an entity.
81     * @param EntityDocument $entity the entity to output.
82     */
83    public function addEntityStub( EntityDocument $entity ) {
84        // TODO: remove this method once it's no longer part of EntityRdfBuilder
85    }
86}