Thiemo Mättig (WMDE) has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/205853

Change subject: Clean up RDF related code after split
......................................................................

Clean up RDF related code after split

Bug: T92515
Change-Id: I538f33a6da2da3a0b77546749e771dfe415d2c68
---
M repo/includes/rdf/ComplexValueRdfBuilder.php
M repo/includes/rdf/DateTimeValueCleaner.php
M repo/includes/rdf/EntityRdfBuilder.php
M repo/includes/rdf/FullStatementRdfBuilder.php
M repo/includes/rdf/JulianDateTimeValueCleaner.php
M repo/includes/rdf/RdfBuilder.php
M repo/includes/rdf/RdfProducer.php
M repo/includes/rdf/SimpleValueRdfBuilder.php
M repo/includes/rdf/TruthyStatementRdfBuilder.php
M repo/tests/phpunit/includes/rdf/ComplexValueRdfBuilderTest.php
M repo/tests/phpunit/includes/rdf/DateValueCleanerTest.php
M repo/tests/phpunit/includes/rdf/FullStatementsRdfBuilderTest.php
M repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
M repo/tests/phpunit/includes/rdf/RdfBuilderTestData.php
M repo/tests/phpunit/includes/rdf/SimpleValueRdfBuilderTest.php
M repo/tests/phpunit/includes/rdf/SiteLinksRdfBuilderTest.php
M repo/tests/phpunit/includes/rdf/TermsRdfBuilderTest.php
M repo/tests/phpunit/includes/rdf/TruthyStatementsRdfBuilderTest.php
18 files changed, 286 insertions(+), 188 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/53/205853/1

diff --git a/repo/includes/rdf/ComplexValueRdfBuilder.php 
b/repo/includes/rdf/ComplexValueRdfBuilder.php
index 2b4359b..39e7e44 100644
--- a/repo/includes/rdf/ComplexValueRdfBuilder.php
+++ b/repo/includes/rdf/ComplexValueRdfBuilder.php
@@ -28,7 +28,6 @@
         */
        private $valueWriter;
 
