Addshore has uploaded a new change for review.
https://gerrit.wikimedia.org/r/230751
Change subject: Use SuffixEntityIdParser from DataModelServices
......................................................................
Use SuffixEntityIdParser from DataModelServices
Change-Id: I80f5ab9c3f6ae8bdb1252a96f2ae66af3897ae85
---
M client/includes/WikibaseClient.php
D lib/includes/parsers/SuffixEntityIdParser.php
M lib/tests/phpunit/ReferencedEntitiesFinderTest.php
D lib/tests/phpunit/parsers/SuffixEntityIdParserTest.php
M repo/includes/WikibaseRepo.php
5 files changed, 3 insertions(+), 124 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/51/230751/1
diff --git a/client/includes/WikibaseClient.php
b/client/includes/WikibaseClient.php
index 590445d..1642c0e 100644
--- a/client/includes/WikibaseClient.php
+++ b/client/includes/WikibaseClient.php
@@ -35,6 +35,7 @@
use Wikibase\DataModel\Services\EntityId\BasicEntityIdParser;
use Wikibase\DataModel\Services\EntityId\DispatchingEntityIdParser;
use Wikibase\DataModel\Services\EntityId\EntityIdParser;
+use Wikibase\DataModel\Services\EntityId\SuffixEntityIdParser;
use Wikibase\DataModel\Services\Lookup\PropertyDataTypeLookup;
use Wikibase\DirectSqlStore;
use Wikibase\EntityFactory;
@@ -47,7 +48,6 @@
use Wikibase\Lib\LanguageNameLookup;
use Wikibase\Lib\OutputFormatSnakFormatterFactory;
use Wikibase\Lib\OutputFormatValueFormatterFactory;
-use Wikibase\Lib\Parsers\SuffixEntityIdParser;
use Wikibase\Lib\PropertyInfoDataTypeLookup;
use Wikibase\Lib\Store\EntityContentDataCodec;
use Wikibase\Lib\Store\EntityLookup;
diff --git a/lib/includes/parsers/SuffixEntityIdParser.php
b/lib/includes/parsers/SuffixEntityIdParser.php
deleted file mode 100644
index c37137b..0000000
--- a/lib/includes/parsers/SuffixEntityIdParser.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
-namespace Wikibase\Lib\Parsers;
-
-use Wikibase\DataModel\Entity\EntityId;
-use Wikibase\DataModel\Services\EntityId\EntityIdParser;
-use Wikibase\DataModel\Services\EntityId\EntityIdParsingException;
-
-/**
- * EntityIdParser that strips a fixed prefix and parses the remaining suffix
as an EntityId.
- * This can be used to parse entity URIs into EntityId objects.
- *
- * @since 0.5
- *
- * @license GPL 2+
- * @author Daniel Kinzler
- */
-class SuffixEntityIdParser implements EntityIdParser {
-
- /**
- * @var string
- */
- private $prefix;
-
- /**
- * @var EntityIdParser
- */
- private $idParser;
-
- /**
- * @param string $prefix The prefix to be stripped. Stripping is cases
sensitive.
- * @param EntityIdParser $idParser
- */
- public function __construct( $prefix, EntityIdParser $idParser ) {
- $this->prefix = $prefix;
- $this->idParser = $idParser;
- }
-
- /**
- * Parses the given $prefixedEntityId into an EntityId by first
stripping a fixed prefix.
- * If $prefixedEntityId does nto start with the expected prefix, a
EntityIdParsingException
- * is thrown.
- *
- * @param string $prefixedEntityId An EntityId with some prefix
attached, e.g. an entity URI.
- *
- * @throws EntityIdParsingException If $prefixedEntityId doesn't start
with the expected prefix,
- * or the remaining suffix is not a valid entity ID string.
- *
- * @return EntityId
- */
- public function parse( $prefixedEntityId ) {
- if ( strncmp( $this->prefix, $prefixedEntityId, strlen(
$this->prefix ) ) === 0 ) {
- $suffix = substr( $prefixedEntityId, strlen(
$this->prefix ) );
-
- return $this->idParser->parse( $suffix );
- }
-
- throw new EntityIdParsingException( "Missing expected prefix
`{$this->prefix}` in `{$prefixedEntityId}`" );
- }
-
-}
diff --git a/lib/tests/phpunit/ReferencedEntitiesFinderTest.php
b/lib/tests/phpunit/ReferencedEntitiesFinderTest.php
index 86234a1..397bbff 100644
--- a/lib/tests/phpunit/ReferencedEntitiesFinderTest.php
+++ b/lib/tests/phpunit/ReferencedEntitiesFinderTest.php
@@ -9,11 +9,11 @@
use Wikibase\DataModel\Entity\ItemId;
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\DataModel\Services\EntityId\BasicEntityIdParser;
+use Wikibase\DataModel\Services\EntityId\SuffixEntityIdParser;
use Wikibase\DataModel\Snak\PropertyNoValueSnak;
use Wikibase\DataModel\Snak\PropertySomeValueSnak;
use Wikibase\DataModel\Snak\PropertyValueSnak;
use Wikibase\DataModel\Snak\Snak;
-use Wikibase\Lib\Parsers\SuffixEntityIdParser;
use Wikibase\ReferencedEntitiesFinder;
/**
diff --git a/lib/tests/phpunit/parsers/SuffixEntityIdParserTest.php
b/lib/tests/phpunit/parsers/SuffixEntityIdParserTest.php
deleted file mode 100644
index f95fd91..0000000
--- a/lib/tests/phpunit/parsers/SuffixEntityIdParserTest.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-namespace Wikibase\Lib\Test;
-
-use Wikibase\DataModel\Entity\ItemId;
-use Wikibase\DataModel\Entity\PropertyId;
-use Wikibase\DataModel\Services\EntityId\BasicEntityIdParser;
-use Wikibase\Lib\Parsers\SuffixEntityIdParser;
-
-/**
- * @covers Wikibase\Lib\Parsers\SuffixEntityIdParser
- *
- * @group ValueParsers
- * @group WikibaseLib
- * @group Wikibase
- *
- * @licence GNU GPL v2+
- * @author Daniel Kinzler
- */
-class SuffixEntityIdParserTest extends \PHPUnit_Framework_TestCase {
-
- public function provideParse() {
- return array(
- 'base URI' => array( 'http://acme.test/entity/',
'http://acme.test/entity/Q14', new ItemId( 'Q14' ) ),
- 'interwiki prefix' => array( 'wikidata:',
'wikidata:P14', new PropertyId( 'P14' ) ),
- );
- }
-
- /**
- * @dataProvider provideParse
- */
- public function testParse( $prefix, $input, $expected ) {
- $parser = new SuffixEntityIdParser( $prefix, new
BasicEntityIdParser() );
- $this->assertEquals( $expected, $parser->parse( $input ) );
- }
-
- public function provideParse_invalid() {
- return array(
- 'mismatching prefix' => array(
'http://acme.test/entity/', 'http://www.wikidata.org/entity/Q14' ),
- 'incomplete prefix' => array(
'http://acme.test/entity/', 'http://acme.test/Q14' ),
- 'bad ID after prefix' => array(
'http://acme.test/entity/', 'http://acme.test/entity/XYYZ' ),
- 'extra stuff after ID' => array(
'http://acme.test/entity/', 'http://acme.test/entity/Q14#foo' ),
- 'input is shorter than prefix' => array(
'http://acme.test/entity/', 'http://acme.test/' ),
- 'input is same as prefix' => array(
'http://acme.test/entity/', 'http://acme.test/entity/' ),
- 'input is lexicographically smaller than prefix' =>
array( 'http://acme.test/entity/', 'http://aaaa.test/entity/Q14' ),
- 'input is lexicographically greater than prefix' =>
array( 'http://acme.test/entity/', 'http://cccc.test/entity/Q14' ),
- );
- }
-
- /**
- * @dataProvider provideParse_invalid
- */
- public function testParse_invalid( $prefix, $input ) {
- $parser = new SuffixEntityIdParser( $prefix, new
BasicEntityIdParser() );
-
- $this->setExpectedException(
'Wikibase\DataModel\Services\EntityId\EntityIdParsingException' );
- $parser->parse( $input );
- }
-
-}
diff --git a/repo/includes/WikibaseRepo.php b/repo/includes/WikibaseRepo.php
index 472bb27..5137ba0 100644
--- a/repo/includes/WikibaseRepo.php
+++ b/repo/includes/WikibaseRepo.php
@@ -26,6 +26,7 @@
use Wikibase\DataModel\Services\EntityId\BasicEntityIdParser;
use Wikibase\DataModel\Services\EntityId\DispatchingEntityIdParser;
use Wikibase\DataModel\Services\EntityId\EntityIdParser;
+use Wikibase\DataModel\Services\EntityId\SuffixEntityIdParser;
use Wikibase\DataModel\Services\Lookup\PropertyDataTypeLookup;
use Wikibase\DataModel\Services\Statement\GuidGenerator;
use Wikibase\DataModel\Services\Statement\StatementGuidParser;
@@ -53,7 +54,6 @@
use Wikibase\Repo\Localizer\ParseExceptionLocalizer;
use Wikibase\Lib\OutputFormatSnakFormatterFactory;
use Wikibase\Lib\OutputFormatValueFormatterFactory;
-use Wikibase\Lib\Parsers\SuffixEntityIdParser;
use Wikibase\Lib\PropertyInfoDataTypeLookup;
use Wikibase\Lib\SnakFormatter;
use Wikibase\Lib\Store\EntityContentDataCodec;
--
To view, visit https://gerrit.wikimedia.org/r/230751
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I80f5ab9c3f6ae8bdb1252a96f2ae66af3897ae85
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Addshore <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits