Thiemo Mättig (WMDE) has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/336818 )
Change subject: Always use SerializerFactory from top level factory
......................................................................
Always use SerializerFactory from top level factory
This is a prerequisit for following patches where we want to add
support for more entity types.
Change-Id: I385e9d26b02a72b216a78043ba0908ab150e97da
---
M repo/includes/Api/ApiHelperFactory.php
M repo/includes/Specials/SpecialEntityData.php
M repo/includes/WikibaseRepo.php
3 files changed, 15 insertions(+), 21 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/18/336818/1
diff --git a/repo/includes/Api/ApiHelperFactory.php
b/repo/includes/Api/ApiHelperFactory.php
index 0982064..1711bdc 100644
--- a/repo/includes/Api/ApiHelperFactory.php
+++ b/repo/includes/Api/ApiHelperFactory.php
@@ -3,7 +3,6 @@
namespace Wikibase\Repo\Api;
use ApiBase;
-use DataValues\Serializers\DataValueSerializer;
use Serializers\Serializer;
use SiteLookup;
use Wikibase\DataModel\Entity\EntityIdParser;
@@ -65,6 +64,11 @@
private $siteLookup;
/**
+ * @var SerializerFactory
+ */
+ private $serializerFactory;
+
+ /**
* @var Serializer
*/
private $entitySerializer;
@@ -99,6 +103,7 @@
* @param SummaryFormatter $summaryFormatter
* @param EntityRevisionLookup $entityRevisionLookup
* @param EditEntityFactory $editEntityFactory
+ * @param SerializerFactory $serializerFactory
* @param Serializer $entitySerializer
* @param EntityIdParser $idParser
* @param SiteLinkLookup|null $siteLinkLookup
@@ -113,6 +118,7 @@
SummaryFormatter $summaryFormatter,
EntityRevisionLookup $entityRevisionLookup,
EditEntityFactory $editEntityFactory,
+ SerializerFactory $serializerFactory,
Serializer $entitySerializer,
EntityIdParser $idParser,
SiteLinkLookup $siteLinkLookup = null,
@@ -126,6 +132,7 @@
$this->summaryFormatter = $summaryFormatter;
$this->entityRevisionLookup = $entityRevisionLookup;
$this->editEntityFactory = $editEntityFactory;
+ $this->serializerFactory = $serializerFactory;
$this->entitySerializer = $entitySerializer;
$this->idParser = $idParser;
$this->siteLinkLookup = $siteLinkLookup;
@@ -144,7 +151,7 @@
return new ResultBuilder(
$api->getResult(),
$this->titleLookup,
- $this->newSerializerFactory(),
+ $this->serializerFactory,
$this->entitySerializer,
$this->siteLookup,
$this->dataTypeLookup,
@@ -164,19 +171,6 @@
$api,
$this->exceptionLocalizer,
$api->getLanguage()
- );
- }
-
- /**
- * Returns a serializer factory to be used when constructing API
results.
- *
- * @return SerializerFactory
- */
- public function newSerializerFactory() {
- return new SerializerFactory(
- new DataValueSerializer(),
-
SerializerFactory::OPTION_SERIALIZE_MAIN_SNAKS_WITHOUT_HASH +
-
SerializerFactory::OPTION_SERIALIZE_REFERENCE_SNAKS_WITHOUT_HASH
);
}
diff --git a/repo/includes/Specials/SpecialEntityData.php
b/repo/includes/Specials/SpecialEntityData.php
index dc666dc..f326c79 100644
--- a/repo/includes/Specials/SpecialEntityData.php
+++ b/repo/includes/Specials/SpecialEntityData.php
@@ -2,7 +2,6 @@
namespace Wikibase\Repo\Specials;
-use DataValues\Serializers\DataValueSerializer;
use HttpError;
use Wikibase\DataModel\SerializerFactory;
use Wikibase\Repo\LinkedData\EntityDataFormatProvider;
@@ -77,8 +76,7 @@
$entityIdParser = $wikibaseRepo->getEntityIdParser();
$entityDataFormatProvider = new EntityDataFormatProvider();
- $serializerFactory = new SerializerFactory(
- new DataValueSerializer(),
+ $serializerFactory = $wikibaseRepo->getSerializerFactory(
SerializerFactory::OPTION_SERIALIZE_MAIN_SNAKS_WITHOUT_HASH +
SerializerFactory::OPTION_SERIALIZE_REFERENCE_SNAKS_WITHOUT_HASH
);
diff --git a/repo/includes/WikibaseRepo.php b/repo/includes/WikibaseRepo.php
index 8234b1f..e70bcab 100644
--- a/repo/includes/WikibaseRepo.php
+++ b/repo/includes/WikibaseRepo.php
@@ -1309,10 +1309,12 @@
}
/**
+ * @param int $options bitwise combination of the
SerializerFactory::OPTION_ flags
+ *
* @return SerializerFactory
*/
- public function getSerializerFactory() {
- return new SerializerFactory( new DataValueSerializer() );
+ public function getSerializerFactory( $options = 0 ) {
+ return new SerializerFactory( new DataValueSerializer(),
$options );
}
/**
@@ -1353,7 +1355,7 @@
public function getEntitySerializer( $options = 0 ) {
if ( !isset( $this->entitySerializers[$options] ) ) {
$serializerFactoryCallbacks =
$this->entityTypeDefinitions->getSerializerFactoryCallbacks();
- $serializerFactory = new SerializerFactory( new
DataValueSerializer(), $options );
+ $serializerFactory = $this->getSerializerFactory(
$options );
$serializers = array();
foreach ( $serializerFactoryCallbacks as $callback ) {
--
To view, visit https://gerrit.wikimedia.org/r/336818
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I385e9d26b02a72b216a78043ba0908ab150e97da
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