1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
<?php
namespace SMW\Exporter\ResourceBuilders;
use SMW\DIProperty;
use SMWDataItem as DataItem;
use SMWExpData as ExpData;
/**
* @private
*
* @license GNU GPL v2+
* @since 2.5
*
* @author mwjames
*/
class AuxiliaryPropertyValueResourceBuilder extends PredefinedPropertyValueResourceBuilder {
/**
* @since 2.5
*
* {@inheritDoc}
*/
public function isResourceBuilderFor( DIProperty $property ) {
return !$property->isUserDefined() && $this->requiresAuxiliary( $property->getKey() );
}
/**
* @since 2.5
*
* {@inheritDoc}
*/
public function addResourceValue( ExpData $expData, DIProperty $property, DataItem $dataItem ) {
$expElement = $this->exporter->getDataItemExpElement(
$dataItem
);
if ( $expElement === null ) {
return;
}
if ( $property->getKey() === $property->findPropertyTypeID() ) {
// Ensures that Boolean remains Boolean and not localized canonical
// representation such as "Booléen" when the content languageis not
// English
$expNsResource = $this->getResourceElementForProperty(
new DIProperty( $property->getCanonicalDiWikiPage()->getDBKey() )
);
} else {
$expNsResource = $this->getResourceElementHelperForProperty( $property );
}
$expData->addPropertyObjectValue(
$expNsResource,
$expElement
);
$this->addResourceHelperValue(
$expData,
$property,
$dataItem
);
}
protected function requiresAuxiliary( $key ) {
return !in_array( $key, [ '_SKEY', '_INST', '_MDAT', '_CDAT', '_SUBC', '_SUBP', '_TYPE', '_IMPO', '_URI' ] );
}
}
|