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

Reply via email to