Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
94.44% |
17 / 18 |
|
66.67% |
2 / 3 |
CRAP | |
0.00% |
0 / 1 |
MediaInfoRdfBuilder | |
94.44% |
17 / 18 |
|
66.67% |
2 / 3 |
7.01 | |
0.00% |
0 / 1 |
__construct | |
100.00% |
11 / 11 |
|
100.00% |
1 / 1 |
3 | |||
addEntity | |
100.00% |
6 / 6 |
|
100.00% |
1 / 1 |
3 | |||
addEntityStub | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 |
1 | <?php |
2 | |
3 | declare( strict_types=1 ); |
4 | |
5 | namespace Wikibase\MediaInfo\Rdf; |
6 | |
7 | use Wikibase\DataModel\Entity\EntityDocument; |
8 | use Wikibase\Repo\Rdf\EntityRdfBuilder; |
9 | use Wikibase\Repo\Rdf\FullStatementRdfBuilder; |
10 | use Wikibase\Repo\Rdf\FullStatementRdfBuilderFactory; |
11 | use Wikibase\Repo\Rdf\RdfProducer; |
12 | use Wikibase\Repo\Rdf\TermsRdfBuilder; |
13 | use Wikibase\Repo\Rdf\TruthyStatementRdfBuilder; |
14 | use Wikibase\Repo\Rdf\TruthyStatementRdfBuilderFactory; |
15 | |
16 | /** |
17 | * @license GPL-2.0-or-later |
18 | */ |
19 | class 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 | } |