jenkins-bot has submitted this change and it was merged.
Change subject: Create (de)serializers based on callbacks
......................................................................
Create (de)serializers based on callbacks
This patch also changes the names of quite some factory methods in
WikibaseRepo and WikibaseClient to make clear which deserializers can
handle which kind of serializations.
Bug: T126932
Change-Id: I7ebe6d9afee70d17b701f257f84d412bf64c9aad
---
M client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php
M client/includes/WikibaseClient.php
M
client/tests/phpunit/includes/DataAccess/Scribunto/SnakSerializationRendererTest.php
M client/tests/phpunit/includes/WikibaseClientTest.php
M composer.json
M lib/includes/changes/EntityChange.php
M repo/includes/Api/EditEntity.php
M repo/includes/Api/SetClaim.php
M repo/includes/Content/EntityContent.php
M repo/includes/WikibaseRepo.php
M repo/tests/phpunit/includes/Api/EditPageTest.php
M repo/tests/phpunit/includes/Api/SetClaimTest.php
M repo/tests/phpunit/includes/Content/DeferredDecodingEntityHolderTest.php
M repo/tests/phpunit/includes/Content/EntityHandlerTest.php
M repo/tests/phpunit/includes/EntityModificationTestHelper.php
M repo/tests/phpunit/includes/ParserOutput/ParserOutputJsConfigBuilderTest.php
M repo/tests/phpunit/includes/WikibaseRepoTest.php
17 files changed, 237 insertions(+), 142 deletions(-)
Approvals:
Daniel Kinzler: Looks good to me, approved
jenkins-bot: Verified
diff --git
a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php
b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php
index 76cfbe0..6cdd4bc 100644
--- a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php
+++ b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php
@@ -214,8 +214,8 @@
$this->getLanguageFallbackChain()->getFetchLanguageCodes()
);
- $snakDeserializer =
$wikibaseClient->getDeserializerFactory()->newSnakDeserializer();
- $snaksDeserializer =
$wikibaseClient->getDeserializerFactory()->newSnakListDeserializer();
+ $snakDeserializer =
$wikibaseClient->getExternalFormatDeserializerFactory()->newSnakDeserializer();
+ $snaksDeserializer =
$wikibaseClient->getExternalFormatDeserializerFactory()->newSnakListDeserializer();
return new SnakSerializationRenderer(
$snakFormatter,
diff --git a/client/includes/WikibaseClient.php
b/client/includes/WikibaseClient.php
index 9cf5b7e..fb5cc98 100644
--- a/client/includes/WikibaseClient.php
+++ b/client/includes/WikibaseClient.php
@@ -5,6 +5,8 @@
use DataTypes\DataTypeFactory;
use DataValues\Deserializers\DataValueDeserializer;
use Deserializers\Deserializer;
+use Deserializers\DispatchableDeserializer;
+use Deserializers\DispatchingDeserializer;
use Exception;
use Hooks;
use JobQueueGroup;
@@ -22,28 +24,28 @@
use Wikibase\Client\Changes\ChangeRunCoalescer;
use Wikibase\Client\Changes\WikiPageUpdater;
use Wikibase\Client\DataAccess\PropertyIdResolver;
-use Wikibase\Client\DataAccess\PropertyParserFunction\Runner;
use
Wikibase\Client\DataAccess\PropertyParserFunction\StatementGroupRendererFactory;
+use Wikibase\Client\DataAccess\PropertyParserFunction\Runner;
+use Wikibase\Client\ParserOutput\ClientParserOutputDataUpdater;
+use Wikibase\Client\RecentChanges\RecentChangeFactory;
+use Wikibase\DataModel\Services\Lookup\RestrictedEntityLookup;
use Wikibase\Client\DataAccess\SnaksFinder;
use Wikibase\Client\Hooks\LanguageLinkBadgeDisplay;
use Wikibase\Client\Hooks\OtherProjectsSidebarGeneratorFactory;
use Wikibase\Client\Hooks\ParserFunctionRegistrant;
-use Wikibase\Client\ParserOutput\ClientParserOutputDataUpdater;
-use Wikibase\Client\RecentChanges\RecentChangeFactory;
use Wikibase\Client\Store\TitleFactory;
use Wikibase\ClientStore;
use Wikibase\DataModel\DeserializerFactory;
-use Wikibase\DataModel\Entity\BasicEntityIdParser;
-use Wikibase\DataModel\Entity\DispatchingEntityIdParser;
-use Wikibase\DataModel\Entity\EntityIdParser;
use Wikibase\DataModel\Entity\Item;
use Wikibase\DataModel\Entity\Property;
use Wikibase\DataModel\Services\Diff\EntityDiffer;
+use Wikibase\DataModel\Entity\BasicEntityIdParser;
+use Wikibase\DataModel\Entity\DispatchingEntityIdParser;
+use Wikibase\DataModel\Entity\EntityIdParser;
use Wikibase\DataModel\Services\EntityId\SuffixEntityIdParser;
use Wikibase\DataModel\Services\Lookup\EntityLookup;
use Wikibase\DataModel\Services\Lookup\EntityRetrievingDataTypeLookup;
use Wikibase\DataModel\Services\Lookup\PropertyDataTypeLookup;
-use Wikibase\DataModel\Services\Lookup\RestrictedEntityLookup;
use Wikibase\DataModel\Services\Lookup\TermLookup;
use Wikibase\DataModel\Services\Term\TermBuffer;
use Wikibase\DirectSqlStore;
@@ -55,16 +57,16 @@
use Wikibase\Lib\DataTypeDefinitions;
use Wikibase\Lib\EntityTypeDefinitions;
use Wikibase\Lib\FormatterLabelDescriptionLookupFactory;
-use Wikibase\Lib\Interactors\TermIndexSearchInteractor;
+use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory;
use Wikibase\Lib\LanguageNameLookup;
-use Wikibase\Lib\MediaWikiContentLanguages;
use Wikibase\Lib\OutputFormatSnakFormatterFactory;
use Wikibase\Lib\OutputFormatValueFormatterFactory;
use Wikibase\Lib\PropertyInfoDataTypeLookup;
use Wikibase\Lib\Store\EntityContentDataCodec;
-use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory;
+use Wikibase\Lib\MediaWikiContentLanguages;
use Wikibase\Lib\WikibaseSnakFormatterBuilders;
use Wikibase\Lib\WikibaseValueFormatterBuilders;
+use Wikibase\Lib\Interactors\TermIndexSearchInteractor;
use Wikibase\NamespaceChecker;
use Wikibase\SettingsArray;
use Wikibase\SiteLinkCommentCreator;
@@ -106,6 +108,11 @@
* @var DataTypeFactory|null
*/
private $dataTypeFactory = null;
+
+ /**
+ * @var Deserializer|null
+ */
+ private $entityDeserializer = null;
/**
* @var EntityIdParser|null
@@ -798,33 +805,67 @@
return new EntityContentDataCodec(
$this->getEntityIdParser(),
$forbiddenSerializer,
- $this->getInternalEntityDeserializer(),
+ $this->getInternalFormatEntityDeserializer(),
$this->getSettings()->getSetting(
'maxSerializedEntitySize' ) * 1024
);
}
/**
- * @return Deserializer
+ * @return DeserializerFactory
*/
- public function getInternalEntityDeserializer() {
- return
$this->getInternalDeserializerFactory()->newEntityDeserializer();
- }
-
- /**
- * @return Deserializer
- */
- public function getInternalStatementDeserializer() {
- return
$this->getInternalDeserializerFactory()->newStatementDeserializer();
+ public function getExternalFormatDeserializerFactory() {
+ return new DeserializerFactory(
+ $this->getDataValueDeserializer(),
+ $this->getEntityIdParser()
+ );
}
/**
* @return InternalDeserializerFactory
*/
- private function getInternalDeserializerFactory() {
+ public function getInternalFormatDeserializerFactory() {
return new InternalDeserializerFactory(
$this->getDataValueDeserializer(),
- $this->getEntityIdParser()
+ $this->getEntityIdParser(),
+ $this->getExternalFormatEntityDeserializer()
);
+ }
+
+ /**
+ * @return DispatchingDeserializer
+ */
+ private function getExternalFormatEntityDeserializer() {
+ if ( $this->entityDeserializer === null ) {
+ $deserializerFactoryCallbacks =
$this->entityTypeDefinitions->getDeserializerFactoryCallbacks();
+ $deserializerFactory =
$this->getExternalFormatDeserializerFactory();
+ $deserializers = array();
+
+ foreach ( $deserializerFactoryCallbacks as $callback ) {
+ $deserializers[] = call_user_func( $callback,
$deserializerFactory );
+ }
+
+ $this->entityDeserializer = new
DispatchingDeserializer( $deserializers );
+ }
+
+ return $this->entityDeserializer;
+ }
+
+ /**
+ * Returns a deserializer to deserialize entities in both current and
legacy serialization.
+ *
+ * @return Deserializer
+ */
+ public function getInternalFormatEntityDeserializer() {
+ return
$this->getInternalFormatDeserializerFactory()->newEntityDeserializer();
+ }
+
+ /**
+ * Returns a deserializer to deserialize statements in both current and
legacy serialization.
+ *
+ * @return Deserializer
+ */
+ public function getInternalFormatStatementDeserializer() {
+ return
$this->getInternalFormatDeserializerFactory()->newStatementDeserializer();
}
/**
@@ -1015,16 +1056,6 @@
*/
public function getTermsLanguages() {
return new MediaWikiContentLanguages();
- }
-
- /**
- * @return DeserializerFactory
- */
- public function getDeserializerFactory() {
- return new DeserializerFactory(
- $this->getDataValueDeserializer(),
- $this->getEntityIdParser()
- );
}
/**
diff --git
a/client/tests/phpunit/includes/DataAccess/Scribunto/SnakSerializationRendererTest.php
b/client/tests/phpunit/includes/DataAccess/Scribunto/SnakSerializationRendererTest.php
index e89a644..8647de3 100644
---
a/client/tests/phpunit/includes/DataAccess/Scribunto/SnakSerializationRendererTest.php
+++
b/client/tests/phpunit/includes/DataAccess/Scribunto/SnakSerializationRendererTest.php
@@ -61,8 +61,8 @@
}
} ) );
- $snakDeserializer =
$wikibaseClient->getDeserializerFactory()->newSnakDeserializer();
- $snaksDeserializer =
$wikibaseClient->getDeserializerFactory()->newSnakListDeserializer();
+ $snakDeserializer =
$wikibaseClient->getExternalFormatDeserializerFactory()->newSnakDeserializer();
+ $snaksDeserializer =
$wikibaseClient->getExternalFormatDeserializerFactory()->newSnakListDeserializer();
return new SnakSerializationRenderer(
$snakFormatter,
diff --git a/client/tests/phpunit/includes/WikibaseClientTest.php
b/client/tests/phpunit/includes/WikibaseClientTest.php
index 382c832..c1dbff9 100644
--- a/client/tests/phpunit/includes/WikibaseClientTest.php
+++ b/client/tests/phpunit/includes/WikibaseClientTest.php
@@ -220,11 +220,6 @@
$this->assertInstanceOf(
'Wikibase\Lib\OutputFormatValueFormatterFactory', $returnValue );
}
- public function testGetDeserializerFactoryReturnType() {
- $returnValue =
$this->getWikibaseClient()->getDeserializerFactory();
- $this->assertInstanceOf(
'Wikibase\DataModel\DeserializerFactory', $returnValue );
- }
-
public function testGetLanguageLinkBadgeDisplay() {
$returnValue =
$this->getWikibaseClient()->getLanguageLinkBadgeDisplay();
$this->assertInstanceOf(
'Wikibase\Client\Hooks\LanguageLinkBadgeDisplay', $returnValue );
@@ -270,13 +265,23 @@
$codec->encodeEntity( new Item(), CONTENT_FORMAT_JSON );
}
- public function testGetInternalEntityDeserializer() {
- $deserializer =
$this->getWikibaseClient()->getInternalEntityDeserializer();
+ public function testGetInternalFormatDeserializerFactory() {
+ $deserializerFactory =
$this->getWikibaseClient()->getInternalFormatDeserializerFactory();
+ $this->assertInstanceOf(
'Wikibase\InternalSerialization\DeserializerFactory', $deserializerFactory );
+ }
+
+ public function testGetExternalFormatDeserializerFactory() {
+ $deserializerFactory =
$this->getWikibaseClient()->getExternalFormatDeserializerFactory();
+ $this->assertInstanceOf(
'Wikibase\DataModel\DeserializerFactory', $deserializerFactory );
+ }
+
+ public function testGetInternalFormatEntityDeserializer() {
+ $deserializer =
$this->getWikibaseClient()->getInternalFormatEntityDeserializer();
$this->assertInstanceOf( 'Deserializers\Deserializer',
$deserializer );
}
- public function testGetInternalStatementDeserializer() {
- $deserializer =
$this->getWikibaseClient()->getInternalStatementDeserializer();
+ public function testGetInternalFormatStatementDeserializer() {
+ $deserializer =
$this->getWikibaseClient()->getInternalFormatStatementDeserializer();
$this->assertInstanceOf( 'Deserializers\Deserializer',
$deserializer );
}
diff --git a/composer.json b/composer.json
index 629e506..b1bfbbd 100644
--- a/composer.json
+++ b/composer.json
@@ -35,7 +35,7 @@
"data-values/value-view": "~0.16.1",
"wikibase/data-model": "~5.0.2",
"wikibase/data-model-serialization": "~2.0",
- "wikibase/internal-serialization": "~2.0",
+ "wikibase/internal-serialization": "~2.2",
"wikibase/data-model-services": "~3.4",
"wikibase/data-model-javascript": "~2.0.0",
"wikibase/javascript-api": "~1.1",
diff --git a/lib/includes/changes/EntityChange.php
b/lib/includes/changes/EntityChange.php
index abfc140..2b445f5 100644
--- a/lib/includes/changes/EntityChange.php
+++ b/lib/includes/changes/EntityChange.php
@@ -291,7 +291,7 @@
// FIXME: the change row system needs to be reworked to either
allow for sane injection
// or to avoid this kind of configuration dependent tasks.
if ( defined( 'WB_VERSION' ) ) {
- return
WikibaseRepo::getDefaultInstance()->getInternalStatementSerializer();
+ return
WikibaseRepo::getDefaultInstance()->getStatementSerializer();
} elseif ( defined( 'WBC_VERSION' ) ) {
throw new RuntimeException( 'Cannot serialize
statements on the client' );
} else {
@@ -303,9 +303,9 @@
// FIXME: the change row system needs to be reworked to either
allow for sane injection
// or to avoid this kind of configuration dependent tasks.
if ( defined( 'WB_VERSION' ) ) {
- return
WikibaseRepo::getDefaultInstance()->getInternalStatementDeserializer();
+ return
WikibaseRepo::getDefaultInstance()->getInternalFormatStatementDeserializer();
} elseif ( defined( 'WBC_VERSION' ) ) {
- return
WikibaseClient::getDefaultInstance()->getInternalStatementDeserializer();
+ return
WikibaseClient::getDefaultInstance()->getInternalFormatStatementDeserializer();
} else {
throw new RuntimeException( 'Need either client or repo
loaded' );
}
diff --git a/repo/includes/Api/EditEntity.php b/repo/includes/Api/EditEntity.php
index d76bf6a..4b58fa5 100644
--- a/repo/includes/Api/EditEntity.php
+++ b/repo/includes/Api/EditEntity.php
@@ -108,7 +108,7 @@
$this->errorReporter = $apiHelperFactory->getErrorReporter(
$this );
$this->revisionLookup = $wikibaseRepo->getEntityRevisionLookup(
'uncached' );
$this->idParser = $wikibaseRepo->getEntityIdParser();
- $this->statementDeserializer =
$wikibaseRepo->getStatementDeserializer();
+ $this->statementDeserializer =
$wikibaseRepo->getExternalFormatStatementDeserializer();
$this->entityFactory = $wikibaseRepo->getEntityFactory();
$changeOpFactoryProvider =
$wikibaseRepo->getChangeOpFactoryProvider();
diff --git a/repo/includes/Api/SetClaim.php b/repo/includes/Api/SetClaim.php
index ca0359d..00494b7 100644
--- a/repo/includes/Api/SetClaim.php
+++ b/repo/includes/Api/SetClaim.php
@@ -86,7 +86,7 @@
$apiHelperFactory = $wikibaseRepo->getApiHelperFactory(
$this->getContext() );
$changeOpFactoryProvider =
$wikibaseRepo->getChangeOpFactoryProvider();
- $this->statementDeserializer =
$wikibaseRepo->getStatementDeserializer();
+ $this->statementDeserializer =
$wikibaseRepo->getExternalFormatStatementDeserializer();
$this->errorReporter = $apiHelperFactory->getErrorReporter(
$this );
$this->statementChangeOpFactory =
$changeOpFactoryProvider->getStatementChangeOpFactory();
diff --git a/repo/includes/Content/EntityContent.php
b/repo/includes/Content/EntityContent.php
index 93f76f58..8c053f3 100644
--- a/repo/includes/Content/EntityContent.php
+++ b/repo/includes/Content/EntityContent.php
@@ -480,7 +480,7 @@
}
// NOTE: this may or may not be consistent with what
EntityContentCodec does!
- $serializer =
WikibaseRepo::getDefaultInstance()->getInternalEntitySerializer();
+ $serializer =
WikibaseRepo::getDefaultInstance()->getEntitySerializer();
return $serializer->serialize( $this->getEntity() );
}
diff --git a/repo/includes/WikibaseRepo.php b/repo/includes/WikibaseRepo.php
index 216f7d1..d6f7bff 100644
--- a/repo/includes/WikibaseRepo.php
+++ b/repo/includes/WikibaseRepo.php
@@ -7,6 +7,7 @@
use DataValues\Deserializers\DataValueDeserializer;
use DataValues\Serializers\DataValueSerializer;
use Deserializers\Deserializer;
+use Deserializers\DispatchingDeserializer;
use HashBagOStuff;
use Hooks;
use IContextSource;
@@ -14,6 +15,7 @@
use MediaWiki\Site\MediaWikiPageNameNormalizer;
use MWException;
use RequestContext;
+use Serializers\DispatchingSerializer;
use Serializers\Serializer;
use SiteSQLStore;
use SiteStore;
@@ -159,6 +161,16 @@
* @var StatementGuidValidator|null
*/
private $statementGuidValidator = null;
+
+ /**
+ * @var Deserializer|null
+ */
+ private $entityDeserializer = null;
+
+ /**
+ * @var Serializer|null
+ */
+ private $entitySerializer = null;
/**
* @var EntityIdParser|null
@@ -1174,55 +1186,16 @@
public function getEntityContentDataCodec() {
return new EntityContentDataCodec(
$this->getEntityIdParser(),
- $this->getInternalEntitySerializer(),
- $this->getInternalEntityDeserializer(),
+ $this->getEntitySerializer(),
+ $this->getInternalFormatEntityDeserializer(),
$this->getSettings()->getSetting(
'maxSerializedEntitySize' ) * 1024
- );
- }
-
- /**
- * @return Deserializer
- */
- public function getInternalEntityDeserializer() {
- return
$this->getInternalDeserializerFactory()->newEntityDeserializer();
- }
-
- /**
- * @return Serializer
- */
- public function getInternalEntitySerializer() {
- return
$this->getInternalSerializerFactory()->newEntitySerializer();
- }
-
- /**
- * @return Serializer
- */
- public function getInternalStatementSerializer() {
- return
$this->getInternalSerializerFactory()->newStatementSerializer();
- }
-
- /**
- * @return Deserializer
- */
- public function getInternalStatementDeserializer() {
- return
$this->getInternalDeserializerFactory()->newStatementDeserializer();
- }
-
- /**
- * @return InternalDeserializerFactory
- */
- private function getInternalDeserializerFactory() {
- return new InternalDeserializerFactory(
- $this->getDataValueDeserializer(),
- $this->getEntityIdParser(),
- $this->getEntityDeserializer()
);
}
/**
* @return DeserializerFactory
*/
- protected function getDeserializerFactory() {
+ public function getExternalFormatDeserializerFactory() {
return new DeserializerFactory(
$this->getDataValueDeserializer(),
$this->getEntityIdParser()
@@ -1230,17 +1203,95 @@
}
/**
- * @return Deserializer
+ * @return InternalDeserializerFactory
*/
- public function getEntityDeserializer() {
- return $this->getDeserializerFactory()->newEntityDeserializer();
+ public function getInternalFormatDeserializerFactory() {
+ return new InternalDeserializerFactory(
+ $this->getDataValueDeserializer(),
+ $this->getEntityIdParser(),
+ $this->getExternalFormatEntityDeserializer()
+ );
}
/**
+ * @return InternalSerializerFactory
+ */
+ public function getSerializerFactory() {
+ return new InternalSerializerFactory( new DataValueSerializer()
);
+ }
+
+ /**
+ * Returns a deserializer to deserialize entities in current
serialization only.
+ *
* @return Deserializer
*/
- public function getStatementDeserializer() {
- return
$this->getDeserializerFactory()->newStatementDeserializer();
+ public function getExternalFormatEntityDeserializer() {
+ if ( $this->entityDeserializer === null ) {
+ $deserializerFactoryCallbacks =
$this->entityTypeDefinitions->getDeserializerFactoryCallbacks();
+ $deserializerFactory =
$this->getExternalFormatDeserializerFactory();
+ $deserializers = array();
+
+ foreach ( $deserializerFactoryCallbacks as $callback ) {
+ $deserializers[] = call_user_func( $callback,
$deserializerFactory );
+ }
+
+ $this->entityDeserializer = new
DispatchingDeserializer( $deserializers );
+ }
+
+ return $this->entityDeserializer;
+ }
+
+ /**
+ * Returns a deserializer to deserialize entities in both current and
legacy serialization.
+ *
+ * @return Deserializer
+ */
+ public function getInternalFormatEntityDeserializer() {
+ return
$this->getInternalFormatDeserializerFactory()->newEntityDeserializer();
+ }
+
+ /**
+ * @return Serializer
+ */
+ public function getEntitySerializer() {
+ if ( $this->entitySerializer === null ) {
+ $serializerFactoryCallbacks =
$this->entityTypeDefinitions->getSerializerFactoryCallbacks();
+ $serializerFactory = $this->getSerializerFactory();
+ $serializers = array();
+
+ foreach ( $serializerFactoryCallbacks as $callback ) {
+ $serializers[] = call_user_func( $callback,
$serializerFactory );
+ }
+
+ $this->entitySerializer = new DispatchingSerializer(
$serializers );
+ }
+
+ return $this->entitySerializer;
+ }
+
+ /**
+ * Returns a deserializer to deserialize statements in both current and
legacy serialization.
+ *
+ * @return Deserializer
+ */
+ public function getInternalFormatStatementDeserializer() {
+ return
$this->getInternalFormatDeserializerFactory()->newStatementDeserializer();
+ }
+
+ /**
+ * Returns a deserializer to deserialize statements in current
serialization only.
+ *
+ * @return Deserializer
+ */
+ public function getExternalFormatStatementDeserializer() {
+ return
$this->getExternalFormatDeserializerFactory()->newStatementDeserializer();
+ }
+
+ /**
+ * @return Serializer
+ */
+ public function getStatementSerializer() {
+ return $this->getSerializerFactory()->newStatementSerializer();
}
/**
@@ -1259,13 +1310,6 @@
'time' => 'DataValues\TimeValue',
'wikibase-entityid' =>
'Wikibase\DataModel\Entity\EntityIdValue',
) );
- }
-
- /**
- * @return InternalSerializerFactory
- */
- public function getInternalSerializerFactory() {
- return new InternalSerializerFactory( new DataValueSerializer()
);
}
/**
diff --git a/repo/tests/phpunit/includes/Api/EditPageTest.php
b/repo/tests/phpunit/includes/Api/EditPageTest.php
index d8366b7..83c6bf6 100644
--- a/repo/tests/phpunit/includes/Api/EditPageTest.php
+++ b/repo/tests/phpunit/includes/Api/EditPageTest.php
@@ -39,7 +39,7 @@
$item->setLabel( "de", "EditPageTest" );
- $data =
$wikibaseRepo->getInternalEntitySerializer()->serialize( $item );
+ $data = $wikibaseRepo->getEntitySerializer()->serialize( $item
);
$text = json_encode( $data );
$title = $wikibaseRepo->getEntityTitleLookup()->getTitleForId(
$item->getId() );
diff --git a/repo/tests/phpunit/includes/Api/SetClaimTest.php
b/repo/tests/phpunit/includes/Api/SetClaimTest.php
index b9561e0..f73c0ff 100644
--- a/repo/tests/phpunit/includes/Api/SetClaimTest.php
+++ b/repo/tests/phpunit/includes/Api/SetClaimTest.php
@@ -296,7 +296,7 @@
) {
$serializerFactory = new SerializerFactory( new
DataValueSerializer() );
$statementSerializer =
$serializerFactory->newStatementSerializer();
- $statementDeserializer =
WikibaseRepo::getDefaultInstance()->getStatementDeserializer();
+ $statementDeserializer =
WikibaseRepo::getDefaultInstance()->getExternalFormatStatementDeserializer();
if ( $statement instanceof Statement ) {
$serialized = $statementSerializer->serialize(
$statement );
diff --git
a/repo/tests/phpunit/includes/Content/DeferredDecodingEntityHolderTest.php
b/repo/tests/phpunit/includes/Content/DeferredDecodingEntityHolderTest.php
index 3456058..60ed38f 100644
--- a/repo/tests/phpunit/includes/Content/DeferredDecodingEntityHolderTest.php
+++ b/repo/tests/phpunit/includes/Content/DeferredDecodingEntityHolderTest.php
@@ -46,8 +46,8 @@
$wikibaseRepo = WikibaseRepo::getDefaultInstance();
$codec = new EntityContentDataCodec(
new BasicEntityIdParser(),
- $wikibaseRepo->getInternalEntitySerializer(),
- $wikibaseRepo->getInternalEntityDeserializer()
+ $wikibaseRepo->getEntitySerializer(),
+ $wikibaseRepo->getInternalFormatEntityDeserializer()
);
$blob = $codec->encodeEntity( $entity, CONTENT_FORMAT_JSON );
diff --git a/repo/tests/phpunit/includes/Content/EntityHandlerTest.php
b/repo/tests/phpunit/includes/Content/EntityHandlerTest.php
index 859fe5b..25e9ed8 100644
--- a/repo/tests/phpunit/includes/Content/EntityHandlerTest.php
+++ b/repo/tests/phpunit/includes/Content/EntityHandlerTest.php
@@ -64,7 +64,7 @@
return new WikibaseRepo(
new SettingsArray( $repoSettings ),
new DataTypeDefinitions( array() ),
- new EntityTypeDefinitions( array() ),
+ new EntityTypeDefinitions( require __DIR__ .
'/../../../../../lib/WikibaseLib.entitytypes.php' ),
Language::factory( 'qqq' )
);
}
@@ -375,7 +375,7 @@
public function exportTransformProvider() {
$entity = $this->newEntity();
- $internalSerializer =
WikibaseRepo::getDefaultInstance()->getInternalEntitySerializer();
+ $internalSerializer =
WikibaseRepo::getDefaultInstance()->getEntitySerializer();
$oldBlob = json_encode( $internalSerializer->serialize( $entity
) );
// fake several old formats
@@ -430,8 +430,8 @@
$settings->setSetting( 'transformLegacyFormatOnExport', true );
$entity = $this->newEntity();
- $currentSerializer = $this->getWikibaseRepo( $settings
)->getInternalEntitySerializer();
- $expected = json_encode( $currentSerializer->serialize( $entity
) );
+ $entitySerializer = $this->getWikibaseRepo( $settings
)->getEntitySerializer();
+ $expected = json_encode( $entitySerializer->serialize( $entity
) );
$handler = $this->getHandler( $settings );
$actual = $handler->exportTransform( $expected );
diff --git a/repo/tests/phpunit/includes/EntityModificationTestHelper.php
b/repo/tests/phpunit/includes/EntityModificationTestHelper.php
index b689605..6f65c4d 100644
--- a/repo/tests/phpunit/includes/EntityModificationTestHelper.php
+++ b/repo/tests/phpunit/includes/EntityModificationTestHelper.php
@@ -49,8 +49,8 @@
public function __construct() {
$wikibaseRepo = WikibaseRepo::getDefaultInstance();
$this->idParser = $wikibaseRepo->getEntityIdParser();
- $this->serializer =
$wikibaseRepo->getInternalEntitySerializer();
- $this->deserializer =
$wikibaseRepo->getInternalEntityDeserializer();
+ $this->serializer = $wikibaseRepo->getEntitySerializer();
+ $this->deserializer =
$wikibaseRepo->getInternalFormatEntityDeserializer();
$this->mockRepository = new MockRepository();
$this->redirectResolvingEntityLookup = new
RedirectResolvingEntityLookup( $this->mockRepository );
}
diff --git
a/repo/tests/phpunit/includes/ParserOutput/ParserOutputJsConfigBuilderTest.php
b/repo/tests/phpunit/includes/ParserOutput/ParserOutputJsConfigBuilderTest.php
index fecb93c..c1c3a47 100644
---
a/repo/tests/phpunit/includes/ParserOutput/ParserOutputJsConfigBuilderTest.php
+++
b/repo/tests/phpunit/includes/ParserOutput/ParserOutputJsConfigBuilderTest.php
@@ -88,7 +88,7 @@
}
public function assertSerializationEqualsEntity( EntityDocument
$entity, $serialization ) {
- $deserializer =
WikibaseRepo::getDefaultInstance()->getEntityDeserializer();
+ $deserializer =
WikibaseRepo::getDefaultInstance()->getExternalFormatEntityDeserializer();
$unserializedEntity = $deserializer->deserialize(
$serialization );
$this->assertTrue(
diff --git a/repo/tests/phpunit/includes/WikibaseRepoTest.php
b/repo/tests/phpunit/includes/WikibaseRepoTest.php
index d70e5c7..6bf7bbc 100644
--- a/repo/tests/phpunit/includes/WikibaseRepoTest.php
+++ b/repo/tests/phpunit/includes/WikibaseRepoTest.php
@@ -205,34 +205,54 @@
$this->assertInstanceOf(
'Wikibase\Lib\Store\EntityContentDataCodec', $codec );
}
- public function testGetInternalEntitySerializer() {
- $serializer =
$this->getWikibaseRepo()->getInternalEntitySerializer();
+ public function testGetInternalFormatDeserializerFactory() {
+ $deserializerFactory =
$this->getWikibaseRepo()->getInternalFormatDeserializerFactory();
+ $this->assertInstanceOf(
'Wikibase\InternalSerialization\DeserializerFactory', $deserializerFactory );
+ }
+
+ public function testGetExternalFormatDeserializerFactory() {
+ $deserializerFactory =
$this->getWikibaseRepo()->getExternalFormatDeserializerFactory();
+ $this->assertInstanceOf(
'Wikibase\DataModel\DeserializerFactory', $deserializerFactory );
+ }
+
+ public function testGetSerializerFactory() {
+ $serializerFactory =
$this->getWikibaseRepo()->getSerializerFactory();
+ $this->assertInstanceOf(
'Wikibase\DataModel\SerializerFactory', $serializerFactory );
+ }
+
+ public function testGetExternalFormatEntityDeserializer() {
+ $deserializer =
$this->getWikibaseRepo()->getExternalFormatEntityDeserializer();
+ $this->assertInstanceOf( 'Deserializers\Deserializer',
$deserializer );
+ }
+
+ public function testGetInternalFormatEntityDeserializer() {
+ $deserializer =
$this->getWikibaseRepo()->getInternalFormatEntityDeserializer();
+ $this->assertInstanceOf( 'Deserializers\Deserializer',
$deserializer );
+ }
+
+ public function testGetEntitySerializer() {
+ $serializer = $this->getWikibaseRepo()->getEntitySerializer();
$this->assertInstanceOf( 'Serializers\Serializer', $serializer
);
}
- public function testGetInternalEntityDeserializer() {
- $deserializer =
$this->getWikibaseRepo()->getInternalEntityDeserializer();
+ public function testGetExternalFormatStatementDeserializer() {
+ $deserializer =
$this->getWikibaseRepo()->getExternalFormatStatementDeserializer();
$this->assertInstanceOf( 'Deserializers\Deserializer',
$deserializer );
}
- public function testGetInternalStatementSerializer() {
- $serializer =
$this->getWikibaseRepo()->getInternalStatementSerializer();
+ public function testGetInternalFormatStatementDeserializer() {
+ $deserializer =
$this->getWikibaseRepo()->getInternalFormatStatementDeserializer();
+ $this->assertInstanceOf( 'Deserializers\Deserializer',
$deserializer );
+ }
+
+ public function testGetStatementSerializer() {
+ $serializer =
$this->getWikibaseRepo()->getStatementSerializer();
$this->assertInstanceOf( 'Serializers\Serializer', $serializer
);
}
- public function testGetEntityDeserializer() {
- $deserializer =
$this->getWikibaseRepo()->getEntityDeserializer();
- $this->assertInstanceOf( 'Deserializers\Deserializer',
$deserializer );
- }
-
- public function testGetStatementDeserializer() {
- $deserializer =
$this->getWikibaseRepo()->getStatementDeserializer();
- $this->assertInstanceOf( 'Deserializers\Deserializer',
$deserializer );
- }
-
- public function testGetInternalStatementDeserializer() {
- $deserializer =
$this->getWikibaseRepo()->getInternalStatementDeserializer();
- $this->assertInstanceOf( 'Deserializers\Deserializer',
$deserializer );
+ public function testGetDataValueDeserializer() {
+ $service = $this->getWikibaseRepo()->getDataValueDeserializer();
+ $this->assertInstanceOf( 'Deserializers\Deserializer', $service
);
}
public function testGetEntityChangeFactory() {
@@ -336,11 +356,6 @@
public function testGetTermsLanguages() {
$service = $this->getWikibaseRepo()->getTermsLanguages();
$this->assertInstanceOf( 'Wikibase\Lib\ContentLanguages',
$service );
- }
-
- public function testGetDataValueDeserializer() {
- $service = $this->getWikibaseRepo()->getDataValueDeserializer();
- $this->assertInstanceOf( 'Deserializers\Deserializer', $service
);
}
public function testNewPropertyInfoBuilder() {
--
To view, visit https://gerrit.wikimedia.org/r/274462
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I7ebe6d9afee70d17b701f257f84d412bf64c9aad
Gerrit-PatchSet: 9
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Bene <[email protected]>
Gerrit-Reviewer: Bene <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: Jonas Kress (WMDE) <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits