summaryrefslogtreecommitdiff
path: root/framework/Web/UI/ActiveControls/TMapCollectionDiff.php
diff options
context:
space:
mode:
Diffstat (limited to 'framework/Web/UI/ActiveControls/TMapCollectionDiff.php')
-rw-r--r--framework/Web/UI/ActiveControls/TMapCollectionDiff.php40
1 files changed, 40 insertions, 0 deletions
diff --git a/framework/Web/UI/ActiveControls/TMapCollectionDiff.php b/framework/Web/UI/ActiveControls/TMapCollectionDiff.php
new file mode 100644
index 00000000..ff8a4dfe
--- /dev/null
+++ b/framework/Web/UI/ActiveControls/TMapCollectionDiff.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * TActiveControlAdapter and TCallbackPageStateTracker class file.
+ *
+ * @author Wei Zhuo <weizhuo[at]gamil[dot]com>
+ * @link http://www.pradosoft.com/
+ * @copyright Copyright &copy; 2005-2014 PradoSoft
+ * @license http://www.pradosoft.com/license/
+ * @package System.Web.UI.ActiveControls
+ */
+
+/**
+ * TMapCollectionDiff class.
+ *
+ * Calculate the changes to attributes collection.
+ *
+ * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
+ * @package System.Web.UI.ActiveControls
+ * @since 3.1
+ */
+class TMapCollectionDiff extends TViewStateDiff
+{
+ /**
+ * @return array updates to the attributes collection.
+ */
+ public function getDifference()
+ {
+ if($this->_old===null)
+ {
+ return ($this->_new!==null) ? $this->_new->toArray() : $this->_null;
+ }
+ else
+ {
+ $new = $this->_new->toArray();
+ $old = $this->_old->toArray();
+ $diff = array_diff_assoc($new, $old);
+ return count($diff) > 0 ? $diff : $this->_null;
+ }
+ }
+} \ No newline at end of file