Code Duplication    Length = 35-37 lines in 2 locations

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

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

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