diff --git a/src/Claim/Claims.php b/src/Claim/Claims.php index ba2f6d84..415517b8 100644 --- a/src/Claim/Claims.php +++ b/src/Claim/Claims.php @@ -2,12 +2,13 @@ namespace Wikibase\DataModel\Claim; +use ArrayAccess; use ArrayObject; use Comparable; use Hashable; use InvalidArgumentException; use Traversable; -use Wikibase\DataModel\ByPropertyIdArray; +use Wikibase\DataModel\ByPropertyIdGrouper; use Wikibase\DataModel\Entity\PropertyId; use Wikibase\DataModel\Snak\Snak; @@ -317,14 +318,13 @@ public function getGuids() { * @return Claims */ public function getClaimsForProperty( PropertyId $propertyId ) { - $claimsByProp = new ByPropertyIdArray( $this ); - $claimsByProp->buildIndex(); + $byPropertyIdGrouper = new ByPropertyIdGrouper( $this ); - if ( !( in_array( $propertyId, $claimsByProp->getPropertyIds() ) ) ) { + if ( !$byPropertyIdGrouper->hasPropertyId( $propertyId ) ) { return new self(); } - return new self( $claimsByProp->getByPropertyId( $propertyId ) ); + return new self( $byPropertyIdGrouper->getByPropertyId( $propertyId ) ); } /** diff --git a/tests/unit/Claim/ClaimsTest.php b/tests/unit/Claim/ClaimsTest.php index cef8124c..26e281a0 100644 --- a/tests/unit/Claim/ClaimsTest.php +++ b/tests/unit/Claim/ClaimsTest.php @@ -2,25 +2,16 @@ namespace Wikibase\Test; -use DataValues\StringValue; -use Diff\DiffOp\Diff\Diff; -use Diff\DiffOp\DiffOpAdd; -use Diff\DiffOp\DiffOpChange; -use Diff\DiffOp\DiffOpRemove; use InvalidArgumentException; use ReflectionClass; -use Wikibase\DataModel\ByPropertyIdArray; use Wikibase\DataModel\Claim\Claim; +use Wikibase\DataModel\Claim\ClaimList; use Wikibase\DataModel\Claim\Claims; -use Wikibase\DataModel\Statement\Statement; use Wikibase\DataModel\Entity\PropertyId; -use Wikibase\DataModel\Reference; -use Wikibase\DataModel\ReferenceList; use Wikibase\DataModel\Snak\PropertyNoValueSnak; use Wikibase\DataModel\Snak\PropertySomeValueSnak; -use Wikibase\DataModel\Snak\PropertyValueSnak; use Wikibase\DataModel\Snak\Snak; -use Wikibase\DataModel\Snak\SnakList; +use Wikibase\DataModel\Statement\Statement; /** * @covers Wikibase\DataModel\Claim\Claims @@ -66,10 +57,10 @@ public function testArrayObjectNotConstructedFromObject() { $claim1 = $this->makeClaim( new PropertyNoValueSnak( 1 ) ); $claim2 = $this->makeClaim( new PropertyNoValueSnak( 2 ) ); - $byPropertyIdArray = new ByPropertyIdArray(); - $byPropertyIdArray->append( $claim1 ); + $claimList = new ClaimList(); + $claimList->addClaim( $claim1 ); - $claims = new Claims( $byPropertyIdArray ); + $claims = new Claims( $claimList ); // According to the documentation append() "cannot be called when the ArrayObject was // constructed from an object." This test makes sure it was not constructed from an object. $claims->append( $claim2 );