Skip to content

Commit cbc85da

Browse files
committed
Make Api\SearchResults implement Api\SearchResultsInterface
Purpose == Make the implementation actually fulfill the contract defined by the interface. Background == The return type hints of almost all the repository implementations of the `getList()` method indicate a return type of `\Magento\Framework\Api\SearchResultsInterface` or one of its sub-interfaces. One example of many is `\Magento\Catalog\Api\ProductRepositoryInterface::getList()`. The return type hint states it returns `\Magento\Catalog\Api\Data\ProductSearchResultsInterface`, which in turn extends `\Magento\Framework\Api\SearchResultsInterface`. However, the concrete implementation preference for that interface is `\Magento\Framework\Api\SearchResults`, which does not implement `\Magento\Framework\Api\SearchResultsInterface` (or any interface for that matter). Reasons for this PR == This PR makes `Api\SearchResults` actually implement `Api\SearchResultsInterface`, forcing all implementations to match the contract. It also improves developer experience because this is pretty much what should be expected of the code anyway. It also makes the preference configuration technically more correct, because the configured concrete class is guaranteed to at least partially fulfill the contract defined by the interface.
1 parent b67a5e0 commit cbc85da

File tree

37 files changed

+41
-40
lines changed

37 files changed

+41
-40
lines changed

app/code/Magento/Catalog/Api/Data/CategoryAttributeSearchResultsInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@ public function getItems();
2424
* @param \Magento\Catalog\Api\Data\CategoryAttributeInterface[] $items
2525
* @return $this
2626
*/
27-
public function setItems(array $items = null);
27+
public function setItems(array $items);
2828
}

app/code/Magento/Catalog/Api/Data/ProductAttributeSearchResultsInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@ public function getItems();
2424
* @param \Magento\Catalog\Api\Data\ProductAttributeInterface[] $items
2525
* @return $this
2626
*/
27-
public function setItems(array $items = null);
27+
public function setItems(array $items);
2828
}

app/code/Magento/Catalog/Api/Data/ProductSearchResultsInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@ public function getItems();
2424
* @param \Magento\Catalog\Api\Data\ProductInterface[] $items
2525
* @return $this
2626
*/
27-
public function setItems(array $items = null);
27+
public function setItems(array $items);
2828
}

app/code/Magento/CatalogInventory/Api/Data/StockCollectionInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,5 @@ public function getItems();
3030
* @param \Magento\CatalogInventory\Api\Data\StockInterface[] $items
3131
* @return $this
3232
*/
33-
public function setItems(array $items = null);
33+
public function setItems(array $items);
3434
}

app/code/Magento/CatalogInventory/Api/Data/StockItemCollectionInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public function getItems();
3030
* @param \Magento\CatalogInventory\Api\Data\StockItemInterface[] $items
3131
* @return $this
3232
*/
33-
public function setItems(array $items = null);
33+
public function setItems(array $items);
3434

3535
/**
3636
* Get search criteria.

app/code/Magento/CatalogInventory/Api/Data/StockStatusCollectionInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public function getItems();
2727
* @param \Magento\CatalogInventory\Api\Data\StockStatusInterface[] $items
2828
* @return $this
2929
*/
30-
public function setItems(array $items = null);
30+
public function setItems(array $items);
3131

3232
/**
3333
* Get search criteria.

app/code/Magento/Cms/Api/Data/BlockSearchResultsInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ public function getItems();
2626
* @param \Magento\Cms\Api\Data\BlockInterface[] $items
2727
* @return $this
2828
*/
29-
public function setItems(array $items = null);
29+
public function setItems(array $items);
3030
}

app/code/Magento/Cms/Api/Data/PageSearchResultsInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ public function getItems();
2626
* @param \Magento\Cms\Api\Data\PageInterface[] $items
2727
* @return $this
2828
*/
29-
public function setItems(array $items = null);
29+
public function setItems(array $items);
3030
}

app/code/Magento/Customer/Api/Data/AddressSearchResultsInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ public function getItems();
2626
* @param \Magento\Customer\Api\Data\AddressInterface[] $items
2727
* @return $this
2828
*/
29-
public function setItems(array $items = null);
29+
public function setItems(array $items);
3030
}

app/code/Magento/Customer/Api/Data/CustomerSearchResultsInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ public function getItems();
2626
* @param \Magento\Customer\Api\Data\CustomerInterface[] $items
2727
* @return $this
2828
*/
29-
public function setItems(array $items = null);
29+
public function setItems(array $items);
3030
}

app/code/Magento/Customer/Api/Data/GroupSearchResultsInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ public function getItems();
2626
* @param \Magento\Customer\Api\Data\GroupInterface[] $items
2727
* @return $this
2828
*/
29-
public function setItems(array $items = null);
29+
public function setItems(array $items);
3030
}

