Dominic.sauer has uploaded a new change for review.

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

Change subject: Refactor DumpMetaInformation as  pure value class, using 
DumpMetaInformationStore and DumpMetaInformationLookup
......................................................................

Refactor DumpMetaInformation as  pure value class, using 
DumpMetaInformationStore and DumpMetaInformationLookup

Change-Id: I8de0e2ed3a8460bccff374480caa3a5ae936594d
---
M includes/CrossCheck/Comparer/DataValueComparer.php
M includes/CrossCheck/Comparer/MultilingualTextValueComparer.php
M includes/CrossCheck/CrossChecker.php
M includes/CrossCheck/ReferenceHandler.php
M includes/CrossCheck/Result/CrossCheckResult.php
D includes/DumpMetaInformation.php
A includes/DumpMetaInformation/DumpMetaInformation.php
A includes/DumpMetaInformation/DumpMetaInformationLookup.php
A includes/DumpMetaInformation/DumpMetaInformationStore.php
M includes/Serializer/DumpMetaInformationSerializer.php
M includes/UpdateTable/Importer.php
M specials/SpecialExternalDbs.php
M tests/phpunit/Api/CrossCheckTest.php
M tests/phpunit/CheckForCrossCheckViolationsJobTest.php
M tests/phpunit/CrossCheck/Comparer/DataValueComparerTest.php
M tests/phpunit/CrossCheck/Comparer/DataValueComparerTestBase.php
M tests/phpunit/CrossCheck/CrossCheckerTest.php
M tests/phpunit/CrossCheck/ReferenceHandlerTest.php
M tests/phpunit/CrossCheck/Result/CrossCheckResultTest.php
M tests/phpunit/DumpMetaInformationTest.php
M tests/phpunit/Serializer/CrossCheckResultSerializerTest.php
M tests/phpunit/Serializer/DumpMetaInformationSerializerTest.php
M tests/phpunit/Serializer/SerializerFactoryTest.php
M tests/phpunit/Specials/SpecialCrossCheckTest.php
M tests/phpunit/Specials/SpecialExternalDbsTest.php
M tests/phpunit/UpdateTable/UpdateTableTest.php
26 files changed, 421 insertions(+), 303 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikidataQualityExternalValidation
 refs/changes/49/207049/1

