Code Duplication    Length = 14-25 lines in 4 locations

src/Model/Payment/TransactionCollection.php 1 location

@@ 17-41 (lines=25) @@
14
 * @method Transaction current()
15
 * @method Transaction getAt($offset)
16
 */
17
class TransactionCollection extends Collection
18
{
19
    const INTERACTION_ID = 'interactionId';
20
    protected $type = '\Commercetools\Core\Model\Payment\Transaction';
21
22
23
    protected function indexRow($offset, $row)
24
    {
25
        if ($row instanceof Transaction) {
26
            $id = $row->getInteractionId();
27
        } else {
28
            $id = isset($row[static::INTERACTION_ID]) ? $row[static::INTERACTION_ID] : null;
29
        }
30
        $this->addToIndex(static::INTERACTION_ID, $offset, $id);
31
    }
32
33
    /**
34
     * @param $id
35
     * @return Payment
36
     */
37
    public function getByInteractionId($id)
38
    {
39
        return $this->getBy(static::INTERACTION_ID, $id);
40
    }
41
}
42

src/Error/ErrorContainer.php 1 location

@@ 17-41 (lines=25) @@
14
 * @method ApiError current()
15
 * @method ApiError getAt($offset)
16
 */
17
class ErrorContainer extends Collection
18
{
19
    const CODE = 'code';
20
21
    protected $type = '\Commercetools\Core\Error\ApiError';
22
23
    protected function indexRow($offset, $row)
24
    {
25
        if ($row instanceof ApiError) {
26
            $id = $row->getCode();
27
        } else {
28
            $id = $row[static::CODE];
29
        }
30
        $this->addToIndex(static::CODE, $offset, $id);
31
    }
32
33
    /**
34
     * @param $code
35
     * @return ApiError
36
     */
37
    public function getByCode($code)
38
    {
39
        return $this->getBy(static::CODE, $code);
40
    }
41
}
42

src/Model/Product/ProductProjectionCollection.php 1 location

@@ 17-30 (lines=14) @@
14
 * @method ProductProjectionCollection add(ProductProjection $element)
15
 * @method ProductProjection getAt($offset)
16
 */
17
class ProductProjectionCollection extends Collection
18
{
19
    protected $type = '\Commercetools\Core\Model\Product\ProductProjection';
20
21
    protected function indexRow($offset, $row)
22
    {
23
        if ($row instanceof ProductProjection) {
24
            $id = $row->getId();
25
        } else {
26
            $id = isset($row[static::ID]) ? $row[static::ID]: null;
27
        }
28
        $this->addToIndex(static::ID, $offset, $id);
29
    }
30
}
31

src/Model/Common/AssetSourceCollection.php 1 location

@@ 15-39 (lines=25) @@
12
 * @method AssetSource current()
13
 * @method AssetSource getAt($offset)
14
 */
15
class AssetSourceCollection extends Collection
16
{
17
    const KEY = 'key';
18
19
    protected $type = '\Commercetools\Core\Model\Common\AssetSource';
20
21
    protected function indexRow($offset, $row)
22
    {
23
        if ($row instanceof AssetSource) {
24
            $key = $row->getKey();
25
        } else {
26
            $key = isset($row[static::KEY]) ? $row[static::KEY]: null;
27
        }
28
        $this->addToIndex(static::KEY, $offset, $key);
29
    }
30
31
    /**
32
     * @param string $key
33
     * @return AssetSource|null
34
     */
35
    public function getByKey($key)
36
    {
37
        return $this->getBy(static::KEY, $key);
38
    }
39
}
40