-
        /**
         * @param RdfVocabulary $vocabulary
         * @param RdfWriter $valueWriter
@@ -97,14 +96,11 @@
                                break;
 
                        default:
-                               $prefix = null;
-                               $fields = null;
+                               return;
                }
 
-               if ( !empty( $fields ) ) {
-                       $valueLName = $this->addExpandedValue( $value, $prefix, 
$fields );
-                       $writer->say( $propertyValueNamespace, 
$propertyValueLName."-value" )->is( RdfVocabulary::NS_VALUE, $valueLName );
-               }
+               $valueLName = $this->addExpandedValue( $value, $prefix, $fields 
);
+               $writer->say( $propertyValueNamespace, 
$propertyValueLName."-value" )->is( RdfVocabulary::NS_VALUE, $valueLName );
        }
 
        /**
@@ -118,11 +114,11 @@
         */
        private function addExpandedValue( DataValue $value, $prefix, array 
$props ) {
                $valueLName = $value->getHash();
+               $seen = $this->valueSeenCallback !== null
+                       && call_user_func( $this->valueSeenCallback, 
$valueLName );
 
-               if ( $this->valueSeenCallback ) {
-                       if ( call_user_func( $this->valueSeenCallback, 
$valueLName ) !== false ) {
-                               return $valueLName;
-                       }
+               if ( $seen ) {
+                       return $valueLName;
                }
 
                $this->valueWriter->about( RdfVocabulary::NS_VALUE, $valueLName 
)->a( RdfVocabulary::NS_ONTOLOGY, 'Value' );
diff --git a/repo/includes/rdf/DateTimeValueCleaner.php 
b/repo/includes/rdf/DateTimeValueCleaner.php
index 0bbed3d..22e512b 100644
--- a/repo/includes/rdf/DateTimeValueCleaner.php
+++ b/repo/includes/rdf/DateTimeValueCleaner.php
@@ -1,15 +1,16 @@
 <?php
-namespace Wikibase;
+
+namespace Wikibase\Rdf;
 
 use DataValues\TimeValue;
 
 /**
- * Very basic cleaner that assumes the date is Gregorian and only
- * ensures it looks OK.
+ * Very basic cleaner that assumes the date is Gregorian and only ensures it 
looks ok.
  *
  * @licence GNU GPL v2+
  */
 class DateTimeValueCleaner {
+
        /**
         * Clean up Wikidata date value in Gregorian calendar
         * - remove + from the start - not all data stores like that
@@ -79,4 +80,5 @@
        public function getStandardValue( TimeValue $value ) {
                return $this->cleanupGregorianValue( $value->getTime() );
        }
-}
\ No newline at end of file
+
+}
diff --git a/repo/includes/rdf/EntityRdfBuilder.php 
b/repo/includes/rdf/EntityRdfBuilder.php
index ebe7fb6..c025def 100644
--- a/repo/includes/rdf/EntityRdfBuilder.php
+++ b/repo/includes/rdf/EntityRdfBuilder.php
@@ -6,6 +6,7 @@
 
 /**
  * Interface for an RDF mapping for (some aspect of) wikibase entities.
+ * FIXME: What exactly does "some" mean?
  *
  * @since 0.5
  *
diff --git a/repo/includes/rdf/FullStatementRdfBuilder.php 
b/repo/includes/rdf/FullStatementRdfBuilder.php
index 4169c00..a29872d 100644
--- a/repo/includes/rdf/FullStatementRdfBuilder.php
+++ b/repo/includes/rdf/FullStatementRdfBuilder.php
@@ -2,8 +2,10 @@
 
 namespace Wikibase\Rdf;
 
+use InvalidArgumentException;
 use Wikibase\DataModel\Entity\EntityDocument;
 use Wikibase\DataModel\Entity\EntityId;
+use Wikibase\DataModel\Reference;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
 use Wikibase\DataModel\Snak\Snak;
 use Wikibase\DataModel\Statement\Statement;
@@ -13,6 +15,7 @@
 
 /**
  * Fully reified RDF mapping for wikibase statements.
+ * FIXME: Rewhat?
  * This does not output simple statements. If both forms (simple and full) are 
desired,
  * use SimpleStatementRdfBuilder in addition to FullStatementRdfBuilder.
  *
@@ -147,6 +150,7 @@
        public function addStatements( EntityId $entityId, StatementList 
$statementList ) {
                $bestList = array();
 
+               /** @var Statement $statement */
                // FIXME: getBestStatementPerProperty() is expensive, share the 
result with TruthyStatementRdfBuilder!
                foreach ( $statementList->getBestStatementPerProperty() as 
$statement ) {
                        $bestList[$statement->getGuid()] = true;
@@ -181,13 +185,14 @@
 
                // XXX: separate builder for references?
                if ( $this->produceReferences ) {
+                       /** @var Reference $reference */
                        foreach ( $statement->getReferences() as $reference ) { 
//FIXME: split body into separate method
                                $hash = $reference->getSnaks()->getHash();
                                $refLName = $hash;
 
                                $this->statementWriter->about( 
RdfVocabulary::NS_STATEMENT, $statementLName )
                                        ->say( RdfVocabulary::NS_PROV, 
'wasDerivedFrom' )->is( RdfVocabulary::NS_REFERENCE, $refLName );
-                               if ( $this->referenceSeen( $hash ) !== false ) {
+                               if ( $this->referenceSeen( $hash ) ) {
                                        continue;
                                }
 
@@ -244,6 +249,8 @@
         * @param RdfWriter $writer
         * @param Snak $snak
         * @param $propertyNamespace
+        *
+        * @throws InvalidArgumentException
         */
        private function addSnak( RdfWriter $writer, Snak $snak, 
$propertyNamespace ) {
 
@@ -264,7 +271,7 @@
                                $writer->say( $propertyNamespace, 
$propertyValueLName )->is( RdfVocabulary::NS_ONTOLOGY, 'Novalue' );
                                break;
                        default:
-                               throw new \InvalidArgumentException( 'Unknown 
snak type: ' . $snak->getType() );
+                               throw new InvalidArgumentException( 'Unknown 
snak type: ' . $snak->getType() );
                }
        }
 
@@ -274,13 +281,10 @@
         * @return bool
         */
        private function referenceSeen( $hash ) {
-               if ( $this->referenceSeenCallback ) {
-                       if ( call_user_func( $this->referenceSeenCallback, 
$hash ) ) {
-                               return $hash;
-                       }
-               }
+               $seen = $this->referenceSeenCallback !== null
+                       && call_user_func( $this->referenceSeenCallback, $hash 
);
 
-               return false;
+               return $seen;
        }
 
        /**
@@ -292,8 +296,10 @@
         */
        public function addEntity( EntityDocument $entity ) {
                if ( $entity instanceof StatementListProvider ) {
-                       $entityId = $entity->getId();
-                       $this->addStatements( $entityId, 
$entity->getStatements() );
+                       $statementList = $entity->getStatements();
+
+                       /** @var EntityDocument $entity */
+                       $this->addStatements( $entity->getId(), $statementList 
);
                }
        }
 
diff --git a/repo/includes/rdf/JulianDateTimeValueCleaner.php 
b/repo/includes/rdf/JulianDateTimeValueCleaner.php
index a601d73..7c17565 100644
--- a/repo/includes/rdf/JulianDateTimeValueCleaner.php
+++ b/repo/includes/rdf/JulianDateTimeValueCleaner.php
@@ -1,14 +1,20 @@
 <?php
-namespace Wikibase;
+
+namespace Wikibase\Rdf;
 
 use DataValues\TimeValue;
 
 /**
  * Clean datetime value to conform to RDF/XML standards
  * This class supports Julian->Gregorian conversion
+ *
+ * @since 0.5
+ *
  * @licence GNU GPL v2+
+ * @author Stas Malyshev
  */
 class JulianDateTimeValueCleaner extends DateTimeValueCleaner {
+
        // I'm not very happy about hardcoding it here but see no better way so 
far
        // Gregorian calendar link.
        const GREGORIAN_CALENDAR = 'http://www.wikidata.org/entity/Q1985727';
@@ -61,4 +67,5 @@
                }
                return null;
        }
-}
\ No newline at end of file
+
+}
diff --git a/repo/includes/rdf/RdfBuilder.php b/repo/includes/rdf/RdfBuilder.php
index 871c0a1..cdf2aec 100644
--- a/repo/includes/rdf/RdfBuilder.php
+++ b/repo/includes/rdf/RdfBuilder.php
@@ -3,6 +3,7 @@
 namespace Wikibase\Rdf;
 
 use BagOStuff;
+use HashBagOStuff;
 use SiteList;
 use Wikibase\DataModel\Entity\BasicEntityIdParser;
 use Wikibase\DataModel\Entity\EntityDocument;
@@ -12,7 +13,6 @@
 use Wikibase\DataModel\Term\FingerprintProvider;
 use Wikibase\DataModel\Entity\PropertyId;
 use Wikibase\Lib\Store\EntityLookup;
-use Wikibase\RdfProducer;
 use Wikimedia\Purtle\RdfWriter;
 
 /**
@@ -34,13 +34,14 @@
         * is used to indicate that the entity has been resolved, 'false' 
indicates
         * that the entity was mentioned but not resolved (defined).
         *
-        * @var array
+        * @var bool[]
         */
-       private $entitiesResolved = array ();
+       private $entitiesResolved = array();
 
        /**
         * What the serializer would produce?
-        * @var integer
+        *
+        * @var int
         */
        private $produceWhat;
 
@@ -77,11 +78,10 @@
        private $propertyLookup;
 
        /**
-        *
         * @param SiteList $sites
         * @param RdfVocabulary $vocabulary
         * @param PropertyDataTypeLookup $propertyLookup
-        * @param integer $flavor
+        * @param int $flavor
         * @param RdfWriter $writer
         * @param BagOStuff|null $dedupBag Container used for deduplication of 
refs/values
         */
@@ -97,7 +97,7 @@
                $this->propertyLookup = $propertyLookup;
                $this->writer = $writer;
                $this->produceWhat = $flavor;
-               $this->dedupBag = $dedupBag ?: new \HashBagOStuff();
+               $this->dedupBag = $dedupBag ?: new HashBagOStuff();
 
                // XXX: move construction of sub-builders to a factory class.
                $this->termsBuilder = new TermsRdfBuilder( $vocabulary, $writer 
);
@@ -144,7 +144,6 @@
                        $statementValueBuilder->setMentionedEntityTracker( 
$this );
                } else {
                        $statementValueBuilder = 
$this->newSimpleValueRdfBuilder();
-
                }
 
                return $statementValueBuilder;
@@ -252,8 +251,7 @@
        }
 
        /**
-        * Registers an entity as mentioned.
-        * Will be recorded as unresolved
+        * Registers an entity as mentioned. Will be recorded as unresolved
         * if it wasn't already marked as resolved.
         *
         * @param EntityId $entityId
@@ -319,7 +317,6 @@
         * Adds meta-information about an entity (such as the ID and type) to 
the RDF graph.
         *
         * @todo: extract into MetaDataRdfBuilder
-                       $writer->say( $propertyValueNamespace, 
$propertyValueLName )->is( trim( $value ) );
         *
         * @param EntityDocument $entity
         * @param bool $produceData Should we also produce Dataset node?
@@ -366,8 +363,7 @@
        }
 
        /**
-        * Add stubs for any entities that were previously mentioned (e.g.
-        * as properties
+        * Add stubs for any entities that were previously mentioned (e.g. as 
properties
         * or data values).
         *
         * @param EntityLookup $entityLookup
diff --git a/repo/includes/rdf/RdfProducer.php 
b/repo/includes/rdf/RdfProducer.php
index 571427a..51392df 100644
--- a/repo/includes/rdf/RdfProducer.php
+++ b/repo/includes/rdf/RdfProducer.php
@@ -1,9 +1,14 @@
 <?php
 
-namespace Wikibase;
+namespace Wikibase\Rdf;
 
 /**
  * RDF producer options
+ *
+ * @since 0.5
+ *
+ * @licence GNU GPL v2+
+ * @author Stas Malyshev
  */
 interface RdfProducer {
 
@@ -59,4 +64,5 @@
         * All options turned on.
         */
        const PRODUCE_ALL = 0xFFFF;
+
 }
diff --git a/repo/includes/rdf/SimpleValueRdfBuilder.php 
b/repo/includes/rdf/SimpleValueRdfBuilder.php
index 816da67..925e016 100644
--- a/repo/includes/rdf/SimpleValueRdfBuilder.php
+++ b/repo/includes/rdf/SimpleValueRdfBuilder.php
@@ -13,8 +13,6 @@
 use Wikibase\DataModel\Entity\PropertyDataTypeLookup;
 use Wikibase\DataModel\Entity\PropertyId;
 use Wikibase\DataModel\Entity\PropertyNotFoundException;
-use Wikibase\DateTimeValueCleaner;
-use Wikibase\JulianDateTimeValueCleaner;
 use Wikimedia\Purtle\RdfWriter;
 
 /**
@@ -56,8 +54,7 @@
                $this->vocabulary = $vocabulary;
                $this->propertyLookup = $propertyLookup;
 
-               // TODO: if data is fixed to be always Gregorian, replace with
-               // DateTimeValueCleaner
+               // TODO: if data is fixed to be always Gregorian, replace with 
DateTimeValueCleaner
                $this->dateCleaner = new JulianDateTimeValueCleaner();
                $this->mentionedEntityTracker = new 
NullMentionedEntityTracker();
        }
@@ -84,8 +81,11 @@
         * @param DataValue $value
         * @param string $propertyNamespace The property namespace for this snak
         */
-       public function addSnakValue( RdfWriter $writer, PropertyId $propertyId,
-                       DataValue $value, $propertyNamespace
+       public function addSnakValue(
+               RdfWriter $writer,
+               PropertyId $propertyId,
+               DataValue $value,
+               $propertyNamespace
        ) {
                $propertyValueLName = $this->vocabulary->getEntityLName( 
$propertyId );
 
@@ -115,7 +115,6 @@
         * @param DataValue $value
         */
        protected function addValueForDataType( RdfWriter $writer, 
$propertyValueNamespace, $propertyValueLName, $dataType, $value ) {
-
                //FIXME: use a proper registry / dispatching builder
                $typeFunc = 'addStatementFor' . preg_replace( '/[^\w]/', '', 
ucwords( $value->getType() ) );
 
@@ -128,7 +127,6 @@
                }
                // TODO: add special handling like in WDTK?
                // 
https://github.com/Wikidata/Wikidata-Toolkit/blob/master/wdtk-rdf/src/main/java/org/wikidata/wdtk/rdf/extensions/SimpleIdExportExtension.java
-
        }
 
        /**
@@ -140,9 +138,13 @@
         * @param string $dataType Property data type
         * @param EntityIdValue $value
         */
-       private function addStatementForWikibaseEntityid( RdfWriter $writer, 
$propertyValueNamespace, $propertyValueLName, $dataType,
-                       EntityIdValue $value ) {
-
+       private function addStatementForWikibaseEntityid(
+               RdfWriter $writer,
+               $propertyValueNamespace,
+               $propertyValueLName,
+               $dataType,
+               EntityIdValue $value
+       ) {
                $entityId = $value->getValue()->getEntityId();
                $entityLName = $this->vocabulary->getEntityLName( $entityId );
                $writer->say( $propertyValueNamespace, $propertyValueLName 
)->is( RdfVocabulary::NS_ENTITY, $entityLName );
@@ -159,11 +161,16 @@
         * @param string $dataType Property data type
         * @param StringValue $value
         */
-       private function addStatementForString( RdfWriter $writer, 
$propertyValueNamespace, $propertyValueLName, $dataType,
-                       StringValue $value ) {
-               if ( $dataType == 'commonsMedia' ) {
+       private function addStatementForString(
+               RdfWriter $writer,
+               $propertyValueNamespace,
+               $propertyValueLName,
+               $dataType,
+               StringValue $value
+       ) {
+               if ( $dataType === 'commonsMedia' ) {
                        $this->addValueToNode( $writer, 
$propertyValueNamespace, $propertyValueLName, 'url', 
$this->vocabulary->getCommonsURI( $value->getValue() ) );
-               } elseif ( $dataType == 'url' ) {
+               } elseif ( $dataType === 'url' ) {
                        $this->addValueToNode( $writer, 
$propertyValueNamespace, $propertyValueLName, 'url', $value->getValue() );
                } else {
                        $writer->say( $propertyValueNamespace, 
$propertyValueLName )->text( $value->getValue() );
@@ -181,13 +188,13 @@
         * @param mixed $value
         */
        protected function addValueToNode( RdfWriter $writer, 
$propertyValueNamespace, $propertyValueLName, $type, $value ) {
-               if( $type == 'url' ) {
+               if ( $type === 'url' ) {
                        // Trims extra whitespace since we had a bug in 
wikidata where some URLs end up having it
                        $writer->say( $propertyValueNamespace, 
$propertyValueLName )->is( trim( $value ) );
-               } elseif( $type == 'dateTime' && $value instanceof TimeValue ) {
+               } elseif ( $type === 'dateTime' && $value instanceof TimeValue 
) {
                        $writer->say( $propertyValueNamespace, 
$propertyValueLName );
                        $this->sayDateLiteral( $writer, $value );
-               } elseif( $type == 'decimal' ) {
+               } elseif ( $type === 'decimal' ) {
                        // TODO: handle precision here?
                        if ( $value instanceof DecimalValue ) {
                                $value = $value->getValue();
@@ -214,8 +221,13 @@
         * @param string $dataType Property data type
         * @param MonolingualTextValue $value
         */
-       private function addStatementForMonolingualtext( RdfWriter $writer, 
$propertyValueNamespace, $propertyValueLName, $dataType,
-                       MonolingualTextValue $value ) {
+       private function addStatementForMonolingualtext(
+               RdfWriter $writer,
+               $propertyValueNamespace,
+               $propertyValueLName,
+               $dataType,
+               MonolingualTextValue $value
+       ) {
                $writer->say( $propertyValueNamespace, $propertyValueLName 
)->text( $value->getText(), $value->getLanguageCode() );
        }
 
@@ -245,9 +257,13 @@
         * @param string $dataType Property data type
         * @param TimeValue $value
         */
-       private function addStatementForTime( RdfWriter $writer, 
$propertyValueNamespace, $propertyValueLName, $dataType,
-                       TimeValue $value ) {
-
+       private function addStatementForTime(
+               RdfWriter $writer,
+               $propertyValueNamespace,
+               $propertyValueLName,
+               $dataType,
+               TimeValue $value
+       ) {
                $this->addValueToNode( $writer, $propertyValueNamespace, 
$propertyValueLName, 'dateTime', $value );
        }
 
@@ -260,9 +276,13 @@
         * @param string $dataType Property data type
         * @param GlobeCoordinateValue $value
         */
-       private function addStatementForGlobecoordinate( RdfWriter $writer, 
$propertyValueNamespace, $propertyValueLName, $dataType,
-                       GlobeCoordinateValue $value ) {
-
+       private function addStatementForGlobecoordinate(
+               RdfWriter $writer,
+               $propertyValueNamespace,
+               $propertyValueLName,
+               $dataType,
+               GlobeCoordinateValue $value
+       ) {
                $point = "Point({$value->getLatitude()} 
{$value->getLongitude()})";
                $writer->say( $propertyValueNamespace, $propertyValueLName 
)->value( $point, RdfVocabulary::NS_GEO, "wktLiteral" );
        }
@@ -276,8 +296,13 @@
         * @param string $dataType Property data type
         * @param QuantityValue $value
         */
-       private function addStatementForQuantity( RdfWriter $writer, 
$propertyValueNamespace, $propertyValueLName, $dataType,
-               QuantityValue $value ) {
+       private function addStatementForQuantity(
+               RdfWriter $writer,
+               $propertyValueNamespace,
+               $propertyValueLName,
+               $dataType,
+               QuantityValue $value
+       ) {
                $writer->say( $propertyValueNamespace, $propertyValueLName 
)->value( $value->getAmount(), 'xsd', 'decimal' );
        }
 
diff --git a/repo/includes/rdf/TruthyStatementRdfBuilder.php 
b/repo/includes/rdf/TruthyStatementRdfBuilder.php
index a15b959..799c515 100644
--- a/repo/includes/rdf/TruthyStatementRdfBuilder.php
+++ b/repo/includes/rdf/TruthyStatementRdfBuilder.php
@@ -2,6 +2,7 @@
 
 namespace Wikibase\Rdf;
 
+use InvalidArgumentException;
 use Wikibase\DataModel\Entity\EntityDocument;
 use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
@@ -12,6 +13,7 @@
 
 /**
  * "Truthy" RDF mapping for wikibase statements.
+ * FIXME: What does "truthy" mean?
  *
  * @since 0.5
  *
@@ -67,6 +69,8 @@
         *
         * @param EntityId $entityId
         * @param Statement $statement
+        *
+        * @throws InvalidArgumentException
         */
        private function addMainSnak( EntityId $entityId, Statement $statement 
) {
                $snak = $statement->getMainSnak();
@@ -92,7 +96,7 @@
                                $this->writer->say( 
RdfVocabulary::NS_DIRECT_CLAIM, $propertyValueLName )->is( 
RdfVocabulary::NS_ONTOLOGY, 'Novalue' );
                                break;
                        default:
-                               throw new \InvalidArgumentException( 'Unknown 
snak type: ' . $snak->getType() );
+                               throw new InvalidArgumentException( 'Unknown 
snak type: ' . $snak->getType() );
                }
        }
 
diff --git a/repo/tests/phpunit/includes/rdf/ComplexValueRdfBuilderTest.php 
b/repo/tests/phpunit/includes/rdf/ComplexValueRdfBuilderTest.php
index bb46b90..0931c55 100644
--- a/repo/tests/phpunit/includes/rdf/ComplexValueRdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/ComplexValueRdfBuilderTest.php
@@ -10,17 +10,17 @@
 use DataValues\QuantityValue;
 use DataValues\StringValue;
 use DataValues\TimeValue;
+use PHPUnit_Framework_TestCase;
 use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Entity\EntityIdValue;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\DataModel\Entity\PropertyId;
 use Wikimedia\Purtle\RdfWriter;
-use Wikibase\Rdf\Test\RdfBuilderTestData;
 use Wikibase\Rdf\RdfVocabulary;
 use Wikibase\Rdf\ComplexValueRdfBuilder;
 
 /**
- * @covers Wikibase\ComplexValueRdfBuilder
+ * @covers Wikibase\Rdf\ComplexValueRdfBuilder
  *
  * @group Wikibase
  * @group WikibaseRepo
@@ -30,23 +30,26 @@
  * @author Daniel Kinzler
  * @author Stas Malyshev
  */
-class ComplexValueRdfBuilderTest extends \PHPUnit_Framework_TestCase {
+class ComplexValueRdfBuilderTest extends PHPUnit_Framework_TestCase {
 
-       private $testData;
+       /**
+        * @var RdfBuilderTestData|null
+        */
+       private $testData = null;
 
        /**
         * Initialize repository data
         *
         * @return RdfBuilderTestData
         */
-       private function getTestData()
-       {
-               if( empty( $this->testData ) ) {
+       private function getTestData() {
+               if ( $this->testData === null ) {
                        $this->testData = new RdfBuilderTestData(
                                __DIR__ . "/../../data/rdf",
                                __DIR__ . 
"/../../data/rdf/ComplexValueRdfBuilder"
                        );
                }
+
                return $this->testData;
        }
 
diff --git a/repo/tests/phpunit/includes/rdf/DateValueCleanerTest.php 
b/repo/tests/phpunit/includes/rdf/DateValueCleanerTest.php
index 5ac4b92..4e7479e 100644
--- a/repo/tests/phpunit/includes/rdf/DateValueCleanerTest.php
+++ b/repo/tests/phpunit/includes/rdf/DateValueCleanerTest.php
@@ -1,11 +1,24 @@
 <?php
-namespace Wikibase\Test;
+
+namespace Wikibase\Test\Rdf;
 
 use DataValues\TimeValue;
-use Wikibase\DateTimeValueCleaner;
-use Wikibase\JulianDateTimeValueCleaner;
+use PHPUnit_Framework_TestCase;
+use Wikibase\Rdf\DateTimeValueCleaner;
+use Wikibase\Rdf\JulianDateTimeValueCleaner;
 
-class DateValueCleanerTest extends \PHPUnit_Framework_TestCase {
+/**
+ * @covers Wikibase\Rdf\DateTimeValueCleaner
+ * @covers Wikibase\Rdf\JulianDateTimeValueCleaner
+ *
+ * @group Wikibase
+ * @group WikibaseRepo
+ * @group WikibaseRdf
+ *
+ * @licence GNU GPL v2+
+ * @author Stas Malyshev
+ */
+class DateValueCleanerTest extends PHPUnit_Framework_TestCase {
 
        public function getDates() {
                return array(
@@ -36,18 +49,19 @@
        /**
         * @dataProvider getDates
         */
-       public function testCleanDate($date, $calendar, $expected) {
-               $jCleaner = new JulianDateTimeValueCleaner();
-               $gCleaner = new DateTimeValueCleaner();
+       public function testCleanDate( $date, $calendar, $expected ) {
+               $julianCleaner = new JulianDateTimeValueCleaner();
+               $gregorianCleaner = new DateTimeValueCleaner();
 
-               $value = new TimeValue($date, 0, 0, 0, 
TimeValue::PRECISION_SECOND, $calendar);
+               $value = new TimeValue( $date, 0, 0, 0, 
TimeValue::PRECISION_SECOND, $calendar );
 
-               $result = $jCleaner->getStandardValue($value);
-               $this->assertEquals($expected, $result);
+               $result = $julianCleaner->getStandardValue( $value );
+               $this->assertEquals( $expected, $result );
 
-               if($calendar == 'http://www.wikidata.org/entity/Q1985727') {
-                       $result = $gCleaner->getStandardValue($value);
-                       $this->assertEquals($expected, $result);
+               if ( $calendar == 'http://www.wikidata.org/entity/Q1985727' ) {
+                       $result = $gregorianCleaner->getStandardValue( $value );
+                       $this->assertEquals( $expected, $result );
                }
        }
-}
\ No newline at end of file
+
+}
diff --git a/repo/tests/phpunit/includes/rdf/FullStatementsRdfBuilderTest.php 
b/repo/tests/phpunit/includes/rdf/FullStatementsRdfBuilderTest.php
index d6b9b18..1c05854 100644
--- a/repo/tests/phpunit/includes/rdf/FullStatementsRdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/FullStatementsRdfBuilderTest.php
@@ -2,15 +2,15 @@
 
 namespace Wikibase\Test\Rdf;
 
-use Wikibase\Rdf\ComplexValueRdfBuilder;
+use PHPUnit_Framework_TestCase;
 use Wikibase\DataModel\Entity\EntityId;
-use Wikibase\Rdf\Test\RdfBuilderTestData;
-use Wikibase\RdfProducer;
-use Wikibase\Rdf\SimpleValueRdfBuilder;
+use Wikibase\Rdf\ComplexValueRdfBuilder;
 use Wikibase\Rdf\FullStatementRdfBuilder;
+use Wikibase\Rdf\RdfProducer;
+use Wikibase\Rdf\SimpleValueRdfBuilder;
 
 /**
- * @covers Wikibase\FullStatementRdfBuilder
+ * @covers Wikibase\Rdf\FullStatementRdfBuilder
  *
  * @group Wikibase
  * @group WikibaseRepo
@@ -20,23 +20,26 @@
  * @author Daniel Kinzler
  * @author Stas Malyshev
  */
-class FullStatementRdfBuilderTest extends \PHPUnit_Framework_TestCase {
+class FullStatementRdfBuilderTest extends PHPUnit_Framework_TestCase {
 
-       private $testData;
+       /**
+        * @var RdfBuilderTestData|null
+        */
+       private $testData = null;
 
        /**
         * Initialize repository data
         *
         * @return RdfBuilderTestData
         */
-       private function getTestData()
-       {
-               if( empty( $this->testData ) ) {
+       private function getTestData() {
+               if ( $this->testData === null ) {
                        $this->testData = new RdfBuilderTestData(
                                __DIR__ . "/../../data/rdf",
                                __DIR__ . 
"/../../data/rdf/FullStatementRdfBuilder"
                        );
                }
+
                return $this->testData;
        }
 
@@ -62,7 +65,6 @@
 
                if ( $flavor & RdfProducer::PRODUCE_FULL_VALUES ) {
                        $valueWriter = $writer->sub();
-
                        $statementValueBuilder = new ComplexValueRdfBuilder( 
$vocabulary, $valueWriter, $this->getTestData()->getMockRepository() );
                } else {
                        $statementValueBuilder = new SimpleValueRdfBuilder( 
$vocabulary, $this->getTestData()->getMockRepository() );
diff --git a/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php 
b/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
index a005d9b..4f97f22 100644
--- a/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
@@ -2,14 +2,16 @@
 
 namespace Wikibase\Test\Rdf;
 
+use BagOStuff;
+use HashBagOStuff;
+use MediaWikiTestCase;
 use Wikibase\DataModel\Entity\Entity;
-use Wikimedia\Purtle\NTriplesRdfWriter;
-use Wikibase\Rdf\Test\RdfBuilderTestData;
 use Wikibase\Rdf\RdfBuilder;
-use Wikibase\RdfProducer;
+use Wikibase\Rdf\RdfProducer;
+use Wikimedia\Purtle\NTriplesRdfWriter;
 
 /**
- * @covers Wikibase\RdfBuilder
+ * @covers Wikibase\Rdf\RdfBuilder
  *
  * @group Wikibase
  * @group WikibaseRepo
@@ -19,7 +21,7 @@
  * @author Daniel Kinzler
  * @author Stas Malyshev
  */
-class RdfBuilderTest extends \MediaWikiTestCase {
+class RdfBuilderTest extends MediaWikiTestCase {
 
        private $testData;
 
@@ -38,11 +40,14 @@
        }
 
        /**
+        * @param int $produce
+        * @param BagOStuff|null $dedup
+        *
         * @return RdfBuilder
         */
-       private function newRdfBuilder( $produce, \BagOStuff $dedup = null ) {
+       private function newRdfBuilder( $produce, BagOStuff $dedup = null ) {
                if( !$dedup ) {
-                       $dedup = new \HashBagOStuff();
+                       $dedup = new HashBagOStuff();
                }
                $emitter = new NTriplesRdfWriter();
                $builder = new RdfBuilder(
@@ -60,34 +65,36 @@
 
        /**
         * Load entity from JSON
-        * @param string $entityId
+        *
+        * @param string $idString
+        *
         * @return Entity
         */
-       public function getEntityData( $entityId )
-       {
-               return $this->getTestData()->getEntity( $entityId );
+       public function getEntityData( $idString ) {
+               return $this->getTestData()->getEntity( $idString );
        }
 
        /**
         * Load serialized ntriples
+        *
         * @param string $testName
-        * @return array
+        *
+        * @return string[]|null
         */
-       public function getSerializedData( $testName )
-       {
+       public function getSerializedData( $testName ) {
                return $this->getTestData()->getNTriples( $testName );
        }
 
        public function getRdfTests() {
                $rdfTests = array(
-                               array('Q1', 'Q1_simple'),
-                               array('Q2', 'Q2_labels'),
-                               array('Q3', 'Q3_links'),
-                               array('Q4', 'Q4_claims'),
-                               array('Q5', 'Q5_badges'),
-                               array('Q6', 'Q6_qualifiers'),
-                               array('Q7', 'Q7_references'),
-                               array('Q8', 'Q8_baddates'),
+                       array( 'Q1', 'Q1_simple' ),
+                       array( 'Q2', 'Q2_labels' ),
+                       array( 'Q3', 'Q3_links' ),
+                       array( 'Q4', 'Q4_claims' ),
+                       array( 'Q5', 'Q5_badges' ),
+                       array( 'Q6', 'Q6_qualifiers' ),
+                       array( 'Q7', 'Q7_references' ),
+                       array( 'Q8', 'Q8_baddates' ),
                );
 
                return $rdfTests;
@@ -165,7 +172,7 @@
        }
 
        public function testDeduplication() {
-               $bag = new \HashBagOStuff();
+               $bag = new HashBagOStuff();
                $builder = $this->newRdfBuilder( RdfProducer::PRODUCE_ALL, $bag 
);
                $builder->addEntity( $this->getEntityData( 'Q7' ) );
                $data1 = $this->getDataFromBuilder( $builder );
diff --git a/repo/tests/phpunit/includes/rdf/RdfBuilderTestData.php 
b/repo/tests/phpunit/includes/rdf/RdfBuilderTestData.php
index 6ec1f05..75d677f 100644
--- a/repo/tests/phpunit/includes/rdf/RdfBuilderTestData.php
+++ b/repo/tests/phpunit/includes/rdf/RdfBuilderTestData.php
@@ -1,7 +1,8 @@
 <?php
 
-namespace Wikibase\Rdf\Test;
+namespace Wikibase\Test\Rdf;
 
+use Site;
 use SiteList;
 use Wikibase\DataModel\Entity\Entity;
 use Wikibase\DataModel\Entity\Item;
@@ -9,6 +10,7 @@
 use Wikibase\DataModel\Entity\Property;
 use Wikibase\DataModel\Entity\PropertyId;
 use Wikibase\DataModel\Term\Fingerprint;
+use Wikibase\Lib\Store\EntityContentDataCodec;
 use Wikibase\Rdf\RdfVocabulary;
 use Wikimedia\Purtle\NTriplesRdfWriter;
 use Wikibase\Repo\WikibaseRepo;
@@ -30,8 +32,19 @@
        const URI_BASE = 'http://acme.test/';
        const URI_DATA = 'http://data.acme.test/';
 
-       private $codec;
+       /**
+        * @var EntityContentDataCodec|null
+        */
+       private $codec = null;
+
+       /**
+        * @var string
+        */
        private $dataDir;
+
+       /**
+        * @var string
+        */
        private $entityDir;
 
        /**
@@ -44,28 +57,31 @@
        }
 
        /**
-        * Initialize repository data
+        * @return EntityContentDataCodec
         */
-       private function getCodec()
-       {
-               if( empty($this->codec) ) {
+       private function getCodec() {
+               if ( $this->codec === null ) {
                        $wikibaseRepo = WikibaseRepo::getDefaultInstance();
                        $wikibaseRepo->getSettings()->setSetting( 
'internalEntitySerializerClass', null );
                        $wikibaseRepo->getSettings()->setSetting( 
'useRedirectTargetColumn', true );
                        $this->codec = 
$wikibaseRepo->getEntityContentDataCodec();
                }
+
                return $this->codec;
        }
 
        /**
         * Load entity from JSON
-        * @param string $entityName
+        *
+        * @param string $idString
+        *
         * @return Entity
         */
-       public function getEntity( $entityName )
-       {
+       public function getEntity( $idString ) {
                return $this->getCodec()->decodeEntity(
-                       file_get_contents( 
"{$this->entityDir}/$entityName.json" ), CONTENT_FORMAT_JSON );
+                       file_get_contents( "{$this->entityDir}/$idString.json" 
),
+                       CONTENT_FORMAT_JSON
+               );
        }
 
        /**
@@ -75,13 +91,12 @@
         * @return string[]|null ntriples lines, sorted, or null if
         *         no data file was found with the given name.
         */
-       public function getNTriples( $dataSetName )
-       {
+       public function getNTriples( $dataSetName ) {
                $filename = "{$this->dataDir}/$dataSetName.nt";
-               if ( !file_exists( $filename ) )
-               {
+               if ( !file_exists( $filename ) ) {
                        return null;
                }
+
                $data = trim( file_get_contents( $filename ) );
                $data = explode( "\n", $data );
                sort( $data );
@@ -104,8 +119,7 @@
         */
        public function putTestData( $dataSetName, $lines, $suffix = '' ) {
                $filename = "{$this->dataDir}/$dataSetName.nt$suffix";
-               if ( file_exists( $filename ) )
-               {
+               if ( file_exists( $filename ) ) {
                        return false;
                }
 
@@ -146,18 +160,18 @@
        /**
         * Get site definitions matching the test data.
         *
-        * @return \SiteList
+        * @return SiteList
         */
        public function getSiteList() {
                $list = new SiteList();
 
-               $wiki = new \Site();
+               $wiki = new Site();
                $wiki->setGlobalId( 'enwiki' );
                $wiki->setLanguageCode( 'en' );
                $wiki->setLinkPath( 'http://enwiki.acme.test/$1' );
                $list['enwiki'] = $wiki;
 
-               $wiki = new \Site();
+               $wiki = new Site();
                $wiki->setGlobalId( 'ruwiki' );
                $wiki->setLanguageCode( 'ru' );
                $wiki->setLinkPath( 'http://ruwiki.acme.test/$1' );
@@ -172,14 +186,14 @@
         */
        private static function getTestProperties() {
                return array(
-                       array(2, 'wikibase-entityid'),
-                       array(3, 'commonsMedia'),
-                       array(4, 'globecoordinate'),
-                       array(5, 'monolingualtext'),
-                       array(6, 'quantity'),
-                       array(7, 'string'),
-                       array(8, 'time'),
-                       array(9, 'url'),
+                       array( 2, 'wikibase-entityid' ),
+                       array( 3, 'commonsMedia' ),
+                       array( 4, 'globecoordinate' ),
+                       array( 5, 'monolingualtext' ),
+                       array( 6, 'quantity' ),
+                       array( 7, 'string' ),
+                       array( 8, 'time' ),
+                       array( 9, 'url' ),
                );
        }
 
@@ -191,23 +205,25 @@
        public function getMockRepository() {
                static $repo;
 
-               if ( !empty($repo) ) {
+               if ( !empty( $repo ) ) {
                        return $repo;
                }
 
                $repo = new MockRepository();
 
-               foreach( self::getTestProperties() as $prop ) {
-                       list($id, $type) = $prop;
-                       $fingerprint = Fingerprint::newEmpty();
+               foreach ( self::getTestProperties() as $prop ) {
+                       list( $id, $type ) = $prop;
+                       $fingerprint = new Fingerprint();
                        $fingerprint->setLabel( 'en', "Property$id" );
-                       $entity = new Property( PropertyId::newFromNumber($id), 
$fingerprint, $type );
+                       $entity = new Property( PropertyId::newFromNumber( $id 
), $fingerprint, $type );
                        $repo->putEntity( $entity );
                }
-               $fingerprint = Fingerprint::newEmpty();
-               $fingerprint->setLabel( 'en', "Item42" );
-               $entity = new Item( ItemId::newFromNumber(42), $fingerprint );
+
+               $fingerprint = new Fingerprint();
+               $fingerprint->setLabel( 'en', 'Item42' );
+               $entity = new Item( new ItemId( 'Q42' ), $fingerprint );
                $repo->putEntity( $entity );
+
                return $repo;
        }
 
diff --git a/repo/tests/phpunit/includes/rdf/SimpleValueRdfBuilderTest.php 
b/repo/tests/phpunit/includes/rdf/SimpleValueRdfBuilderTest.php
index 739c7f6..6186022 100644
--- a/repo/tests/phpunit/includes/rdf/SimpleValueRdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/SimpleValueRdfBuilderTest.php
@@ -10,17 +10,17 @@
 use DataValues\QuantityValue;
 use DataValues\StringValue;
 use DataValues\TimeValue;
+use PHPUnit_Framework_TestCase;
 use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Entity\EntityIdValue;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\DataModel\Entity\PropertyId;
 use Wikimedia\Purtle\RdfWriter;
-use Wikibase\Rdf\Test\RdfBuilderTestData;
 use Wikibase\Rdf\RdfVocabulary;
 use Wikibase\Rdf\SimpleValueRdfBuilder;
 
 /**
- * @covers Wikibase\SimpleValueRdfBuilder
+ * @covers Wikibase\Rdf\SimpleValueRdfBuilder
  *
  * @group Wikibase
  * @group WikibaseRepo
@@ -30,23 +30,26 @@
  * @author Daniel Kinzler
  * @author Stas Malyshev
  */
-class SimpleValueRdfBuilderTest extends \PHPUnit_Framework_TestCase {
+class SimpleValueRdfBuilderTest extends PHPUnit_Framework_TestCase {
 
-       private $testData;
+       /**
+        * @var RdfBuilderTestData|null
+        */
+       private $testData = null;
 
        /**
         * Initialize repository data
         *
         * @return RdfBuilderTestData
         */
-       private function getTestData()
-       {
-               if( empty( $this->testData ) ) {
+       private function getTestData() {
+               if ( $this->testData === null ) {
                        $this->testData = new RdfBuilderTestData(
                                __DIR__ . "/../../data/rdf",
                                __DIR__ . 
"/../../data/rdf/SimpleValueRdfBuilder"
                        );
                }
+
                return $this->testData;
        }
 
diff --git a/repo/tests/phpunit/includes/rdf/SiteLinksRdfBuilderTest.php 
b/repo/tests/phpunit/includes/rdf/SiteLinksRdfBuilderTest.php
index 7fae5dd0..ac3787c 100644
--- a/repo/tests/phpunit/includes/rdf/SiteLinksRdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/SiteLinksRdfBuilderTest.php
@@ -2,11 +2,11 @@
 
 namespace Wikibase\Test\Rdf;
 
-use Wikibase\Rdf\Test\RdfBuilderTestData;
+use PHPUnit_Framework_TestCase;
 use Wikibase\Rdf\SiteLinksRdfBuilder;
 
 /**
- * @covers Wikibase\SiteLinksRdfBuilder
+ * @covers Wikibase\Rdf\SiteLinksRdfBuilder
  *
  * @group Wikibase
  * @group WikibaseRepo
@@ -16,23 +16,26 @@
  * @author Daniel Kinzler
  * @author Stas Malyshev
  */
-class SiteLinksRdfBuilderTest extends \PHPUnit_Framework_TestCase {
+class SiteLinksRdfBuilderTest extends PHPUnit_Framework_TestCase {
 
-       private $testData;
+       /**
+        * @var RdfBuilderTestData|null
+        */
+       private $testData = null;
 
        /**
         * Initialize repository data
         *
         * @return RdfBuilderTestData
         */
-       private function getTestData()
-       {
-               if( empty( $this->testData ) ) {
+       private function getTestData() {
+               if ( $this->testData === null ) {
                        $this->testData = new RdfBuilderTestData(
                                __DIR__ . "/../../data/rdf",
                                __DIR__ . "/../../data/rdf/SiteLinksRdfBuilder"
                        );
                }
+
                return $this->testData;
        }
 
diff --git a/repo/tests/phpunit/includes/rdf/TermsRdfBuilderTest.php 
b/repo/tests/phpunit/includes/rdf/TermsRdfBuilderTest.php
index ee63ede..f590df0 100644
--- a/repo/tests/phpunit/includes/rdf/TermsRdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/TermsRdfBuilderTest.php
@@ -1,11 +1,12 @@
 <?php
 
-namespace Wikibase\Rdf\Test;
+namespace Wikibase\Test\Rdf;
 
+use PHPUnit_Framework_TestCase;
 use Wikibase\Rdf\TermsRdfBuilder;
 
 /**
- * @covers Wikibase\TermsRdfBuilder
+ * @covers Wikibase\Rdf\TermsRdfBuilder
  *
  * @group Wikibase
  * @group WikibaseRepo
@@ -15,23 +16,26 @@
  * @author Daniel Kinzler
  * @author Stas Malyshev
  */
-class TermsRdfBuilderTest extends \PHPUnit_Framework_TestCase {
+class TermsRdfBuilderTest extends PHPUnit_Framework_TestCase {
 
-       private $testData;
+       /**
+        * @var RdfBuilderTestData|null
+        */
+       private $testData = null;
 
        /**
         * Initialize repository data
         *
         * @return RdfBuilderTestData
         */
-       private function getTestData()
-       {
-               if( empty( $this->testData ) ) {
+       private function getTestData() {
+               if ( $this->testData === null ) {
                        $this->testData = new RdfBuilderTestData(
                                __DIR__ . "/../../data/rdf",
                                __DIR__ . "/../../data/rdf/TermsRdfBuilder"
                        );
                }
+
                return $this->testData;
        }
 
diff --git a/repo/tests/phpunit/includes/rdf/TruthyStatementsRdfBuilderTest.php 
b/repo/tests/phpunit/includes/rdf/TruthyStatementsRdfBuilderTest.php
index 88b13f6..96ff92e 100644
--- a/repo/tests/phpunit/includes/rdf/TruthyStatementsRdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/TruthyStatementsRdfBuilderTest.php
@@ -2,12 +2,12 @@
 
 namespace Wikibase\Test\Rdf;
 
-use Wikibase\Rdf\Test\RdfBuilderTestData;
+use PHPUnit_Framework_TestCase;
 use Wikibase\Rdf\SimpleValueRdfBuilder;
 use Wikibase\Rdf\TruthyStatementRdfBuilder;
 
 /**
- * @covers Wikibase\TruthyStatementRdfBuilder
+ * @covers Wikibase\Rdf\TruthyStatementRdfBuilder
  *
  * @group Wikibase
  * @group WikibaseRepo
@@ -17,23 +17,26 @@
  * @author Daniel Kinzler
  * @author Stas Malyshev
  */
-class TruthyStatementRdfBuilderTest extends \PHPUnit_Framework_TestCase {
+class TruthyStatementRdfBuilderTest extends PHPUnit_Framework_TestCase {
 
-       private $testData;
+       /**
+        * @var RdfBuilderTestData|null
+        */
+       private $testData = null;
 
        /**
         * Initialize repository data
         *
         * @return RdfBuilderTestData
         */
-       private function getTestData()
-       {
-               if( empty( $this->testData ) ) {
+       private function getTestData() {
+               if ( $this->testData === null ) {
                        $this->testData = new RdfBuilderTestData(
                                __DIR__ . "/../../data/rdf",
                                __DIR__ . 
"/../../data/rdf/TruthyStatementRdfBuilder"
                        );
                }
+
                return $this->testData;
        }
 

-- 
To view, visit https://gerrit.wikimedia.org/r/205853
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I538f33a6da2da3a0b77546749e771dfe415d2c68
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to