xref: /web-bugs/src/Horde/Text/Diff/ThreeWay/Op/Base.php (revision e3c4b0ac)
1<?php
2/**
3 * Copyright 2007-2017 Horde LLC (http://www.horde.org/)
4 *
5 * See the enclosed file COPYING for license information (LGPL). If you did
6 * not receive this file, see http://www.horde.org/licenses/lgpl21.
7 *
8 * @package Text_Diff
9 * @author  Geoffrey T. Dairiki <dairiki@dairiki.org>
10 */
11class Horde_Text_Diff_ThreeWay_Op_Base
12{
13    public function __construct($orig = false, $final1 = false, $final2 = false)
14    {
15        $this->orig = $orig ? $orig : array();
16        $this->final1 = $final1 ? $final1 : array();
17        $this->final2 = $final2 ? $final2 : array();
18    }
19
20    public function merged()
21    {
22        if (!isset($this->_merged)) {
23            if ($this->final1 === $this->final2) {
24                $this->_merged = &$this->final1;
25            } elseif ($this->final1 === $this->orig) {
26                $this->_merged = &$this->final2;
27            } elseif ($this->final2 === $this->orig) {
28                $this->_merged = &$this->final1;
29            } else {
30                $this->_merged = false;
31            }
32        }
33
34        return $this->_merged;
35    }
36
37    public function isConflict()
38    {
39        return $this->merged() === false;
40    }
41}
42