diff --git a/includes/CrossCheck/Comparer/DataValueComparer.php 
b/includes/CrossCheck/Comparer/DataValueComparer.php
index 205ace6..71a04dc 100755
--- a/includes/CrossCheck/Comparer/DataValueComparer.php
+++ b/includes/CrossCheck/Comparer/DataValueComparer.php
@@ -9,7 +9,7 @@
 use ValueParsers\ValueParser;
 use Wikibase\Parsers\MonolingualTextParser;
 use WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
 
 
 /**
diff --git a/includes/CrossCheck/Comparer/MultilingualTextValueComparer.php 
b/includes/CrossCheck/Comparer/MultilingualTextValueComparer.php
old mode 100644
new mode 100755
index c525a13..d8032bc
--- a/includes/CrossCheck/Comparer/MultilingualTextValueComparer.php
+++ b/includes/CrossCheck/Comparer/MultilingualTextValueComparer.php
@@ -4,7 +4,7 @@
 
 use DataValues\MultilingualTextValue;
 use WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
 
 
 /**
diff --git a/includes/CrossCheck/CrossChecker.php 
b/includes/CrossCheck/CrossChecker.php
old mode 100644
new mode 100755
index c8d0b18..1d418d2
--- a/includes/CrossCheck/CrossChecker.php
+++ b/includes/CrossCheck/CrossChecker.php
@@ -18,7 +18,8 @@
 use WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResult;
 use WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResultList;
 use WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use 
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationLookup;
 
 
 /**
@@ -146,7 +147,8 @@
 
                $resultList = new CrossCheckResultList();
                foreach ( $externalData as $dumpId => $externalDataPerDump ) {
-                       $dumpMetaInformation = DumpMetaInformation::get( 
$this->db, $dumpId );
+            $dumpMetaInformationLookup = new DumpMetaInformationLookup( 
$dumpId );
+                       $dumpMetaInformation = 
$dumpMetaInformationLookup->findDumpMetaInformation();
 
                        foreach ( $externalDataPerDump as $externalId => 
$externalDataPerId ) {
                                foreach ( $externalDataPerId as $propertyId => 
$externalValues ) {
diff --git a/includes/CrossCheck/ReferenceHandler.php 
b/includes/CrossCheck/ReferenceHandler.php
old mode 100644
new mode 100755
index c4e0b34..d865a24
--- a/includes/CrossCheck/ReferenceHandler.php
+++ b/includes/CrossCheck/ReferenceHandler.php
@@ -11,7 +11,7 @@
 use Wikibase\DataModel\Snak\SnakList;
 use Wikibase\DataModel\Statement\Statement;
 use WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
 
 
 /**
diff --git a/includes/CrossCheck/Result/CrossCheckResult.php 
b/includes/CrossCheck/Result/CrossCheckResult.php
old mode 100644
new mode 100755
index 781c5e9..64a9d7f
--- a/includes/CrossCheck/Result/CrossCheckResult.php
+++ b/includes/CrossCheck/Result/CrossCheckResult.php
@@ -5,7 +5,7 @@
 use Doctrine\Instantiator\Exception\InvalidArgumentException;
 use Wikibase\DataModel\Entity\PropertyId;
 use Wikibase\Repo\WikibaseRepo;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
 use WikidataQuality\Result\CheckResult;
 
 
diff --git a/includes/DumpMetaInformation.php b/includes/DumpMetaInformation.php
deleted file mode 100644
index 25c57d8..0000000
--- a/includes/DumpMetaInformation.php
+++ /dev/null
@@ -1,254 +0,0 @@
-<?php
-
-namespace WikidataQuality\ExternalValidation;
-
-use DatabaseBase;
-use DateTime;
-use DateTimeZone;
-use Doctrine\Instantiator\Exception\InvalidArgumentException;
-use Doctrine\Instantiator\Exception\UnexpectedValueException;
-use Wikibase\DataModel\Entity\ItemId;
-
-
-/**
- * Class DumpMetaInformation
- *
- * @package WikidataQuality\ExternalValidation\CrossCheck
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-class DumpMetaInformation {
-
-       /**
-        * Id of the dump
-        *
-        * @var string
-        */
-       private $dumpId;
-
-       /**
-        * Id of the item that represents the data source of the dump
-        *
-        * @var ItemId
-        */
-       private $sourceItemId;
-
-       /**
-        * Date of import
-        *
-        * @var DateTime
-        */
-       private $importDate;
-
-       /**
-        * Language of data in the dump
-        *
-        * @var string
-        */
-       private $language;
-
-       /**
-        * Source url of the downloaded dump
-        *
-        * @var string
-        */
-       private $sourceUrl;
-
-       /**
-        * Size of the imported dump
-        *
-        * @var int
-        */
-       private $size;
-
-       /**
-        * Id of the item that represents the license of the database
-        *
-        * @var ItemId
-        */
-       private $licenseItemId;
-
-       /**
-        * @param string $dumpId
-        * @param ItemId $sourceItemId
-        * @param DateTime $importDate
-        * @param string $language
-        * @param string $sourceUrl
-        * @param int $size
-        * @param ItemId $licenseItemId
-        */
-       public function __construct( $dumpId, ItemId $sourceItemId, DateTime 
$importDate, $language, $sourceUrl, $size, ItemId $licenseItemId ) {
-               if ( !is_string( $dumpId ) ) {
-                       throw new InvalidArgumentException( '$dumpId must be 
string.' );
-               }
-               if ( !is_string( $language ) ) {
-                       throw new InvalidArgumentException( '$language must be 
string.' );
-               }
-               if ( !is_string( $sourceUrl ) ) {
-                       throw new InvalidArgumentException( '$sourceUrl must be 
string.' );
-               }
-               if ( !is_int( $size ) ) {
-                       throw new InvalidArgumentException( '$size must be 
integer.' );
-               }
-
-               $this->dumpId = $dumpId;
-               $this->sourceItemId = $sourceItemId;
-               $this->importDate = $importDate;
-               $this->language = $language;
-               $this->sourceUrl = $sourceUrl;
-               $this->size = $size;
-               $this->licenseItemId = $licenseItemId;
-       }
-
-       /**
-        * @return string
-        */
-       public function getDumpId() {
-               return $this->dumpId;
-       }
-
-       /**
-        * @return ItemId
-        */
-       public function getSourceItemId() {
-               return $this->sourceItemId;
-       }
-
-       /**
-        * @return DateTime
-        */
-       public function getImportDate() {
-               return $this->importDate;
-       }
-
-       /**
-        * @return string
-        */
-       public function getLanguage() {
-               return $this->language;
-       }
-
-       /**
-        * @return string
-        */
-       public function getSourceUrl() {
-               return $this->sourceUrl;
-       }
-
-       /**
-        * @return int
-        */
-       public function getSize() {
-               return $this->size;
-       }
-
-       /**
-        * @return ItemId
-        */
-       public function getLicenseItemId() {
-               return $this->licenseItemId;
-       }
-
-       /**
-        * Saves dump meta information to database
-        *
-        * @param DataBase $db
-        */
-       public function save( DatabaseBase $db ) {
-               $accumulator = array (
-                       'dump_id' => $this->getDumpId(),
-                       'source_qid' => 
$this->getSourceItemId()->getSerialization(),
-                       'import_date' => $this->getImportDate()->format( 
'YmdHis' ),
-                       'language' => $this->getLanguage(),
-                       'source_url' => $this->getSourceUrl(),
-                       'size' => $this->getSize(),
-                       'license_qid' => 
$this->getLicenseItemId()->getSerialization()
-               );
-
-               $dumpId = $this->getDumpId();
-               $existing = $db->selectRow(
-                       DUMP_META_TABLE,
-                       array ( 'dump_id' ),
-                       array ( "dump_id='$dumpId'" )
-               );
-
-               if ( $existing ) {
-                       $result = $db->update(
-                               DUMP_META_TABLE,
-                               $accumulator,
-                               array ( "dump_id='$dumpId'" )
-                       );
-               } else {
-                       $result = $db->insert(
-                               DUMP_META_TABLE,
-                               $accumulator
-                       );
-               }
-
-               return $result;
-       }
-
-       /**
-        * Gets DumpMetaInformation for specific dump ids from database
-        *
-        * @param DatabaseBase $db
-        * @param string|array $dumpIds
-        *
-        * @return array|DumpMetaInformation
-        */
-       public static function get( DatabaseBase $db, $dumpIds = null ) {
-               if ( $dumpIds ) {
-                       if ( is_string( $dumpIds ) ) {
-                               $dumpIds = array ( $dumpIds );
-                       } elseif ( !is_array( $dumpIds ) ) {
-                               throw new InvalidArgumentException( '$dumpIds 
must be array of strings or string.' );
-                       } else {
-                               foreach ( $dumpIds as $dumpId ) {
-                                       if ( !is_string( $dumpId ) ) {
-                                               throw new 
InvalidArgumentException( '$dumpIds must be array of strings.' );
-                                       }
-                               }
-                       }
-               }
-
-               $conditions = array ();
-               if ( $dumpIds ) {
-                       $formatter = function ( $dumpId ) {
-                               return sprintf( '"%s"', $dumpId );
-                       };
-                       $dumpIds = array_map( $formatter, $dumpIds );
-                       $conditions[ ] = sprintf( 'dump_id IN (%s)', implode( 
',', $dumpIds ) );
-               }
-
-               $result = $db->select(
-                       DUMP_META_TABLE,
-                       array ( 'dump_id', 'source_qid', 'import_date', 
'language', 'source_url', 'size', 'license_qid' ),
-                       $conditions
-               );
-
-               $dumpMetaInformation = array ();
-               foreach ( $result as $row ) {
-                       $dumpId = $row->dump_id;
-                       $sourceItemId = new ItemId( $row->source_qid );
-                       $importDate = DateTime::createFromFormat( 'YmdHis', 
$row->import_date, new DateTimeZone( 'UTC' ) );
-                       if ( !$importDate ) {
-                               throw new UnexpectedValueException( 'Cannot 
convert import_date from violations table to YmdHis format.' );
-                       }
-                       $language = $row->language;
-                       $sourceUrl = $row->source_url;
-                       $size = (int)$row->size;
-                       $licenseItemId = new ItemId( $row->license_qid );
-
-                       $dumpMetaInformation[ $dumpId ] = new 
DumpMetaInformation( $dumpId, $sourceItemId, $importDate, $language, 
$sourceUrl, $size, $licenseItemId );
-               }
-
-               if ( $dumpMetaInformation ) {
-                       if ( $dumpIds && count( $dumpIds ) === 1 ) {
-                               $dumpMetaInformation = array_values( 
$dumpMetaInformation );
-                               return $dumpMetaInformation[ 0 ];
-                       } else {
-                               return $dumpMetaInformation;
-                       }
-               }
-       }
-}
\ No newline at end of file
diff --git a/includes/DumpMetaInformation/DumpMetaInformation.php 
b/includes/DumpMetaInformation/DumpMetaInformation.php
new file mode 100755
index 0000000..83db058
--- /dev/null
+++ b/includes/DumpMetaInformation/DumpMetaInformation.php
@@ -0,0 +1,149 @@
+<?php
+
+namespace WikidataQuality\ExternalValidation\DumpMetaInformation;
+
+use DateTime;
+use Doctrine\Instantiator\Exception\InvalidArgumentException;
+use Doctrine\Instantiator\Exception\UnexpectedValueException;
+use Wikibase\DataModel\Entity\ItemId;
+
+
+/**
+ * @package WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+class DumpMetaInformation {
+
+       /**
+        * Id of the dump
+        *
+        * @var string
+        */
+       private $dumpId;
+
+       /**
+        * Id of the item that represents the data source of the dump
+        *
+        * @var ItemId
+        */
+       private $sourceItemId;
+
+       /**
+        * Date of import
+        *
+        * @var DateTime
+        */
+       private $importDate;
+
+       /**
+        * Language of data in the dump
+        *
+        * @var string
+        */
+       private $language;
+
+       /**
+        * Source url of the downloaded dump
+        *
+        * @var string
+        */
+       private $sourceUrl;
+
+       /**
+        * Size of the imported dump
+        *
+        * @var int
+        */
+       private $size;
+
+       /**
+        * Id of the item that represents the license of the database
+        *
+        * @var ItemId
+        */
+       private $licenseItemId;
+
+       /**
+        * @param string $dumpId
+        * @param ItemId $sourceItemId
+        * @param DateTime $importDate
+        * @param string $language
+        * @param string $sourceUrl
+        * @param int $size
+        * @param ItemId $licenseItemId
+     *
+     * @throws InvalidArgumentException
+        */
+       public function __construct( $dumpId, ItemId $sourceItemId, DateTime 
$importDate, $language, $sourceUrl, $size, ItemId $licenseItemId ) {
+               if ( !is_string( $dumpId ) ) {
+                       throw new InvalidArgumentException( '$dumpId must be 
string.' );
+               }
+               if ( !is_string( $language ) ) {
+                       throw new InvalidArgumentException( '$language must be 
string.' );
+               }
+               if ( !is_string( $sourceUrl ) ) {
+                       throw new InvalidArgumentException( '$sourceUrl must be 
string.' );
+               }
+               if ( !is_int( $size ) ) {
+                       throw new InvalidArgumentException( '$size must be 
integer.' );
+               }
+
+               $this->dumpId = $dumpId;
+               $this->sourceItemId = $sourceItemId;
+               $this->importDate = $importDate;
+               $this->language = $language;
+               $this->sourceUrl = $sourceUrl;
+               $this->size = $size;
+               $this->licenseItemId = $licenseItemId;
+       }
+
+       /**
+        * @return string
+        */
+       public function getDumpId() {
+               return $this->dumpId;
+       }
+
+       /**
+        * @return ItemId
+        */
+       public function getSourceItemId() {
+               return $this->sourceItemId;
+       }
+
+       /**
+        * @return DateTime
+        */
+       public function getImportDate() {
+               return $this->importDate;
+       }
+
+       /**
+        * @return string
+        */
+       public function getLanguage() {
+               return $this->language;
+       }
+
+       /**
+        * @return string
+        */
+       public function getSourceUrl() {
+               return $this->sourceUrl;
+       }
+
+       /**
+        * @return int
+        */
+       public function getSize() {
+               return $this->size;
+       }
+
+       /**
+        * @return ItemId
+        */
+       public function getLicenseItemId() {
+               return $this->licenseItemId;
+       }
+}
\ No newline at end of file
diff --git a/includes/DumpMetaInformation/DumpMetaInformationLookup.php 
b/includes/DumpMetaInformation/DumpMetaInformationLookup.php
new file mode 100755
index 0000000..78d31bc
--- /dev/null
+++ b/includes/DumpMetaInformation/DumpMetaInformationLookup.php
@@ -0,0 +1,128 @@
+<?php
+
+namespace WikidataQuality\ExternalValidation\DumpMetaInformation;
+
+use DateTime;
+use DateTimeZone;
+use ResultWrapper;
+use Wikibase\DataModel\Entity\ItemId;
+use Doctrine\Instantiator\Exception\InvalidArgumentException;
+use Doctrine\Instantiator\Exception\UnexpectedValueException;
+
+/**
+ * @package WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+class DumpMetaInformationLookup {
+
+    private $db;
+
+    private $dumpIds;
+
+    /**
+     * @param string|array $dumpIds
+     *
+     * @throws InvalidArgumentException
+     */
+    public function __construct( $dumpIds = null ) {
+
+        if ( $dumpIds ) {
+            if ( is_string( $dumpIds ) ) {
+                $dumpIds = array ( $dumpIds );
+            } elseif ( !is_array( $dumpIds ) ) {
+                throw new InvalidArgumentException( '$dumpIds must be array of 
strings or string.' );
+            } else {
+                foreach ( $dumpIds as $dumpId ) {
+                    if ( !is_string( $dumpId ) ) {
+                        throw new InvalidArgumentException( '$dumpIds must be 
array of strings.' );
+                    }
+                }
+            }
+        }
+
+        $this->dumpIds = $dumpIds;
+        $this->getDBConnection();
+    }
+
+    /**
+     * Gets DumpMetaInformation for specific dump ids from database
+     *
+     * @throws UnexpectedValueException
+     *
+     * @return array|DumpMetaInformation
+     */
+    public function findDumpMetaInformation() {
+
+        $conditions = $this->setConditions();
+
+        $result = $this->db->select(
+            DUMP_META_TABLE,
+            array ( 'dump_id', 'source_qid', 'import_date', 'language', 
'source_url', 'size', 'license_qid' ),
+            $conditions
+        );
+
+        $dumpMetaInformation = $this->buildDumpMetaInformationFromResult( 
$result );
+        if ( $dumpMetaInformation ) {
+            if ( $this->dumpIds && count( $this->dumpIds ) === 1 ) {
+                $dumpMetaInformation = array_values( $dumpMetaInformation );
+                return $dumpMetaInformation[ 0 ];
+            } else {
+                return $dumpMetaInformation;
+            }
+        }
+    }
+
+    /**
+     * @return array
+     */
+    private function setConditions() {
+        $conditions = array ();
+        if ( $this->dumpIds ) {
+            $formatter = function ( $dumpId ) {
+                return sprintf( '"%s"', $dumpId );
+            };
+            $this->dumpIds = array_map( $formatter, $this->dumpIds );
+            $conditions[ ] = sprintf( 'dump_id IN (%s)', implode( ',', 
$this->dumpIds ) );
+        }
+
+        return $conditions;
+    }
+
+    /**
+     * @param ResultWrapper $result
+     *
+     * @throws UnexpectedValueException
+     *
+     * @return array
+     */
+    private function buildDumpMetaInformationFromResult( ResultWrapper $result 
){
+        $dumpMetaInformation = array ();
+        foreach ( $result as $row ) {
+            $dumpId = $row->dump_id;
+            $sourceItemId = new ItemId( $row->source_qid );
+            $importDate = DateTime::createFromFormat( 'YmdHis', 
$row->import_date, new DateTimeZone( 'UTC' ) );
+            if ( !$importDate ) {
+                throw new UnexpectedValueException( 'Cannot convert 
import_date from violations table to YmdHis format.' );
+            }
+            $language = $row->language;
+            $sourceUrl = $row->source_url;
+            $size = (int)$row->size;
+            $licenseItemId = new ItemId( $row->license_qid );
+
+            $dumpMetaInformation[ $dumpId ] = new DumpMetaInformation( 
$dumpId, $sourceItemId, $importDate, $language, $sourceUrl, $size, 
$licenseItemId );
+        }
+
+        return $dumpMetaInformation;
+    }
+
+    /**
+     * @throws \DBError
+     * @throws \MWException
+     */
+    private function getDBConnection() {
+        wfWaitForSlaves();
+        $loadBalancer = wfGetLB();
+        $this->db = $loadBalancer->getConnection( DB_MASTER );
+    }
+} 
\ No newline at end of file
diff --git a/includes/DumpMetaInformation/DumpMetaInformationStore.php 
b/includes/DumpMetaInformation/DumpMetaInformationStore.php
new file mode 100755
index 0000000..8e72c2a
--- /dev/null
+++ b/includes/DumpMetaInformation/DumpMetaInformationStore.php
@@ -0,0 +1,76 @@
+<?php
+
+namespace WikidataQuality\ExternalValidation\DumpMetaInformation;
+
+/**
+ * @package WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+class DumpMetaInformationStore {
+
+    private $db;
+
+    /**
+     * Saves dump meta information to database
+     *
+     * @param DumpMetaInformation $dumpMetaInformation
+     *
+     * @return boolean $result
+     */
+    public function save( DumpMetaInformation $dumpMetaInformation ) {
+
+        $accumulator = $this->getDumpInformationArray( $dumpMetaInformation );
+
+        $this->getDBConnection();
+
+        $dumpId = $dumpMetaInformation->getDumpId();
+        $existing = $this->db->selectRow(
+            DUMP_META_TABLE,
+            array ( 'dump_id' ),
+            array ( "dump_id='$dumpId'" )
+        );
+
+        if ( $existing ) {
+            $result = $this->db->update(
+                DUMP_META_TABLE,
+                $accumulator,
+                array ( "dump_id='$dumpId'" )
+            );
+        } else {
+            $result = $this->db->insert(
+                DUMP_META_TABLE,
+                $accumulator
+            );
+        }
+
+        return $result;
+    }
+
+    /**
+     * @param DumpMetaInformation $dumpMetaInformation
+     *
+     * @return array
+     */
+    private function getDumpInformationArray( DumpMetaInformation 
$dumpMetaInformation ) {
+        return array (
+            'dump_id' => $dumpMetaInformation->getDumpId(),
+            'source_qid' => 
$dumpMetaInformation->getSourceItemId()->getSerialization(),
+            'import_date' => $dumpMetaInformation->getImportDate()->format( 
'YmdHis' ),
+            'language' => $dumpMetaInformation->getLanguage(),
+            'source_url' => $dumpMetaInformation->getSourceUrl(),
+            'size' => $dumpMetaInformation->getSize(),
+            'license_qid' => 
$dumpMetaInformation->getLicenseItemId()->getSerialization()
+        );
+    }
+
+    /**
+     * @throws \DBError
+     * @throws \MWException
+     */
+    private function getDBConnection() {
+        wfWaitForSlaves();
+        $loadBalancer = wfGetLB();
+        $this->db = $loadBalancer->getConnection( DB_MASTER );
+    }
+} 
\ No newline at end of file
diff --git a/includes/Serializer/DumpMetaInformationSerializer.php 
b/includes/Serializer/DumpMetaInformationSerializer.php
old mode 100644
new mode 100755
index b263ed3..02ffa60
--- a/includes/Serializer/DumpMetaInformationSerializer.php
+++ b/includes/Serializer/DumpMetaInformationSerializer.php
@@ -6,7 +6,7 @@
 use Serializers\DispatchableSerializer;
 use Serializers\Exceptions\UnsupportedObjectException;
 use Serializers\Serializer;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
 
 
 /**
diff --git a/includes/UpdateTable/Importer.php 
b/includes/UpdateTable/Importer.php
old mode 100644
new mode 100755
index 60d0e39..ceab3f3
--- a/includes/UpdateTable/Importer.php
+++ b/includes/UpdateTable/Importer.php
@@ -9,7 +9,8 @@
 use MWException;
 use PharData;
 use Wikibase\DataModel\Entity\ItemId;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use 
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore;
 
 
 /**
@@ -201,11 +202,9 @@
     /**
      * Inserts meta information stored in csv file into database
      *
-     * @param DatabaseBase $db
-     *
      * @return array
      */
-    protected function insertMetaInformation( DatabaseBase $db ) {
+    protected function insertMetaInformation() {
         if ( !$this->importContext->isQuiet() ) {
             print "Insert new dump meta information\n";
         }
@@ -224,7 +223,8 @@
                 intval( $data[ 5 ] ),
                 new ItemId( $data[ 6 ] )
             );
-            $metaInformation->save( $db );
+            $dumpMetaInformationStore = new DumpMetaInformationStore();
+            $dumpMetaInformationStore->save( $metaInformation );
 
             $dumpIds[ ] = $metaInformation->getDumpId();
 
diff --git a/specials/SpecialExternalDbs.php b/specials/SpecialExternalDbs.php
old mode 100644
new mode 100755
index 6897fcf..d493feb
--- a/specials/SpecialExternalDbs.php
+++ b/specials/SpecialExternalDbs.php
@@ -8,7 +8,7 @@
 use Language;
 use Linker;
 use Wikibase\DataModel\Entity\ItemId;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use 
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationLookup;
 use WikidataQuality\Html\HtmlTable;
 use WikidataQuality\Html\HtmlTableCell;
 use WikidataQuality\Specials\SpecialWikidataQualityPage;
@@ -49,10 +49,9 @@
                        . Html::closeElement( 'h3' )
                );
 
-               wfWaitForSlaves();
-               $loadBalancer = wfGetLB();
-               $db = $loadBalancer->getConnection( DB_SLAVE );
-               $dumps = DumpMetaInformation::get( $db );
+
+        $dumpMetaInformationLookup = new DumpMetaInformationLookup();
+        $dumps = $dumpMetaInformationLookup->findDumpMetaInformation();
 
                if ( $dumps ) {
                        $groupedDumpMetaInformation = array ();
diff --git a/tests/phpunit/Api/CrossCheckTest.php 
b/tests/phpunit/Api/CrossCheckTest.php
index f6c1df4..a649642 100755
--- a/tests/phpunit/Api/CrossCheckTest.php
+++ b/tests/phpunit/Api/CrossCheckTest.php
@@ -18,7 +18,7 @@
  * @group API
  * @group medium
  *
- * @uses   WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses   
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
  * @uses   WikidataQuality\ExternalValidation\CrossCheck\CrossChecker
  * @uses   WikidataQuality\ExternalValidation\CrossCheck\ReferenceHandler
  * @uses   
WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer
diff --git a/tests/phpunit/CheckForCrossCheckViolationsJobTest.php 
b/tests/phpunit/CheckForCrossCheckViolationsJobTest.php
old mode 100644
new mode 100755
index 7642d8b..2eda54c
--- a/tests/phpunit/CheckForCrossCheckViolationsJobTest.php
+++ b/tests/phpunit/CheckForCrossCheckViolationsJobTest.php
@@ -17,7 +17,7 @@
 use DataValues\StringValue;
 use Wikibase\Repo\WikibaseRepo;
 use WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
 use WikidataQuality\ExternalValidation\CheckForCrossCheckViolationsJob;
 
 
@@ -30,7 +30,7 @@
  * @uses WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult
  * @uses WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResult
  * @uses 
WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResultList
- * @uses WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses 
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
  * @uses WikidataQuality\ExternalValidation\CrossCheck\CrossChecker
  *
  * @author BP2014N1
diff --git a/tests/phpunit/CrossCheck/Comparer/DataValueComparerTest.php 
b/tests/phpunit/CrossCheck/Comparer/DataValueComparerTest.php
old mode 100644
new mode 100755
index 962f3fb..7915b0d
--- a/tests/phpunit/CrossCheck/Comparer/DataValueComparerTest.php
+++ b/tests/phpunit/CrossCheck/Comparer/DataValueComparerTest.php
@@ -14,13 +14,13 @@
 use Wikibase\DataModel\Entity\EntityIdValue;
 use Wikibase\DataModel\Entity\ItemId;
 use WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
 
 
 /**
  * @covers 
WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer
  *
- * @uses   WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses   
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
  * @uses   
WikidataQuality\ExternalValidation\CrossCheck\Comparer\MultilingualTextValueComparer
  *
  * @author BP2014N1
@@ -176,7 +176,7 @@
      * @return \PHPUnit_Framework_MockObject_MockObject
      */
     public function getDumpMetaInformationMock() {
-        $mock = $this->getMockBuilder( 
'WikidataQuality\ExternalValidation\DumpMetaInformation' )
+        $mock = $this->getMockBuilder( 
'WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation' )
             ->disableOriginalConstructor()
             ->getMock();
 
diff --git a/tests/phpunit/CrossCheck/Comparer/DataValueComparerTestBase.php 
b/tests/phpunit/CrossCheck/Comparer/DataValueComparerTestBase.php
old mode 100644
new mode 100755
index a7380ae..4f11cff
--- a/tests/phpunit/CrossCheck/Comparer/DataValueComparerTestBase.php
+++ b/tests/phpunit/CrossCheck/Comparer/DataValueComparerTestBase.php
@@ -52,7 +52,7 @@
      * @return \PHPUnit_Framework_MockObject_MockObject
      */
     protected function getDumpMetaInformationMock( $language ) {
-        $mock = $this->getMockBuilder( 
'WikidataQuality\ExternalValidation\DumpMetaInformation' )
+        $mock = $this->getMockBuilder( 
'WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation' )
             ->setMethods( array( 'getLanguage' ) )
             ->disableOriginalConstructor()
             ->getMock();
diff --git a/tests/phpunit/CrossCheck/CrossCheckerTest.php 
b/tests/phpunit/CrossCheck/CrossCheckerTest.php
index ff44f81..905694b 100755
--- a/tests/phpunit/CrossCheck/CrossCheckerTest.php
+++ b/tests/phpunit/CrossCheck/CrossCheckerTest.php
@@ -2,7 +2,6 @@
 
 namespace WikidataQuality\ExternalValidation\Tests\CrossCheck;
 
-use DataValues\MonolingualTextValue;
 use DataValues\StringValue;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\ItemId;
@@ -26,7 +25,7 @@
  * @uses   WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult
  * @uses   
WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResult
  * @uses   WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult
- * @uses   WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses   
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
  * @uses   WikidataQuality\ExternalValidation\CrossCheck\ReferenceHandler
  *
  * @author BP2014N1
diff --git a/tests/phpunit/CrossCheck/ReferenceHandlerTest.php 
b/tests/phpunit/CrossCheck/ReferenceHandlerTest.php
old mode 100644
new mode 100755
index 6baa0c8..18de5b3
--- a/tests/phpunit/CrossCheck/ReferenceHandlerTest.php
+++ b/tests/phpunit/CrossCheck/ReferenceHandlerTest.php
@@ -120,7 +120,7 @@
     }
 
     private function getDumpMetaInformationMock( ItemId $sourceItemId ) {
-        $mock = $this->getMockBuilder( 
'WikidataQuality\ExternalValidation\DumpMetaInformation' )
+        $mock = $this->getMockBuilder( 
'WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation' )
             ->disableOriginalConstructor()
             ->getMock();
         $mock->expects( $this->any() )
diff --git a/tests/phpunit/CrossCheck/Result/CrossCheckResultTest.php 
b/tests/phpunit/CrossCheck/Result/CrossCheckResultTest.php
old mode 100644
new mode 100755
index a9699af..e4f2d5e
--- a/tests/phpunit/CrossCheck/Result/CrossCheckResultTest.php
+++ b/tests/phpunit/CrossCheck/Result/CrossCheckResultTest.php
@@ -134,7 +134,7 @@
 
     private function getDumpMetaInformationMock()
     {
-        $mock = $this->getMockBuilder( 
'WikidataQuality\ExternalValidation\DumpMetaInformation' )
+        $mock = $this->getMockBuilder( 
'WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation' )
             ->disableOriginalConstructor()
             ->getMock();
 
diff --git a/tests/phpunit/DumpMetaInformationTest.php 
b/tests/phpunit/DumpMetaInformationTest.php
old mode 100644
new mode 100755
index 45f9d1b..559c4c4
--- a/tests/phpunit/DumpMetaInformationTest.php
+++ b/tests/phpunit/DumpMetaInformationTest.php
@@ -5,10 +5,15 @@
 use DateTime;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\ItemId;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use 
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore;
+use 
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationLookup;
 
 /**
- * @covers WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @covers 
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
+ *
+ * @uses 
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore
+ * @uses 
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationLookup
  *
  * @group Database
  * @group medium
@@ -175,7 +180,10 @@
     public function testGetDumpMetaInformation( $dumpIds, 
$expectedDumpMetaInformation, $expectedException ) {
         $this->setExpectedException( $expectedException );
 
-        $this->assertEquals( $expectedDumpMetaInformation, 
DumpMetaInformation::get( $this->db, $dumpIds ) );
+        $dumpMetaInformationLookup = new DumpMetaInformationLookup( $dumpIds );
+        $dumpMetaInformation = 
$dumpMetaInformationLookup->findDumpMetaInformation();
+
+        $this->assertEquals( $expectedDumpMetaInformation, 
$dumpMetaInformation );
     }
 
     /**
@@ -237,9 +245,12 @@
     public function testSaveDumpMetaInformation( $dumpId, $sourceItemId, 
$importDate, $language, $sourceUrl, $size, $license ) {
 
         $dumpMetaInformation = new DumpMetaInformation( $dumpId, 
$sourceItemId, $importDate, $language, $sourceUrl, $size, $license );
-        $dumpMetaInformation->save( $this->db );
 
-        $metaInformationFromDatabase = DumpMetaInformation::get( $this->db, 
$dumpId );
+        $dumpMetaInformationStore = new DumpMetaInformationStore();
+        $dumpMetaInformationStore->save( $dumpMetaInformation );
+
+        $dumpMetaInformationLookup = new DumpMetaInformationLookup( $dumpId );
+        $metaInformationFromDatabase = 
$dumpMetaInformationLookup->findDumpMetaInformation();
 
         $this->assertEquals( $dumpMetaInformation, 
$metaInformationFromDatabase );
     }
diff --git a/tests/phpunit/Serializer/CrossCheckResultSerializerTest.php 
b/tests/phpunit/Serializer/CrossCheckResultSerializerTest.php
old mode 100644
new mode 100755
index 8b04eb7..692ff41
--- a/tests/phpunit/Serializer/CrossCheckResultSerializerTest.php
+++ b/tests/phpunit/Serializer/CrossCheckResultSerializerTest.php
@@ -32,7 +32,7 @@
                 new CrossCheckResult(
                     new PropertyId( 'P42' ),
                     'Q42$26ca5e18-90fb-4c5c-bb22-ed8a70f1948f',
-                    $this->getMockWithoutConstructor( 
'WikidataQuality\ExternalValidation\DumpMetaInformation' ),
+                    $this->getMockWithoutConstructor( 
'WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation' ),
                     $this->getMockWithoutConstructor( 
'WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult' ),
                     $this->getMockWithoutConstructor( 
'WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult' )
                 )
@@ -64,7 +64,7 @@
                 new CrossCheckResult(
                     new PropertyId( 'P42' ),
                     'Q42$26ca5e18-90fb-4c5c-bb22-ed8a70f1948f',
-                    $this->getMockWithoutConstructor( 
'WikidataQuality\ExternalValidation\DumpMetaInformation' ),
+                    $this->getMockWithoutConstructor( 
'WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation' ),
                     $this->getMockWithoutConstructor( 
'WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult' ),
                     $this->getMockWithoutConstructor( 
'WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult' )
                 )
diff --git a/tests/phpunit/Serializer/DumpMetaInformationSerializerTest.php 
b/tests/phpunit/Serializer/DumpMetaInformationSerializerTest.php
old mode 100644
new mode 100755
index 0486873..aa69170
--- a/tests/phpunit/Serializer/DumpMetaInformationSerializerTest.php
+++ b/tests/phpunit/Serializer/DumpMetaInformationSerializerTest.php
@@ -4,13 +4,13 @@
 
 
 use Wikibase\DataModel\Entity\ItemId;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
 use 
WikidataQuality\ExternalValidation\Serializer\DumpMetaInformationSerializer;
 
 /**
  * @covers 
WikidataQuality\ExternalValidation\Serializer\DumpMetaInformationSerializer
  *
- * @uses   WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses   
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
  *
  * @author BP2014N1
  * @license GNU GPL v2+
diff --git a/tests/phpunit/Serializer/SerializerFactoryTest.php 
b/tests/phpunit/Serializer/SerializerFactoryTest.php
old mode 100644
new mode 100755
index 370308f..194b184
--- a/tests/phpunit/Serializer/SerializerFactoryTest.php
+++ b/tests/phpunit/Serializer/SerializerFactoryTest.php
@@ -18,7 +18,7 @@
 use WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResult;
 use WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResultList;
 use WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
 use WikidataQuality\ExternalValidation\Serializer\SerializerFactory;
 
 /**
@@ -28,7 +28,7 @@
  * @uses WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult
  * @uses WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResult
  * @uses 
WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResultList
- * @uses WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses 
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
  * @uses WikidataQuality\ExternalValidation\Serializer\IndexedTagsSerializer
  * @uses WikidataQuality\ExternalValidation\Serializer\CompareResultSerializer
  * @uses 
WikidataQuality\ExternalValidation\Serializer\ReferenceResultSerializer
diff --git a/tests/phpunit/Specials/SpecialCrossCheckTest.php 
b/tests/phpunit/Specials/SpecialCrossCheckTest.php
index 330e09f..505ed49 100755
--- a/tests/phpunit/Specials/SpecialCrossCheckTest.php
+++ b/tests/phpunit/Specials/SpecialCrossCheckTest.php
@@ -14,7 +14,8 @@
 use Wikibase\DataModel\Statement\Statement;
 use Wikibase\Lib\ClaimGuidGenerator;
 use Wikibase\Repo\WikibaseRepo;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use 
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore;
 use Wikibase\DataModel\Entity\EntityId;
 
 /**
@@ -23,7 +24,8 @@
  * @group Database
  * @group medium
  *
- * @uses   WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses   
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
+ * @uses   
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore
  * @uses   WikidataQuality\ExternalValidation\CrossCheck\CrossChecker
  * @uses   WikidataQuality\ExternalValidation\CrossCheck\ReferenceHandler
  * @uses   
WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer
@@ -157,7 +159,8 @@
             42,
             new ItemId( 'Q6938433' )
         );
-        $dumpMetaInformation->save( $this->db );
+        $dumpMetaInformationStore = new DumpMetaInformationStore();
+        $dumpMetaInformationStore->save( $dumpMetaInformation );
 
         // Insert identifier property
         $this->db->insert(
diff --git a/tests/phpunit/Specials/SpecialExternalDbsTest.php 
b/tests/phpunit/Specials/SpecialExternalDbsTest.php
old mode 100644
new mode 100755
index cb36811..7d3d048
--- a/tests/phpunit/Specials/SpecialExternalDbsTest.php
+++ b/tests/phpunit/Specials/SpecialExternalDbsTest.php
@@ -4,7 +4,8 @@
 
 use Wikibase\Test\SpecialPageTestBase;
 use WikidataQuality\ExternalValidation\Specials\SpecialExternalDbs;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use 
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore;
 use Wikibase\DataModel\Entity\ItemId;
 
 /**
@@ -13,7 +14,8 @@
  * @group Database
  * @group medium
  *
- * @uses   WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses   
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
+ * @uses   
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore
  * @uses   WikidataQuality\Html\HtmlTable
  * @uses   WikidataQuality\Html\HtmlTableHeader
  * @uses   WikidataQuality\Html\HtmlTableCell
@@ -62,8 +64,8 @@
             42,
             new ItemId( 'Q6938433' )
         );
-
-        $dumpMetaInformation->save( $this->db );
+        $dumpMetaInformationStore = new DumpMetaInformationStore();
+        $dumpMetaInformationStore->save( $dumpMetaInformation );
     }
 
     /**
diff --git a/tests/phpunit/UpdateTable/UpdateTableTest.php 
b/tests/phpunit/UpdateTable/UpdateTableTest.php
old mode 100644
new mode 100755
index e06bf84..e6f3b98
--- a/tests/phpunit/UpdateTable/UpdateTableTest.php
+++ b/tests/phpunit/UpdateTable/UpdateTableTest.php
@@ -5,7 +5,8 @@
 
 use DateTime;
 use Wikibase\DataModel\Entity\ItemId;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use 
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore;
 use WikidataQuality\ExternalValidation\Maintenance\UpdateTable;
 
 
@@ -14,7 +15,8 @@
  * @covers WikidataQuality\ExternalValidation\UpdateTable\ImportContext
  * @covers WikidataQuality\ExternalValidation\Maintenance\UpdateTable
  *
- * @uses   WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses   
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
+ * @uses   
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore
  *
  * @group Database
  * @group medium
@@ -57,7 +59,8 @@
         );
 
         // Insert external test data
-        $dumpMetaInformation->save( $this->db );
+        $dumpMetaInformationStore = new DumpMetaInformationStore();
+        $dumpMetaInformationStore->save( $dumpMetaInformation );
 
         // Insert identifier properties
         $this->db->insert(

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8de0e2ed3a8460bccff374480caa3a5ae936594d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikidataQualityExternalValidation
Gerrit-Branch: v1
Gerrit-Owner: Dominic.sauer <[email protected]>

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

Reply via email to