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

Reply via email to