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