jenkins-bot has submitted this change and it was merged. Change subject: Rename ClaimModificationHelper to StatementModificationHelper ......................................................................
Rename ClaimModificationHelper to StatementModificationHelper I'm trying to do a very easy to review patch here, while at the same time I'm trying to make the code as much as possible independend from the actual terms "Claim" vs. "Statement". So yes, I know there is a hell lot more code that needs to be adapted to the DataModel 3 switch. Please do not downvote because of code I did *not* touched. Please review only code line I *did* touched. Change-Id: Iffe6983b240ff14d35dd38c20b2bbd06f6136723 --- M repo/includes/api/CreateClaim.php M repo/includes/api/ModifyClaim.php M repo/includes/api/RemoveClaims.php M repo/includes/api/RemoveQualifiers.php M repo/includes/api/RemoveReferences.php M repo/includes/api/SetClaim.php M repo/includes/api/SetClaimValue.php M repo/includes/api/SetQualifier.php M repo/includes/api/SetReference.php R repo/includes/api/StatementModificationHelper.php R repo/tests/phpunit/includes/api/StatementModificationHelperTest.php 11 files changed, 73 insertions(+), 83 deletions(-) Approvals: Addshore: Looks good to me, approved jenkins-bot: Verified diff --git a/repo/includes/api/CreateClaim.php b/repo/includes/api/CreateClaim.php index 19faf02..7245686 100644 --- a/repo/includes/api/CreateClaim.php +++ b/repo/includes/api/CreateClaim.php @@ -48,12 +48,12 @@ $params = $this->extractRequestParams(); $this->validateParameters( $params ); - $entityId = $this->claimModificationHelper->getEntityIdFromString( $params['entity'] ); + $entityId = $this->modificationHelper->getEntityIdFromString( $params['entity'] ); $baseRevisionId = isset( $params['baserevid'] ) ? (int)$params['baserevid'] : null; $entityRevision = $this->loadEntityRevision( $entityId, $baseRevisionId ); $entity = $entityRevision->getEntity(); - $propertyId = $this->claimModificationHelper->getEntityIdFromString( $params['property'] ); + $propertyId = $this->modificationHelper->getEntityIdFromString( $params['property'] ); if ( !$propertyId instanceof PropertyId ) { $this->dieError( $propertyId->getSerialization() . ' does not appear to be a property ID', @@ -61,14 +61,14 @@ ); } - $snak = $this->claimModificationHelper->getSnakInstance( $params, $propertyId ); + $snak = $this->modificationHelper->getSnakInstance( $params, $propertyId ); - $summary = $this->claimModificationHelper->createSummary( $params, $this ); + $summary = $this->modificationHelper->createSummary( $params, $this ); /* @var ChangeOpMainSnak $changeOp */ $changeOp = $this->claimChangeOpFactory->newSetMainSnakOp( '', $snak ); - $this->claimModificationHelper->applyChangeOp( $changeOp, $entity, $summary ); + $this->modificationHelper->applyChangeOp( $changeOp, $entity, $summary ); $claims = new Claims( $entity->getClaims() ); $claim = $claims->getClaimWithGuid( $changeOp->getClaimGuid() ); diff --git a/repo/includes/api/ModifyClaim.php b/repo/includes/api/ModifyClaim.php index 7d7912f..dd3ac27 100644 --- a/repo/includes/api/ModifyClaim.php +++ b/repo/includes/api/ModifyClaim.php @@ -23,9 +23,9 @@ /** * @since 0.4 * - * @var ClaimModificationHelper + * @var StatementModificationHelper */ - protected $claimModificationHelper; + protected $modificationHelper; /** * @since 0.5 @@ -44,7 +44,7 @@ public function __construct( ApiMain $mainModule, $moduleName, $modulePrefix = '' ) { parent::__construct( $mainModule, $moduleName, $modulePrefix ); - $this->claimModificationHelper = new ClaimModificationHelper( + $this->modificationHelper = new StatementModificationHelper( WikibaseRepo::getDefaultInstance()->getSnakConstructionService(), WikibaseRepo::getDefaultInstance()->getEntityIdParser(), WikibaseRepo::getDefaultInstance()->getClaimGuidValidator(), diff --git a/repo/includes/api/RemoveClaims.php b/repo/includes/api/RemoveClaims.php index 33be84c..92f2248 100644 --- a/repo/includes/api/RemoveClaims.php +++ b/repo/includes/api/RemoveClaims.php @@ -57,7 +57,7 @@ $this->assertStatementListContainsGuids( $entity->getStatements(), $params['claim'] ); } - $summary = $this->claimModificationHelper->createSummary( $params, $this ); + $summary = $this->modificationHelper->createSummary( $params, $this ); $changeOps = new ChangeOps(); $changeOps->add( $this->getChangeOps( $params ) ); @@ -84,7 +84,7 @@ $entityId = null; foreach ( $params['claim'] as $guid ) { - if ( !$this->claimModificationHelper->validateClaimGuid( $guid ) ) { + if ( !$this->modificationHelper->validateStatementGuid( $guid ) ) { $this->dieError( "Invalid claim guid $guid" , 'invalid-guid' ); } diff --git a/repo/includes/api/RemoveQualifiers.php b/repo/includes/api/RemoveQualifiers.php index 982792c..169b8a5 100644 --- a/repo/includes/api/RemoveQualifiers.php +++ b/repo/includes/api/RemoveQualifiers.php @@ -53,9 +53,9 @@ $baseRevisionId = isset( $params['baserevid'] ) ? (int)$params['baserevid'] : null; $entityRevision = $this->loadEntityRevision( $entityId, $baseRevisionId ); $entity = $entityRevision->getEntity(); - $summary = $this->claimModificationHelper->createSummary( $params, $this ); + $summary = $this->modificationHelper->createSummary( $params, $this ); - $claim = $this->claimModificationHelper->getClaimFromEntity( $claimGuid, $entity ); + $claim = $this->modificationHelper->getStatementFromEntity( $claimGuid, $entity ); $qualifierHashes = $this->getQualifierHashesFromParams( $params, $claim ); @@ -76,7 +76,7 @@ * Check the provided parameters */ private function validateParameters( array $params ) { - if ( !( $this->claimModificationHelper->validateClaimGuid( $params['claim'] ) ) ) { + if ( !( $this->modificationHelper->validateStatementGuid( $params['claim'] ) ) ) { $this->dieError( 'Invalid claim guid' , 'invalid-guid' ); } } diff --git a/repo/includes/api/RemoveReferences.php b/repo/includes/api/RemoveReferences.php index 783a49c..fbe293b 100644 --- a/repo/includes/api/RemoveReferences.php +++ b/repo/includes/api/RemoveReferences.php @@ -53,9 +53,9 @@ $baseRevisionId = isset( $params['baserevid'] ) ? (int)$params['baserevid'] : null; $entityRevision = $this->loadEntityRevision( $entityId, $baseRevisionId ); $entity = $entityRevision->getEntity(); - $summary = $this->claimModificationHelper->createSummary( $params, $this ); + $summary = $this->modificationHelper->createSummary( $params, $this ); - $claim = $this->claimModificationHelper->getClaimFromEntity( $guid, $entity ); + $claim = $this->modificationHelper->getStatementFromEntity( $guid, $entity ); if ( ! ( $claim instanceof Statement ) ) { $this->dieError( 'The referenced claim is not a statement and thus cannot have references', 'not-statement' ); @@ -80,7 +80,7 @@ * Check the provided parameters */ private function validateParameters( array $params ) { - if ( !( $this->claimModificationHelper->validateClaimGuid( $params['statement'] ) ) ) { + if ( !( $this->modificationHelper->validateStatementGuid( $params['statement'] ) ) ) { $this->dieError( 'Invalid claim guid' , 'invalid-guid' ); } } diff --git a/repo/includes/api/SetClaim.php b/repo/includes/api/SetClaim.php index c7f12a4..cadb14d 100644 --- a/repo/includes/api/SetClaim.php +++ b/repo/includes/api/SetClaim.php @@ -82,7 +82,7 @@ isset( $params['index'] ) ? $params['index'] : null ); - $this->claimModificationHelper->applyChangeOp( $changeop, $entity, $summary ); + $this->modificationHelper->applyChangeOp( $changeop, $entity, $summary ); $this->saveChanges( $entity, $summary ); $this->getResultBuilder()->markSuccess(); diff --git a/repo/includes/api/SetClaimValue.php b/repo/includes/api/SetClaimValue.php index 84e5b20..90e7030 100644 --- a/repo/includes/api/SetClaimValue.php +++ b/repo/includes/api/SetClaimValue.php @@ -50,18 +50,18 @@ $entityRevision = $this->loadEntityRevision( $entityId, $baseRevisionId ); $entity = $entityRevision->getEntity(); - $claim = $this->claimModificationHelper->getClaimFromEntity( $claimGuid, $entity ); + $claim = $this->modificationHelper->getStatementFromEntity( $claimGuid, $entity ); - $snak = $this->claimModificationHelper->getSnakInstance( $params, $claim->getMainSnak()->getPropertyId() ); + $snak = $this->modificationHelper->getSnakInstance( $params, $claim->getMainSnak()->getPropertyId() ); - $summary = $this->claimModificationHelper->createSummary( $params, $this ); + $summary = $this->modificationHelper->createSummary( $params, $this ); $changeOp = $this->claimChangeOpFactory->newSetMainSnakOp( $claimGuid, $snak ); - $this->claimModificationHelper->applyChangeOp( $changeOp, $entity, $summary ); + $this->modificationHelper->applyChangeOp( $changeOp, $entity, $summary ); $this->saveChanges( $entity, $summary ); $this->getResultBuilder()->markSuccess(); @@ -72,7 +72,7 @@ * @param array $params */ private function validateParameters( array $params ) { - if ( !( $this->claimModificationHelper->validateClaimGuid( $params['claim'] ) ) ) { + if ( !( $this->modificationHelper->validateStatementGuid( $params['claim'] ) ) ) { $this->dieError( 'Invalid claim guid' , 'invalid-guid' ); } } diff --git a/repo/includes/api/SetQualifier.php b/repo/includes/api/SetQualifier.php index 63c4c20..ec14b00 100644 --- a/repo/includes/api/SetQualifier.php +++ b/repo/includes/api/SetQualifier.php @@ -53,16 +53,16 @@ $entityRevision = $this->loadEntityRevision( $entityId, $baseRevisionId ); $entity = $entityRevision->getEntity(); - $summary = $this->claimModificationHelper->createSummary( $params, $this ); + $summary = $this->modificationHelper->createSummary( $params, $this ); - $claim = $this->claimModificationHelper->getClaimFromEntity( $params['claim'], $entity ); + $claim = $this->modificationHelper->getStatementFromEntity( $params['claim'], $entity ); if ( isset( $params['snakhash'] ) ) { $this->validateQualifierHash( $claim, $params['snakhash'] ); } $changeOp = $this->getChangeOp(); - $this->claimModificationHelper->applyChangeOp( $changeOp, $entity, $summary ); + $this->modificationHelper->applyChangeOp( $changeOp, $entity, $summary ); $this->saveChanges( $entity, $summary ); $this->getResultBuilder()->markSuccess(); @@ -74,7 +74,7 @@ * snaktype value are not set. */ private function validateParameters( array $params ) { - if ( !( $this->claimModificationHelper->validateClaimGuid( $params['claim'] ) ) ) { + if ( !( $this->modificationHelper->validateStatementGuid( $params['claim'] ) ) ) { $this->dieError( 'Invalid claim guid' , 'invalid-guid' ); } @@ -111,14 +111,14 @@ $claimGuid = $params['claim']; - $propertyId = $this->claimModificationHelper->getEntityIdFromString( $params['property'] ); + $propertyId = $this->modificationHelper->getEntityIdFromString( $params['property'] ); if ( !$propertyId instanceof PropertyId ) { $this->dieError( $propertyId->getSerialization() . ' does not appear to be a property ID', 'param-illegal' ); } - $newQualifier = $this->claimModificationHelper->getSnakInstance( $params, $propertyId ); + $newQualifier = $this->modificationHelper->getSnakInstance( $params, $propertyId ); if ( isset( $params['snakhash'] ) ) { $changeOp = $this->claimChangeOpFactory->newSetQualifierOp( $claimGuid, $newQualifier, $params['snakhash'] ); diff --git a/repo/includes/api/SetReference.php b/repo/includes/api/SetReference.php index c09be5c..df1c135 100644 --- a/repo/includes/api/SetReference.php +++ b/repo/includes/api/SetReference.php @@ -56,9 +56,9 @@ $entityRevision = $this->loadEntityRevision( $entityId, $baseRevisionId ); $entity = $entityRevision->getEntity(); - $summary = $this->claimModificationHelper->createSummary( $params, $this ); + $summary = $this->modificationHelper->createSummary( $params, $this ); - $claim = $this->claimModificationHelper->getClaimFromEntity( $params['statement'], $entity ); + $claim = $this->modificationHelper->getStatementFromEntity( $params['statement'], $entity ); if ( ! ( $claim instanceof Statement ) ) { $this->dieError( 'The referenced claim is not a statement and thus cannot have references', 'not-statement' ); @@ -82,7 +82,7 @@ ); $changeOp = $this->getChangeOp( $newReference ); - $this->claimModificationHelper->applyChangeOp( $changeOp, $entity, $summary ); + $this->modificationHelper->applyChangeOp( $changeOp, $entity, $summary ); $this->saveChanges( $entity, $summary ); $this->getResultBuilder()->markSuccess(); @@ -93,7 +93,7 @@ * Check the provided parameters */ private function validateParameters( array $params ) { - if ( !( $this->claimModificationHelper->validateClaimGuid( $params['statement'] ) ) ) { + if ( !( $this->modificationHelper->validateStatementGuid( $params['statement'] ) ) ) { $this->dieError( 'Invalid claim guid' , 'invalid-guid' ); } } diff --git a/repo/includes/api/ClaimModificationHelper.php b/repo/includes/api/StatementModificationHelper.php similarity index 79% rename from repo/includes/api/ClaimModificationHelper.php rename to repo/includes/api/StatementModificationHelper.php index 2302216..2070d00 100644 --- a/repo/includes/api/ClaimModificationHelper.php +++ b/repo/includes/api/StatementModificationHelper.php @@ -11,8 +11,6 @@ use Wikibase\ChangeOp\ChangeOp; use Wikibase\ChangeOp\ChangeOpException; use Wikibase\ChangeOp\ChangeOpValidationException; -use Wikibase\DataModel\Claim\Claim; -use Wikibase\DataModel\Claim\Claims; use Wikibase\DataModel\Entity\Entity; use Wikibase\DataModel\Entity\EntityId; use Wikibase\DataModel\Entity\EntityIdParser; @@ -20,14 +18,16 @@ use Wikibase\DataModel\Entity\PropertyId; use Wikibase\DataModel\Entity\PropertyNotFoundException; use Wikibase\DataModel\Snak\Snak; +use Wikibase\DataModel\Statement\Statement; +use Wikibase\DataModel\Statement\StatementListProvider; use Wikibase\Lib\ClaimGuidValidator; use Wikibase\Lib\SnakConstructionService; use Wikibase\Summary; /** - * Helper class for modifying claims + * Helper class for modifying an entities statements. * - * @since 0.4 + * @since 0.5 * * @licence GNU GPL v2+ * @author Tobias Gritschacher < tobias.gritschac...@wikimedia.de > @@ -35,7 +35,7 @@ * @author Adam Shorland * @author Daniel Kinzler */ -class ClaimModificationHelper { +class StatementModificationHelper { /** * @var SnakConstructionService @@ -50,72 +50,67 @@ /** * @var ClaimGuidValidator */ - private $claimGuidValidator; + private $guidValidator; /** - * @since 0.4 - * * @var ApiErrorReporter * @param SnakConstructionService $snakConstructionService * @param EntityIdParser $entityIdParser - * @param ClaimGuidValidator $claimGuidValidator + * @param ClaimGuidValidator $guidValidator * @param ApiErrorReporter $errorReporter */ public function __construct( SnakConstructionService $snakConstructionService, EntityIdParser $entityIdParser, - ClaimGuidValidator $claimGuidValidator, + ClaimGuidValidator $guidValidator, ApiErrorReporter $errorReporter ) { $this->snakConstructionService = $snakConstructionService; $this->entityIdParser = $entityIdParser; - $this->claimGuidValidator = $claimGuidValidator; + $this->guidValidator = $guidValidator; $this->errorReporter = $errorReporter; } /** - * @since 0.4 - * * @param string $guid * * @throws UsageException * @return bool */ - public function validateClaimGuid( $guid ) { - return $this->claimGuidValidator->validate( $guid ); + public function validateStatementGuid( $guid ) { + return $this->guidValidator->validate( $guid ); } /** - * @since 0.4 - * * @param string $guid * @param Entity $entity * * @throws UsageException - * @return Claim + * @return Statement */ - public function getClaimFromEntity( $guid, Entity $entity ) { - $claims = new Claims( $entity->getClaims() ); - $claim = $claims->getClaimWithGuid( $guid ); - - if ( $claim === null ) { - $this->errorReporter->dieError( 'Could not find the claim' , 'no-such-claim' ); + public function getStatementFromEntity( $guid, Entity $entity ) { + if ( !( $entity instanceof StatementListProvider ) ) { + $this->errorReporter->dieError( 'Entity type does not support statements', 'no-such-claim' ); } - return $claim; + $statement = $entity->getStatements()->getFirstStatementWithGuid( $guid ); + + if ( $statement === null ) { + $this->errorReporter->dieError( 'Could not find the statement', 'no-such-claim' ); + } + + return $statement; } /** - * @since 0.4 - * - * @param array $params + * @param string[] $params Array with a 'snaktype' and an optional 'value' element. * @param PropertyId $propertyId * * @throws UsageException * @throws LogicException * @return Snak */ - public function getSnakInstance( $params, PropertyId $propertyId ) { + public function getSnakInstance( array $params, PropertyId $propertyId ) { $valueData = null; if ( isset( $params['value'] ) ) { @@ -139,13 +134,11 @@ $this->errorReporter->dieException( $ex, 'invalid-snak' ); } - throw new LogicException( 'ClaimModificationHelper::throwUsageException did not throw a UsageException.' ); + throw new LogicException( 'ApiErrorReporter::dieException did not throw an exception' ); } /** * Parses an entity id string coming from the user - * - * @since 0.4 * * @param string $entityIdParam * @@ -166,8 +159,6 @@ /** * Creates a new Summary instance suitable for representing the action performed by this module. - * - * @since 0.4 * * @param array $params * @param ApiBase $module diff --git a/repo/tests/phpunit/includes/api/ClaimModificationHelperTest.php b/repo/tests/phpunit/includes/api/StatementModificationHelperTest.php similarity index 69% rename from repo/tests/phpunit/includes/api/ClaimModificationHelperTest.php rename to repo/tests/phpunit/includes/api/StatementModificationHelperTest.php index 3ad9ac1..058d1f8 100644 --- a/repo/tests/phpunit/includes/api/ClaimModificationHelperTest.php +++ b/repo/tests/phpunit/includes/api/StatementModificationHelperTest.php @@ -6,9 +6,8 @@ use DataValues\StringValue; use UsageException; use Wikibase\Api\ApiErrorReporter; -use Wikibase\Api\ClaimModificationHelper; use Wikibase\Api\CreateClaim; -use Wikibase\DataModel\Claim\Claim; +use Wikibase\Api\StatementModificationHelper; use Wikibase\DataModel\Entity\Item; use Wikibase\DataModel\Entity\ItemId; use Wikibase\DataModel\Snak\PropertyValueSnak; @@ -17,7 +16,7 @@ use Wikibase\Repo\WikibaseRepo; /** - * @covers Wikibase\Api\ClaimModificationHelper + * @covers Wikibase\Api\StatementModificationHelper * * @group Wikibase * @group WikibaseRepo @@ -27,15 +26,15 @@ * @licence GNU GPL v2+ * @author Tobias Gritschacher < tobias.gritschac...@wikimedia.de > */ -class ClaimModificationHelperTest extends \MediaWikiTestCase { +class StatementModificationHelperTest extends \MediaWikiTestCase { public function testValidGetEntityIdFromString() { $validEntityIdString = 'q55'; - $claimModificationHelper = $this->getNewInstance(); + $helper = $this->getNewInstance(); $this->assertInstanceOf( 'Wikibase\DataModel\Entity\EntityId', - $claimModificationHelper->getEntityIdFromString( $validEntityIdString ) + $helper->getEntityIdFromString( $validEntityIdString ) ); } @@ -44,23 +43,23 @@ */ public function testInvalidGetEntityIdFromString() { $invalidEntityIdString = 'no!'; - $claimModificationHelper = $this->getNewInstance(); - $claimModificationHelper->getEntityIdFromString( $invalidEntityIdString ); + $helper = $this->getNewInstance(); + $helper->getEntityIdFromString( $invalidEntityIdString ); } public function testCreateSummary() { $apiMain = new ApiMain(); - $claimModificationHelper = $this->getNewInstance(); + $helper = $this->getNewInstance(); $customSummary = 'I did it!'; - $summary = $claimModificationHelper->createSummary( + $summary = $helper->createSummary( array( 'summary' => $customSummary ), new CreateClaim( $apiMain, 'wbcreateclaim' ) ); $this->assertEquals( 'wbcreateclaim', $summary->getModuleName() ); $this->assertEquals( $customSummary, $summary->getUserSummary() ); - $summary = $claimModificationHelper->createSummary( + $summary = $helper->createSummary( array(), new CreateClaim( $apiMain, 'wbcreateclaim' ) ); @@ -68,8 +67,8 @@ $this->assertNull( $summary->getUserSummary() ); } - public function testGetClaimFromEntity() { - $claimModificationHelper = $this->getNewInstance(); + public function testGetStatementFromEntity() { + $helper = $this->getNewInstance(); $item = new Item( new ItemId( 'Q42' ) ); @@ -79,9 +78,9 @@ $item->getStatements()->addStatement( $statement ); $guid = $statement->getGuid(); - $this->assertEquals( $statement, $claimModificationHelper->getClaimFromEntity( $guid, $item ) ); + $this->assertEquals( $statement, $helper->getStatementFromEntity( $guid, $item ) ); $this->setExpectedException( '\UsageException' ); - $claimModificationHelper->getClaimFromEntity( 'q42$D8404CDA-25E4-4334-AF13-A3290BCD9C0N', $item ); + $helper->getStatementFromEntity( 'q42$D8404CDA-25E4-4334-AF13-A3290BCD9C0N', $item ); } private function getNewInstance() { @@ -93,14 +92,14 @@ $api->getLanguage() ); - $claimModificationHelper = new ClaimModificationHelper( + $helper = new StatementModificationHelper( WikibaseRepo::getDefaultInstance()->getSnakConstructionService(), WikibaseRepo::getDefaultInstance()->getEntityIdParser(), WikibaseRepo::getDefaultInstance()->getClaimGuidValidator(), $errorReporter ); - return $claimModificationHelper; + return $helper; } } -- To view, visit https://gerrit.wikimedia.org/r/218346 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Iffe6983b240ff14d35dd38c20b2bbd06f6136723 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de> Gerrit-Reviewer: Addshore <addshorew...@gmail.com> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits