Completed
Push — master ( ac7e0a...7880aa )
by Thomas
04:53
created

newMeaninglessPredicateTripleNodeSimplifier()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 1

Importance

Changes 3
Bugs 0 Features 0
Metric Value
c 3
b 0
f 0
dl 0
loc 8
ccs 7
cts 7
cp 1
rs 9.4285
cc 1
eloc 6
nc 1
nop 2
crap 1
1
<?php
2
3
namespace PPP\Wikidata\TreeSimplifier;
4
5
use DateTime;
6
use PPP\Module\TreeSimplifier\NodeSimplifierFactory;
7
use PPP\Wikidata\ValueParsers\ResourceListNodeParser;
8
use PPP\Wikidata\ValueParsers\WikibaseValueParserFactory;
9
use Wikibase\EntityStore\EntityStore;
10
11
/**
12
 * Build a SentenceTreeSimplifier
13
 *
14
 * @licence GPLv2+
15
 * @author Thomas Pellissier Tanon
16
 *
17
 * @todo tests
18
 */
19
class WikibaseNodeSimplifierFactory extends NodeSimplifierFactory {
20
21
	/**
22
	 * @param EntityStore $entityStore
23
	 * @param string $languageCode
24
	 */
25 1
	public function __construct(EntityStore $entityStore, $languageCode) {
26 1
		parent::__construct(array(
27 1
			$this->newSentenceNodeSimplifier($entityStore, $languageCode),
28 1
			$this->newMeaninglessPredicateTripleNodeSimplifier($entityStore, $languageCode),
29 1
			$this->newMissingObjectTripleNodeSimplifier($entityStore, $languageCode),
30 1
			$this->newMissingSubjectTripleNodeSimplifier($entityStore, $languageCode),
31 1
			$this->newIntersectionWithFilterNodeSimplifier($entityStore, $languageCode)
32 1
		));
33 1
	}
34
35 1
	private function newSentenceNodeSimplifier(EntityStore $entityStore, $languageCode) {
36 1
		return new SentenceNodeSimplifier($this->newResourceListNodeParser($entityStore, $languageCode));
37
	}
38
39 1
	private function newMeaninglessPredicateTripleNodeSimplifier(EntityStore $entityStore, $languageCode) {
40 1
		date_default_timezone_set('UTC');
41 1
		return new SpecificTripleNodeSimplifier(
42 1
			$this->newResourceListNodeParser($entityStore, $languageCode),
43 1
			new ResourceListForEntityProperty($entityStore),
44 1
			new DateTime()
45 1
		);
46
	}
47
48 1
	private function newMissingObjectTripleNodeSimplifier(EntityStore $entityStore, $languageCode) {
49 1
		return new MissingObjectTripleNodeSimplifier(
50 1
			$this->newResourceListNodeParser($entityStore, $languageCode),
51 1
			new ResourceListForEntityProperty($entityStore)
52 1
		);
53
	}
54
55 1
	private function newMissingSubjectTripleNodeSimplifier(EntityStore $entityStore, $languageCode) {
56 1
		return new MissingSubjectTripleNodeSimplifier(
57 1
			$this,
58 1
			$entityStore,
59 1
			$this->newResourceListNodeParser($entityStore, $languageCode)
60 1
		);
61
	}
62
63 1
	private function newIntersectionWithFilterNodeSimplifier(EntityStore $entityStore, $languageCode) {
64 1
		return new IntersectionWithFilterNodeSimplifier(
65 1
			$this,
66 1
			$entityStore,
67 1
			$this->newResourceListNodeParser($entityStore, $languageCode)
68 1
		);
69
	}
70
71 1
	private function newResourceListNodeParser(EntityStore $entityStore, $languageCode) {
72 1
		$parserFactory = new WikibaseValueParserFactory($languageCode, $entityStore);
73 1
		return new ResourceListNodeParser($parserFactory->newWikibaseValueParser());
74
	}
75
}
76