Skip to content

Commit ffb391c

Browse files
committed
Merge pull request #373 from wmde/statementConstructor
Remove Claim from Statement constructor
2 parents 40cb371 + aa061cb commit ffb391c

15 files changed

Lines changed: 159 additions & 181 deletions

src/Entity/Item.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ public function getType() {
208208
* @return Statement
209209
*/
210210
public function newClaim( Snak $mainSnak ) {
211-
return new Statement( new Claim( $mainSnak ) );
211+
return new Statement( $mainSnak );
212212
}
213213

214214
/**

src/Entity/Property.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ public function hasClaims() {
240240
* @return Statement
241241
*/
242242
public function newClaim( Snak $mainSnak ) {
243-
return new Statement( new Claim( $mainSnak ) );
243+
return new Statement( $mainSnak );
244244
}
245245

246246
/**

src/Statement/Statement.php

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Wikibase\DataModel\ReferenceList;
99
use Wikibase\DataModel\Snak\Snak;
1010
use Wikibase\DataModel\Snak\SnakList;
11+
use Wikibase\DataModel\Snak\Snaks;
1112

1213
/**
1314
* Class representing a Wikibase statement.
@@ -43,13 +44,17 @@ class Statement extends Claim {
4344
/**
4445
* @since 2.0
4546
*
46-
* @param Claim $claim
47+
* @param Snak $mainSnak
48+
* @param Snaks|null $qualifiers
4749
* @param ReferenceList|null $references
4850
*/
49-
public function __construct( Claim $claim, ReferenceList $references = null ) {
50-
$this->mainSnak = $claim->getMainSnak();
51-
$this->qualifiers = $claim->getQualifiers();
52-
$this->guid = $claim->getGuid();
51+
public function __construct(
52+
Snak $mainSnak,
53+
Snaks $qualifiers = null,
54+
ReferenceList $references = null
55+
) {
56+
$this->mainSnak = $mainSnak;
57+
$this->qualifiers = $qualifiers ?: new SnakList();
5358
$this->references = $references ?: new ReferenceList();
5459
}
5560

src/Statement/StatementList.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ public function addNewStatement( Snak $mainSnak, $qualifiers = null, $references
101101
$qualifiers = is_array( $qualifiers ) ? new SnakList( $qualifiers ) : $qualifiers;
102102
$references = is_array( $references ) ? new ReferenceList( $references ) : $references;
103103

104-
$statement = new Statement( new Claim( $mainSnak, $qualifiers ), $references );
104+
$statement = new Statement( $mainSnak, $qualifiers, $references );
105105
$statement->setGuid( $guid );
106106

107107
$this->addStatement( $statement );

tests/unit/ByPropertyIdArrayTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ function( Snak $snak ) {
8080

8181
$lists[] = array_map(
8282
function( Snak $snak ) {
83-
return new Statement( new Claim( $snak ) );
83+
return new Statement( $snak );
8484
},
8585
$snaks
8686
);

tests/unit/Claim/ClaimStandaloneTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public function testGivenClaimWithDifferentGuids_equalsReturnsFalse() {
8181

8282
public function testGivenSimilarStatement_equalsReturnsFalse() {
8383
$claim = new Claim( new PropertyNoValueSnak( 42 ) );
84-
$this->assertFalse( $claim->equals( new Statement( new Claim( new PropertyNoValueSnak( 42 ) ) ) ) );
84+
$this->assertFalse( $claim->equals( new Statement( new PropertyNoValueSnak( 42 ) ) ) );
8585
}
8686

8787
}

tests/unit/Claim/ClaimsTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ protected function makeStatement( Snak $mainSnak, $guid = null ) {
4747
$guid = 'TEST$statement-' . $this->guidCounter;
4848
}
4949

50-
$claim = new Statement( new Claim( $mainSnak ) );
50+
$claim = new Statement( $mainSnak );
5151
$claim->setGuid( $guid );
5252

5353
return $claim;

tests/unit/Entity/Diff/EntityDiffTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,12 @@ public function diffProvider() {
8989

9090
$diffs[] = new EntityDiff( $diffOps );
9191

92-
$statement = new Statement( new Claim( new PropertyNoValueSnak( 42 ) ) );
92+
$statement = new Statement( new PropertyNoValueSnak( 42 ) );
9393
$statement->setGuid( 'EntityDiffTest$foo' );
9494

9595
$statementListDiffer = new StatementListDiffer();
9696
$diffOps['claim'] = $statementListDiffer->getDiff(
97-
new StatementList( array( $statement ) ),
97+
new StatementList( $statement ),
9898
new StatementList()
9999
);
100100

tests/unit/Entity/Diff/PropertyPatcherTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,13 @@ public function testGivenNonItem_exceptionIsThrown() {
5757
}
5858

5959
public function testStatementsArePatched() {
60-
$s1337 = new Statement( new Claim( new PropertyNoValueSnak( 1337 ) ) );
60+
$s1337 = new Statement( new PropertyNoValueSnak( 1337 ) );
6161
$s1337->setGuid( 's1337' );
6262

63-
$s23 = new Statement( new Claim( new PropertyNoValueSnak( 23 ) ) );
63+
$s23 = new Statement( new PropertyNoValueSnak( 23 ) );
6464
$s23->setGuid( 's23' );
6565

66-
$s42 = new Statement( new Claim( new PropertyNoValueSnak( 42 ) ) );
66+
$s42 = new Statement( new PropertyNoValueSnak( 42 ) );
6767
$s42->setGuid( 's42' );
6868

6969
$patch = new EntityDiff( array(

tests/unit/Entity/ItemTest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -514,10 +514,10 @@ public function testNewClaimReturnsStatementWithProvidedMainSnak() {
514514
public function testSetClaims() {
515515
$item = new Item();
516516

517-
$statement0 = new Statement( new Claim( new PropertyNoValueSnak( 42 ) ) );
517+
$statement0 = new Statement( new PropertyNoValueSnak( 42 ) );
518518
$statement0->setGuid( 'TEST$NVS42' );
519519

520-
$statement1 = new Statement( new Claim( new PropertySomeValueSnak( 42 ) ) );
520+
$statement1 = new Statement( new PropertySomeValueSnak( 42 ) );
521521
$statement1->setGuid( 'TEST$SVS42' );
522522

523523
$statements = array( $statement0, $statement1 );
@@ -583,7 +583,7 @@ public function testItemWithoutSitelinksHasNoSitelinks() {
583583
}
584584

585585
private function newStatement() {
586-
$statement = new Statement( new Claim( new PropertyNoValueSnak( 42 ) ) );
586+
$statement = new Statement( new PropertyNoValueSnak( 42 ) );
587587
$statement->setGuid( 'kittens' );
588588
return $statement;
589589
}
@@ -614,10 +614,10 @@ public function testEmptyConstructor() {
614614
}
615615

616616
public function testCanConstructWithStatementList() {
617-
$statement = new Statement( new Claim( new PropertyNoValueSnak( 42 ) ) );
617+
$statement = new Statement( new PropertyNoValueSnak( 42 ) );
618618
$statement->setGuid( 'meh' );
619619

620-
$statements = new StatementList( array( $statement ) );
620+
$statements = new StatementList( $statement );
621621

622622
$item = new Item( null, null, null, $statements );
623623

0 commit comments

Comments
 (0)