Tpt has uploaded a new change for review.

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


Change subject: Makes Serializers more stand alone
......................................................................

Makes Serializers more stand alone

Change-Id: I017786d34ec6d1b0a1c276fcd3517c3c50b08686
---
M lib/includes/serializers/EntitySerializer.php
M lib/includes/serializers/SiteLinkSerializer.php
2 files changed, 21 insertions(+), 9 deletions(-)


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

diff --git a/lib/includes/serializers/EntitySerializer.php 
b/lib/includes/serializers/EntitySerializer.php
index 65b9d0a..f1fee81 100644
--- a/lib/includes/serializers/EntitySerializer.php
+++ b/lib/includes/serializers/EntitySerializer.php
@@ -2,7 +2,6 @@
 
 namespace Wikibase\Lib\Serializers;
 
-use ApiResult;
 use InvalidArgumentException;
 use Wikibase\DataModel\Entity\BasicEntityIdParser;
 use Wikibase\DataModel\Entity\EntityIdValue;
@@ -34,14 +33,28 @@
        protected $options;
 
        /**
+        * @since 0.4
+        *
+        * @var EntityFactory
+        */
+       protected $entityFactory;
+
+       /**
         * Constructor.
         *
         * @since 0.2
         *
         * @param EntitySerializationOptions $options
+        * @param EntityFactory $entityFactory
         */
-       public function __construct( EntitySerializationOptions $options ) {
+       public function __construct( EntitySerializationOptions $options, 
EntityFactory $entityFactory = null ) {
                parent::__construct( $options );
+
+               if ( $entityFactory === null ) {
+                       $this->entityFactory = new EntityFactory();
+               } else {
+                       $this->entityFactory = $entityFactory;
+               }
        }
 
        /**
@@ -126,16 +139,14 @@
         * @throws InvalidArgumentException
         */
        public function newFromSerialization( array $data ) {
-               // @todo inject EntityFactory
-               $entityFactory = new EntityFactory();
-               $validTypes = $entityFactory->getEntityTypes();
+               $validTypes = $this->entityFactory->getEntityTypes();
 
                if ( !array_key_exists( 'type', $data ) || !in_array( 
$data['type'], $validTypes ) ) {
                        throw new InvalidArgumentException( 'Invalid entity 
serialization' );
                }
 
                $entityType = $data['type'];
-               $entity = $entityFactory->newEmpty( $entityType );
+               $entity = $this->entityFactory->newEmpty( $entityType );
 
                if ( array_key_exists( 'id', $data ) ) {
                        $idParser = new BasicEntityIdParser();
diff --git a/lib/includes/serializers/SiteLinkSerializer.php 
b/lib/includes/serializers/SiteLinkSerializer.php
index 8dd7c11..d789dc2 100644
--- a/lib/includes/serializers/SiteLinkSerializer.php
+++ b/lib/includes/serializers/SiteLinkSerializer.php
@@ -3,6 +3,7 @@
 namespace Wikibase\Lib\Serializers;
 
 use InvalidArgumentException;
+use SiteStore;
 use Wikibase\SiteLink;
 use Wikibase\DataModel\Entity\BasicEntityIdParser;
 use Wikibase\DataModel\Entity\ItemId;
@@ -38,7 +39,7 @@
        /**
         * @since 0.4
         *
-        * @var SiteSQLStore $siteStore
+        * @var SiteStore $siteStore
         */
        protected $siteStore;
 
@@ -48,9 +49,9 @@
         * @since 0.4
         *
         * @param EntitySerializationOptions $options
-        * @param SiteSQLStore $siteStore
+        * @param SiteStore $siteStore
         */
-       public function __construct( EntitySerializationOptions $options, 
\SiteSQLStore $siteStore ) {
+       public function __construct( EntitySerializationOptions $options, 
SiteStore $siteStore ) {
                $this->options = new MultiLangSerializationOptions();
                $this->siteStore = $siteStore;
                parent::__construct( $options );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I017786d34ec6d1b0a1c276fcd3517c3c50b08686
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Tpt <[email protected]>

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

Reply via email to