Lucas Werkmeister (WMDE) has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/352864 )
Change subject: Import constraint parameters from qualifiers
......................................................................
Import constraint parameters from qualifiers
The updater job is kept very simple: it just serializes all qualifiers
and adds them all to the parameters. Interpreting those qualifiers
(starting with mapping their property IDs to parameter meanings) is then
left to the individual checkers, and done in a separate commit.
Change-Id: I6e5428187fc9d0c3137ca1fb0b20c18567c4698c
---
M includes/UpdateConstraintsTableJob.php
1 file changed, 16 insertions(+), 1 deletion(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseQualityConstraints
refs/changes/64/352864/1
diff --git a/includes/UpdateConstraintsTableJob.php
b/includes/UpdateConstraintsTableJob.php
index 5238a9c..4de46ed 100644
--- a/includes/UpdateConstraintsTableJob.php
+++ b/includes/UpdateConstraintsTableJob.php
@@ -9,6 +9,9 @@
use Wikibase\DataModel\Entity\Property;
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\DataModel\Services\Lookup\EntityLookup;
+use Wikibase\DataModel\Snak\PropertyValueSnak;
+use Wikibase\DataModel\Snak\PropertyNoValueSnak;
+use Wikibase\DataModel\Snak\PropertySomeValueSnak;
use Wikibase\DataModel\Statement\Statement;
use Wikibase\Repo\WikibaseRepo;
use WikibaseQuality\ConstraintReport\ConstraintReportFactory;
@@ -77,7 +80,19 @@
public function extractConstraintFromStatement( PropertyId $propertyId,
Statement $constraintStatement ) {
$constraintId = $constraintStatement->getGuid();
$constraintTypeQid =
$constraintStatement->getMainSnak()->getDataValue()->getEntityId()->getSerialization();
- $parameters = []; // TODO extract parameters from qualifiers
+ $parameters = [];
+ foreach ( $constraintStatement->getQualifiers() as $qualifier )
{
+ $qualifierId =
$qualifier->getPropertyId()->getSerialization();
+ if ( $qualifier instanceof PropertyValueSnak ) {
+ $parameters[$qualifierId][] =
$qualifier->getDataValue()->toArray();
+ } elseif ( $qualifier instanceof PropertyNoValueSnak ) {
+ $parameters[$qualifierId][] = null;
+ } elseif ( $qualifier instanceof PropertySomeValueSnak
) {
+ // TODO do nothing?
+ } else {
+ // TODO this should never happen, but how do
you report an error in a job?
+ }
+ }
return new Constraint(
$constraintId,
$propertyId,
--
To view, visit https://gerrit.wikimedia.org/r/352864
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6e5428187fc9d0c3137ca1fb0b20c18567c4698c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseQualityConstraints
Gerrit-Branch: master
Gerrit-Owner: Lucas Werkmeister (WMDE) <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits