Code Duplication    Length = 35-37 lines in 2 locations

src/FeedIo/Rule/Atom/Image.php 1 location

@@ 19-53 (lines=35) @@
16
use FeedIo\Feed\NodeInterface;
17
use FeedIo\RuleAbstract;
18
19
class Image extends RuleAbstract
20
{
21
	// https://tools.ietf.org/html/rfc4287#section-4.2.8
22
    const NODE_NAME = 'logo';
23
24
    /**
25
     * @param  NodeInterface $node
26
     * @param  \DOMElement   $element
27
     */
28
    public function setProperty(NodeInterface $node, \DOMElement $element) : void
29
    {
30
		if ($node instanceof FeedInterface) {
31
            $node->setImage($element->nodeValue);
32
        }
33
    }
34
35
    /**
36
     * @inheritDoc
37
     */
38
    protected function hasValue(NodeInterface $node) : bool
39
    {
40
		return $node instanceof FeedInterface && !! $node->getImage();
41
    }
42
43
    /**
44
     * @inheritDoc
45
     */
46
    protected function addElement(\DomDocument $document, \DOMElement $rootElement, NodeInterface $node) : void
47
    {
48
		if (!($node instanceof FeedInterface) || is_null($node->getImage())) {
49
            return;
50
        }
51
        $rootElement->appendChild($document->createElement($this->getNodeName(), $node->getImage()));
52
    }
53
}
54

src/FeedIo/Rule/Language.php 1 location

@@ 17-53 (lines=37) @@
14
use FeedIo\FeedInterface;
15
use FeedIo\RuleAbstract;
16
17
class Language extends RuleAbstract
18
{
19
    const NODE_NAME = 'language';
20
21
    /**
22
     * @param  NodeInterface $node
23
     * @param  \DOMElement   $element
24
     */
25
    public function setProperty(NodeInterface $node, \DOMElement $element): void
26
    {
27
        if ($node instanceof FeedInterface) {
28
            $node->set(static::NODE_NAME, $element->nodeValue);
29
        }
30
    }
31
32
    /**
33
     * @inheritDoc
34
     */
35
    protected function hasValue(NodeInterface $node) : bool
36
    {
37
        return $node instanceof FeedInterface && !! $node->getLanguage();
38
    }
39
40
    /**
41
     * creates the accurate DomElement content according to the $item's property
42
     *
43
     * @param  \DomDocument  $document
44
     * @param  NodeInterface $node
45
     */
46
    public function addElement(\DomDocument $document, \DOMElement $rootElement, NodeInterface $node): void
47
    {
48
        if (!($node instanceof FeedInterface) || is_null($node->getLanguage())) {
49
            return;
50
        }
51
        $rootElement->appendChild($document->createElement($this->getNodeName(), $node->getLanguage()));
52
    }
53
}
54