app/code/Magento/Eav/Api/Data/AttributeGroupSearchResultsInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ public function getItems();
2121
* @param \Magento\Eav\Api\Data\AttributeGroupInterface[] $items
2222
* @return $this
2323
*/
24-
public function setItems(array $items = null);
24+
public function setItems(array $items);
2525
}

app/code/Magento/Eav/Api/Data/AttributeSearchResultsInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ public function getItems();
2121
* @param \Magento\Eav\Api\Data\AttributeInterface[] $items
2222
* @return $this
2323
*/
24-
public function setItems(array $items = null);
24+
public function setItems(array $items);
2525
}

app/code/Magento/Eav/Api/Data/AttributeSetSearchResultsInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ public function getItems();
2121
* @param \Magento\Eav\Api\Data\AttributeSetInterface[] $items
2222
* @return $this
2323
*/
24-
public function setItems(array $items = null);
24+
public function setItems(array $items);
2525
}

app/code/Magento/Quote/Api/Data/CartSearchResultsInterface.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public function getItems();
3535
* @param \Magento\Quote\Api\Data\CartInterface[] $items
3636
* @return $this
3737
*/
38-
public function setItems(array $items = null);
38+
public function setItems(array $items);
3939

4040
/**
4141
* Get search criteria.
@@ -50,7 +50,7 @@ public function getSearchCriteria();
5050
* @param \Magento\Framework\Api\SearchCriteriaInterface $searchCriteria
5151
* @return $this
5252
*/
53-
public function setSearchCriteria(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria = null);
53+
public function setSearchCriteria(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria);
5454

5555
/**
5656
* Get total count.

app/code/Magento/Sales/Api/Data/CreditmemoCommentSearchResultInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,5 @@ public function getItems();
2929
* @param \Magento\Sales\Api\Data\CreditmemoCommentInterface[] $items
3030
* @return $this
3131
*/
32-
public function setItems(array $items = null);
32+
public function setItems(array $items);
3333
}

app/code/Magento/Sales/Api/Data/CreditmemoItemSearchResultInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,5 @@ public function getItems();
2929
* @param \Magento\Sales\Api\Data\CreditmemoItemInterface[] $items
3030
* @return $this
3131
*/
32-
public function setItems(array $items = null);
32+
public function setItems(array $items);
3333
}

app/code/Magento/Sales/Api/Data/CreditmemoSearchResultInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ public function getItems();
2828
* @param \Magento\Sales\Api\Data\CreditmemoInterface[] $items
2929
* @return $this
3030
*/
31-
public function setItems(array $items = null);
31+
public function setItems(array $items);
3232
}

app/code/Magento/Sales/Api/Data/InvoiceCommentSearchResultInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ public function getItems();
2727
* @param \Magento\Sales\Api\Data\InvoiceCommentInterface[] $items
2828
* @return $this
2929
*/
30-
public function setItems(array $items = null);
30+
public function setItems(array $items);
3131
}

app/code/Magento/Sales/Api/Data/InvoiceItemSearchResultInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ public function getItems();
2626
* @param \Magento\Sales\Api\Data\InvoiceItemInterface[] $items
2727
* @return $this
2828
*/
29-
public function setItems(array $items = null);
29+
public function setItems(array $items);
3030
}

app/code/Magento/Sales/Api/Data/InvoiceSearchResultInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ public function getItems();
2626
* @param \Magento\Sales\Api\Data\InvoiceInterface[] $items
2727
* @return $this
2828
*/
29-
public function setItems(array $items = null);
29+
public function setItems(array $items);
3030
}

app/code/Magento/Sales/Api/Data/OrderAddressSearchResultInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ public function getItems();
2828
* @param \Magento\Sales\Api\Data\OrderAddressInterface[] $items
2929
* @return $this
3030
*/
31-
public function setItems(array $items = null);
31+
public function setItems(array $items);
3232
}

app/code/Magento/Sales/Api/Data/OrderItemSearchResultInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ public function getItems();
2828
* @param \Magento\Sales\Api\Data\OrderItemInterface[] $items
2929
* @return $this
3030
*/
31-
public function setItems(array $items = null);
31+
public function setItems(array $items);
3232
}

app/code/Magento/Sales/Api/Data/OrderPaymentSearchResultInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ public function getItems();
2828
* @param \Magento\Sales\Api\Data\OrderPaymentInterface[] $items
2929
* @return $this
3030
*/
31-
public function setItems(array $items = null);
31+
public function setItems(array $items);
3232
}

app/code/Magento/Sales/Api/Data/OrderStatusHistorySearchResultInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ public function getItems();
2828
* @param \Magento\Sales\Api\Data\OrderStatusHistoryInterface[] $items
2929
* @return $this
3030
*/
31-
public function setItems(array $items = null);
31+
public function setItems(array $items);
3232
}

app/code/Magento/Sales/Api/Data/ShipmentCommentSearchResultInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ public function getItems();
2727
* @param \Magento\Sales\Api\Data\ShipmentCommentInterface[] $items
2828
* @return $this
2929
*/
30-
public function setItems(array $items = null);
30+
public function setItems(array $items);
3131
}

