Code Duplication    Length = 40-41 lines in 2 locations

src/Observers/LinkAttributePositionUpdateObserver.php 1 location

@@ 34-73 (lines=40) @@
31
 * @link      https://github.com/techdivision/import-product-link
32
 * @link      http://www.techdivision.com
33
 */
34
class LinkAttributePositionUpdateObserver extends LinkAttributePositionObserver
35
{
36
37
    /**
38
     * Initialize the product link attribute with the passed attributes and returns an instance.
39
     *
40
     * @param array $attr The product link attribute
41
     *
42
     * @return array The initialized product link attribute
43
     */
44
    protected function initializeProductLinkAttributeInt(array $attr)
45
    {
46
47
        // load value/link/product link attribute ID
48
        $value = $attr[MemberNames::VALUE];
49
        $linkId = $attr[MemberNames::LINK_ID];
50
        $productLinkAttributeId = $attr[MemberNames::PRODUCT_LINK_ATTRIBUTE_ID];
51
52
        // try to load the product link attribute integer value with the passed product link attribute/link ID
53
        if ($entity = $this->loadProductLinkAttributeInt($productLinkAttributeId, $linkId)) {
54
            return $this->mergeEntity($entity, $attr);
55
        }
56
57
        // simply return the attributes
58
        return $attr;
59
    }
60
61
    /**
62
     * Return's the product link attribute integer value with the passed product link attribute/link ID.
63
     *
64
     * @param integer $productLinkAttributeId The product link attribute ID of the attributes
65
     * @param integer $linkId                 The link ID of the attribute
66
     *
67
     * @return array The product link attribute integer value
68
     */
69
    protected function loadProductLinkAttributeInt($productLinkAttributeId, $linkId)
70
    {
71
        return $this->getSubject()->loadProductLinkAttributeInt($productLinkAttributeId, $linkId);
72
    }
73
}
74

src/Observers/LinkUpdateObserver.php 1 location

@@ 34-74 (lines=41) @@
31
 * @link      https://github.com/techdivision/import-product-link
32
 * @link      http://www.techdivision.com
33
 */
34
class LinkUpdateObserver extends LinkObserver
35
{
36
37
    /**
38
     * Initialize the product link with the passed attributes and returns an instance.
39
     *
40
     * @param array $attr The product link attributes
41
     *
42
     * @return array The initialized product link
43
     */
44
    protected function initializeProductLink(array $attr)
45
    {
46
47
        // load the product/linked product/link type ID
48
        $productId = $attr[MemberNames::PRODUCT_ID];
49
        $linkTypeId = $attr[MemberNames::LINK_TYPE_ID];
50
        $linkedProductId = $attr[MemberNames::LINKED_PRODUCT_ID];
51
52
        // try to load the link with the passed product/linked product/link type ID
53
        if ($entity = $this->loadProductLink($productId, $linkedProductId, $linkTypeId)) {
54
            return $this->mergeEntity($entity, $attr);
55
        }
56
57
        // simply return the attributes
58
        return $attr;
59
    }
60
61
    /**
62
     * Load's the link with the passed product/linked product/link type ID.
63
     *
64
     * @param integer $productId       The product ID of the link to load
65
     * @param integer $linkedProductId The linked product ID of the link to load
66
     * @param integer $linkTypeId      The link type ID of the product to load
67
     *
68
     * @return array The link
69
     */
70
    protected function loadProductLink($productId, $linkedProductId, $linkTypeId)
71
    {
72
        return $this->getSubject()->loadProductLink($productId, $linkedProductId, $linkTypeId);
73
    }
74
}
75