Version 1
[yaffs-website] / vendor / caxy / php-htmldiff / lib / Caxy / HtmlDiff / Table / DiffRowPosition.php
diff --git a/vendor/caxy/php-htmldiff/lib/Caxy/HtmlDiff/Table/DiffRowPosition.php b/vendor/caxy/php-htmldiff/lib/Caxy/HtmlDiff/Table/DiffRowPosition.php
new file mode 100644 (file)
index 0000000..3e05841
--- /dev/null
@@ -0,0 +1,267 @@
+<?php
+
+namespace Caxy\HtmlDiff\Table;
+
+/**
+ * Class DiffRowPosition.
+ */
+class DiffRowPosition
+{
+    /**
+     * @var int
+     */
+    protected $indexInOld;
+
+    /**
+     * @var int
+     */
+    protected $indexInNew;
+
+    /**
+     * @var int
+     */
+    protected $columnInOld;
+
+    /**
+     * @var int
+     */
+    protected $columnInNew;
+
+    /**
+     * DiffRowPosition constructor.
+     *
+     * @param int $indexInOld
+     * @param int $indexInNew
+     * @param int $columnInOld
+     * @param int $columnInNew
+     */
+    public function __construct($indexInOld = 0, $indexInNew = 0, $columnInOld = 0, $columnInNew = 0)
+    {
+        $this->indexInOld = $indexInOld;
+        $this->indexInNew = $indexInNew;
+        $this->columnInOld = $columnInOld;
+        $this->columnInNew = $columnInNew;
+    }
+
+    /**
+     * @return int
+     */
+    public function getIndexInOld()
+    {
+        return $this->indexInOld;
+    }
+
+    /**
+     * @param int $indexInOld
+     *
+     * @return DiffRowPosition
+     */
+    public function setIndexInOld($indexInOld)
+    {
+        $this->indexInOld = $indexInOld;
+
+        return $this;
+    }
+
+    /**
+     * @return int
+     */
+    public function getIndexInNew()
+    {
+        return $this->indexInNew;
+    }
+
+    /**
+     * @param int $indexInNew
+     *
+     * @return DiffRowPosition
+     */
+    public function setIndexInNew($indexInNew)
+    {
+        $this->indexInNew = $indexInNew;
+
+        return $this;
+    }
+
+    /**
+     * @return int
+     */
+    public function getColumnInOld()
+    {
+        return $this->columnInOld;
+    }
+
+    /**
+     * @param int $columnInOld
+     *
+     * @return DiffRowPosition
+     */
+    public function setColumnInOld($columnInOld)
+    {
+        $this->columnInOld = $columnInOld;
+
+        return $this;
+    }
+
+    /**
+     * @return int
+     */
+    public function getColumnInNew()
+    {
+        return $this->columnInNew;
+    }
+
+    /**
+     * @param int $columnInNew
+     *
+     * @return DiffRowPosition
+     */
+    public function setColumnInNew($columnInNew)
+    {
+        $this->columnInNew = $columnInNew;
+
+        return $this;
+    }
+
+    /**
+     * @param int $increment
+     *
+     * @return int
+     */
+    public function incrementColumnInNew($increment = 1)
+    {
+        $this->columnInNew += $increment;
+
+        return $this->columnInNew;
+    }
+
+    /**
+     * @param int $increment
+     *
+     * @return int
+     */
+    public function incrementColumnInOld($increment = 1)
+    {
+        $this->columnInOld += $increment;
+
+        return $this->columnInOld;
+    }
+
+    /**
+     * @param int $increment
+     *
+     * @return int
+     */
+    public function incrementIndexInNew($increment = 1)
+    {
+        $this->indexInNew += $increment;
+
+        return $this->indexInNew;
+    }
+
+    /**
+     * @param int $increment
+     *
+     * @return int
+     */
+    public function incrementIndexInOld($increment = 1)
+    {
+        $this->indexInOld += $increment;
+
+        return $this->indexInOld;
+    }
+
+    /**
+     * @param string $type
+     * @param int    $increment
+     *
+     * @return int
+     */
+    public function incrementIndex($type, $increment = 1)
+    {
+        if ($type === 'new') {
+            return $this->incrementIndexInNew($increment);
+        }
+
+        return $this->incrementIndexInOld($increment);
+    }
+
+    /**
+     * @param string $type
+     * @param int    $increment
+     *
+     * @return int
+     */
+    public function incrementColumn($type, $increment = 1)
+    {
+        if ($type === 'new') {
+            return $this->incrementColumnInNew($increment);
+        }
+
+        return $this->incrementColumnInOld($increment);
+    }
+
+    /**
+     * @param string $type
+     *
+     * @return bool
+     */
+    public function isColumnLessThanOther($type)
+    {
+        if ($type === 'new') {
+            return $this->getColumnInNew() < $this->getColumnInOld();
+        }
+
+        return $this->getColumnInOld() < $this->getColumnInNew();
+    }
+
+    /**
+     * @param string $type
+     *
+     * @return int
+     */
+    public function getColumn($type)
+    {
+        if ($type === 'new') {
+            return $this->getColumnInNew();
+        }
+
+        return $this->getColumnInOld();
+    }
+
+    /**
+     * @param string $type
+     *
+     * @return int
+     */
+    public function getIndex($type)
+    {
+        if ($type === 'new') {
+            return $this->getIndexInNew();
+        }
+
+        return $this->getIndexInOld();
+    }
+
+    /**
+     * @return bool
+     */
+    public function areColumnsEqual()
+    {
+        return $this->getColumnInOld() === $this->getColumnInNew();
+    }
+
+    /**
+     * @return null|string
+     */
+    public function getLesserColumnType()
+    {
+        if ($this->isColumnLessThanOther('new')) {
+            return 'new';
+        } elseif ($this->isColumnLessThanOther('old')) {
+            return 'old';
+        }
+
+        return;
+    }
+}