app/code/Magento/Sales/Api/Data/ShipmentItemSearchResultInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ public function getItems();
2727
* @param \Magento\Sales\Api\Data\ShipmentItemInterface[] $items
2828
* @return $this
2929
*/
30-
public function setItems(array $items = null);
30+
public function setItems(array $items);
3131
}

app/code/Magento/Sales/Api/Data/ShipmentSearchResultInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,5 @@ public function getItems();
2929
* @param \Magento\Sales\Api\Data\ShipmentInterface[] $items
3030
* @return $this
3131
*/
32-
public function setItems(array $items = null);
32+
public function setItems(array $items);
3333
}

app/code/Magento/Sales/Api/Data/ShipmentTrackSearchResultInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ public function getItems();
2828
* @param \Magento\Sales\Api\Data\ShipmentTrackInterface[] $items
2929
* @return $this
3030
*/
31-
public function setItems(array $items = null);
31+
public function setItems(array $items);
3232
}

app/code/Magento/Sales/Api/Data/TransactionSearchResultInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ public function getItems();
2626
* @param \Magento\Sales\Api\Data\TransactionInterface[] $items
2727
* @return $this
2828
*/
29-
public function setItems(array $items = null);
29+
public function setItems(array $items);
3030
}

app/code/Magento/Tax/Api/Data/TaxClassSearchResultsInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,5 @@ public function getItems();
2525
* @param \Magento\Tax\Api\Data\TaxClassInterface[] $items
2626
* @return $this
2727
*/
28-
public function setItems(array $items = null);
28+
public function setItems(array $items);
2929
}

app/code/Magento/Tax/Api/Data/TaxRateSearchResultsInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ public function getItems();
2828
* @param \Magento\Tax\Api\Data\TaxRateInterface[] $items
2929
* @return $this
3030
*/
31-
public function setItems(array $items = null);
31+
public function setItems(array $items);
3232
}

app/code/Magento/Tax/Api/Data/TaxRuleSearchResultsInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,5 @@ public function getItems();
2525
* @param \Magento\Tax\Api\Data\TaxRuleInterface[] $items
2626
* @return $this
2727
*/
28-
public function setItems(array $items = null);
28+
public function setItems(array $items);
2929
}

app/code/Magento/Tax/Test/Unit/Model/TaxClass/RepositoryTest.php

+1
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ public function testGetList()
222222

223223
$collection->expects($this->any())->method('getSize')->willReturn(2);
224224
$collection->expects($this->any())->method('setItems')->with([$taxClassOne, $taxClassTwo]);
225+
$collection->expects($this->any())->method('getItems')->willReturn([$taxClassOne, $taxClassTwo]);
225226
$collection->expects($this->once())->method('setCurPage')->with(0);
226227
$collection->expects($this->once())->method('setPageSize')->with(20);
227228

app/code/Magento/Ui/Api/Data/BookmarkSearchResultsInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ public function getItems();
2626
* @param \Magento\Ui\Api\Data\BookmarkInterface[] $items
2727
* @return $this
2828
*/
29-
public function setItems(array $items = null);
29+
public function setItems(array $items);
3030
}

lib/internal/Magento/Framework/Api/SearchResults.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
/**
1010
* SearchResults Service Data Object used for the search service requests
1111
*/
12-
class SearchResults extends AbstractSimpleObject
12+
class SearchResults extends AbstractSimpleObject implements SearchResultsInterface
1313
{
1414
const KEY_ITEMS = 'items';
1515
const KEY_SEARCH_CRITERIA = 'search_criteria';
@@ -49,10 +49,10 @@ public function getSearchCriteria()
4949
/**
5050
* Set search criteria
5151
*
52-
* @param \Magento\Framework\Api\SearchCriteria $searchCriteria
52+
* @param SearchCriteriaInterface $searchCriteria
5353
* @return $this
5454
*/
55-
public function setSearchCriteria(\Magento\Framework\Api\SearchCriteria $searchCriteria)
55+
public function setSearchCriteria(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria)
5656
{
5757
return $this->setData(self::KEY_SEARCH_CRITERIA, $searchCriteria);
5858
}

lib/internal/Magento/Framework/Api/SearchResultsInterface.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public function getItems();
2626
* @param \Magento\Framework\Api\ExtensibleDataInterface[] $items
2727
* @return $this
2828
*/
29-
public function setItems(array $items = null);
29+
public function setItems(array $items);
3030

3131
/**
3232
* Get search criteria.
@@ -41,7 +41,7 @@ public function getSearchCriteria();
4141
* @param \Magento\Framework\Api\SearchCriteriaInterface $searchCriteria
4242
* @return $this
4343
*/
44-
public function setSearchCriteria(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria = null);
44+
public function setSearchCriteria(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria);
4545

4646
/**
4747
* Get total count.

0 commit comments

Comments
 (0)