summaryrefslogtreecommitdiff
path: root/lib/prado/framework/Collections
diff options
context:
space:
mode:
Diffstat (limited to 'lib/prado/framework/Collections')
-rw-r--r--lib/prado/framework/Collections/TAttributeCollection.php15
-rw-r--r--lib/prado/framework/Collections/TDummyDataSource.php2
-rw-r--r--lib/prado/framework/Collections/TList.php75
-rw-r--r--lib/prado/framework/Collections/TListItemCollection.php2
-rw-r--r--lib/prado/framework/Collections/TMap.php89
-rw-r--r--lib/prado/framework/Collections/TPagedDataSource.php2
-rw-r--r--lib/prado/framework/Collections/TPagedList.php4
-rw-r--r--lib/prado/framework/Collections/TPriorityList.php2
-rw-r--r--lib/prado/framework/Collections/TPriorityMap.php2
-rw-r--r--lib/prado/framework/Collections/TQueue.php2
-rw-r--r--lib/prado/framework/Collections/TStack.php2
11 files changed, 42 insertions, 155 deletions
diff --git a/lib/prado/framework/Collections/TAttributeCollection.php b/lib/prado/framework/Collections/TAttributeCollection.php
index a0f14ef..eb3cb29 100644
--- a/lib/prado/framework/Collections/TAttributeCollection.php
+++ b/lib/prado/framework/Collections/TAttributeCollection.php
@@ -4,7 +4,7 @@
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link https://github.com/pradosoft/prado
- * @copyright Copyright &copy; 2005-2015 The PRADO Group
+ * @copyright Copyright &copy; 2005-2016 The PRADO Group
* @license https://github.com/pradosoft/prado/blob/master/COPYRIGHT
* @package System.Collections
*/
@@ -45,6 +45,19 @@ class TAttributeCollection extends TMap
private $_caseSensitive=false;
/**
+ * Returns an array with the names of all variables of this object that should NOT be serialized
+ * because their value is the default one or useless to be cached for the next page loads.
+ * Reimplement in derived classes to add new variables, but remember to also to call the parent
+ * implementation first.
+ */
+ protected function _getZappableSleepProps(&$exprops)
+ {
+ parent::_getZappableSleepProps($exprops);
+ if ($this->_caseSensitive===false)
+ $exprops[] = "\0TAttributeCollection\0_caseSensitive";
+ }
+
+ /**
* Returns a property value or an event handler list by property or event name.
* This method overrides the parent implementation by returning
* a key value if the key exists in the collection.
diff --git a/lib/prado/framework/Collections/TDummyDataSource.php b/lib/prado/framework/Collections/TDummyDataSource.php
index 6aaaeaa..275d847 100644
--- a/lib/prado/framework/Collections/TDummyDataSource.php
+++ b/lib/prado/framework/Collections/TDummyDataSource.php
@@ -4,7 +4,7 @@
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link https://github.com/pradosoft/prado
- * @copyright Copyright &copy; 2005-2015 The PRADO Group
+ * @copyright Copyright &copy; 2005-2016 The PRADO Group
* @license https://github.com/pradosoft/prado/blob/master/COPYRIGHT
* @package System.Collections
*/
diff --git a/lib/prado/framework/Collections/TList.php b/lib/prado/framework/Collections/TList.php
index bba0dae..6e9e16f 100644
--- a/lib/prado/framework/Collections/TList.php
+++ b/lib/prado/framework/Collections/TList.php
@@ -4,7 +4,7 @@
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link https://github.com/pradosoft/prado
- * @copyright Copyright &copy; 2005-2015 The PRADO Group
+ * @copyright Copyright &copy; 2005-2016 The PRADO Group
* @license https://github.com/pradosoft/prado/blob/master/COPYRIGHT
* @package System.Collections
*/
@@ -406,78 +406,7 @@ class TList extends TComponent implements IteratorAggregate,ArrayAccess,Countabl
* @package System.Collections
* @since 3.0
*/
-class TListIterator implements Iterator
+class TListIterator extends ArrayIterator
{
- /**
- * @var array the data to be iterated through
- */
- private $_d;
- /**
- * @var integer index of the current item
- */
- private $_i;
- /**
- * @var integer count of the data items
- */
- private $_c;
-
- /**
- * Constructor.
- * @param array the data to be iterated through
- */
- public function __construct(&$data)
- {
- $this->_d=&$data;
- $this->_i=0;
- $this->_c=count($this->_d);
- }
-
- /**
- * Rewinds internal array pointer.
- * This method is required by the interface Iterator.
- */
- public function rewind()
- {
- $this->_i=0;
- }
-
- /**
- * Returns the key of the current array item.
- * This method is required by the interface Iterator.
- * @return integer the key of the current array item
- */
- public function key()
- {
- return $this->_i;
- }
-
- /**
- * Returns the current array item.
- * This method is required by the interface Iterator.
- * @return mixed the current array item
- */
- public function current()
- {
- return $this->_d[$this->_i];
- }
-
- /**
- * Moves the internal pointer to the next array item.
- * This method is required by the interface Iterator.
- */
- public function next()
- {
- $this->_i++;
- }
-
- /**
- * Returns whether there is an item at current position.
- * This method is required by the interface Iterator.
- * @return boolean
- */
- public function valid()
- {
- return $this->_i<$this->_c;
- }
}
diff --git a/lib/prado/framework/Collections/TListItemCollection.php b/lib/prado/framework/Collections/TListItemCollection.php
index ed00146..5c146b6 100644
--- a/lib/prado/framework/Collections/TListItemCollection.php
+++ b/lib/prado/framework/Collections/TListItemCollection.php
@@ -6,7 +6,7 @@
* @author Robin J. Rogge <rojaro@gmail.com>
* @author Qiang Xue <qiang.xue@gmail.com>
* @link https://github.com/pradosoft/prado
- * @copyright Copyright &copy; 2005-2015 The PRADO Group
+ * @copyright Copyright &copy; 2005-2016 The PRADO Group
* @license https://github.com/pradosoft/prado/blob/master/COPYRIGHT
* @package System.Collections
*/
diff --git a/lib/prado/framework/Collections/TMap.php b/lib/prado/framework/Collections/TMap.php
index d610dce..017f70b 100644
--- a/lib/prado/framework/Collections/TMap.php
+++ b/lib/prado/framework/Collections/TMap.php
@@ -4,7 +4,7 @@
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link https://github.com/pradosoft/prado
- * @copyright Copyright &copy; 2005-2015 The PRADO Group
+ * @copyright Copyright &copy; 2005-2016 The PRADO Group
* @license https://github.com/pradosoft/prado/blob/master/COPYRIGHT
* @package System.Collections
*/
@@ -42,6 +42,21 @@ class TMap extends TComponent implements IteratorAggregate,ArrayAccess,Countable
private $_r=false;
/**
+ * Returns an array with the names of all variables of this object that should NOT be serialized
+ * because their value is the default one or useless to be cached for the next page loads.
+ * Reimplement in derived classes to add new variables, but remember to also to call the parent
+ * implementation first.
+ */
+ protected function _getZappableSleepProps(&$exprops)
+ {
+ parent::_getZappableSleepProps($exprops);
+ if ($this->_d===array())
+ $exprops[] = "\0TMap\0_d";
+ if ($this->_r===false)
+ $exprops[] = "\0TMap\0_r";
+ }
+
+ /**
* Constructor.
* Initializes the list with an array or an iterable object.
* @param array|Iterator the intial data. Default is null, meaning no initialization.
@@ -275,76 +290,6 @@ class TMap extends TComponent implements IteratorAggregate,ArrayAccess,Countable
* @package System.Collections
* @since 3.0
*/
-class TMapIterator implements Iterator
+class TMapIterator extends ArrayIterator
{
- /**
- * @var array the data to be iterated through
- */
- private $_d;
- /**
- * @var array list of keys in the map
- */
- private $_keys;
- /**
- * @var mixed current key
- */
- private $_key;
-
- /**
- * Constructor.
- * @param array the data to be iterated through
- */
- public function __construct(&$data)
- {
- $this->_d=&$data;
- $this->_keys=array_keys($data);
- }
-
- /**
- * Rewinds internal array pointer.
- * This method is required by the interface Iterator.
- */
- public function rewind()
- {
- $this->_key=reset($this->_keys);
- }
-
- /**
- * Returns the key of the current array element.
- * This method is required by the interface Iterator.
- * @return mixed the key of the current array element
- */
- public function key()
- {
- return $this->_key;
- }
-
- /**
- * Returns the current array element.
- * This method is required by the interface Iterator.
- * @return mixed the current array element
- */
- public function current()
- {
- return $this->_d[$this->_key];
- }
-
- /**
- * Moves the internal pointer to the next array element.
- * This method is required by the interface Iterator.
- */
- public function next()
- {
- $this->_key=next($this->_keys);
- }
-
- /**
- * Returns whether there is an element at current position.
- * This method is required by the interface Iterator.
- * @return boolean
- */
- public function valid()
- {
- return $this->_key!==false;
- }
}
diff --git a/lib/prado/framework/Collections/TPagedDataSource.php b/lib/prado/framework/Collections/TPagedDataSource.php
index ec0b895..7fe43e5 100644
--- a/lib/prado/framework/Collections/TPagedDataSource.php
+++ b/lib/prado/framework/Collections/TPagedDataSource.php
@@ -4,7 +4,7 @@
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link https://github.com/pradosoft/prado
- * @copyright Copyright &copy; 2005-2015 The PRADO Group
+ * @copyright Copyright &copy; 2005-2016 The PRADO Group
* @license https://github.com/pradosoft/prado/blob/master/COPYRIGHT
* @package System.Collections
*/
diff --git a/lib/prado/framework/Collections/TPagedList.php b/lib/prado/framework/Collections/TPagedList.php
index 118bba1..a933b4e 100644
--- a/lib/prado/framework/Collections/TPagedList.php
+++ b/lib/prado/framework/Collections/TPagedList.php
@@ -4,7 +4,7 @@
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link https://github.com/pradosoft/prado
- * @copyright Copyright &copy; 2005-2015 The PRADO Group
+ * @copyright Copyright &copy; 2005-2016 The PRADO Group
* @license https://github.com/pradosoft/prado/blob/master/COPYRIGHT
* @package System.Collections
*/
@@ -295,7 +295,7 @@ class TPagedList extends TList
else
{
$data=$this->toArray();
- return new TListIterator($data);
+ return new ArrayIterator($data);
}
}
diff --git a/lib/prado/framework/Collections/TPriorityList.php b/lib/prado/framework/Collections/TPriorityList.php
index ad548dc..06dbae0 100644
--- a/lib/prado/framework/Collections/TPriorityList.php
+++ b/lib/prado/framework/Collections/TPriorityList.php
@@ -4,7 +4,7 @@
*
* @author Brad Anderson <javalizard@gmail.com>
* @link https://github.com/pradosoft/prado
- * @copyright Copyright &copy; 2005-2015 The PRADO Group
+ * @copyright Copyright &copy; 2005-2016 The PRADO Group
* @license https://github.com/pradosoft/prado/blob/master/COPYRIGHT
* @package System.Collections
*/
diff --git a/lib/prado/framework/Collections/TPriorityMap.php b/lib/prado/framework/Collections/TPriorityMap.php
index 9af10da..eebb81b 100644
--- a/lib/prado/framework/Collections/TPriorityMap.php
+++ b/lib/prado/framework/Collections/TPriorityMap.php
@@ -4,7 +4,7 @@
*
* @author Brad Anderson <javalizard@mac.com>
* @link https://github.com/pradosoft/prado
- * @copyright Copyright &copy; 2005-2015 The PRADO Group
+ * @copyright Copyright &copy; 2005-2016 The PRADO Group
* @license https://github.com/pradosoft/prado/blob/master/COPYRIGHT
* @package System.Collections
*/
diff --git a/lib/prado/framework/Collections/TQueue.php b/lib/prado/framework/Collections/TQueue.php
index 6c989e2..ac6f9df 100644
--- a/lib/prado/framework/Collections/TQueue.php
+++ b/lib/prado/framework/Collections/TQueue.php
@@ -4,7 +4,7 @@
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link https://github.com/pradosoft/prado
- * @copyright Copyright &copy; 2005-2015 The PRADO Group
+ * @copyright Copyright &copy; 2005-2016 The PRADO Group
* @license https://github.com/pradosoft/prado/blob/master/COPYRIGHT
* @version $Id$
* @package System.Collections
diff --git a/lib/prado/framework/Collections/TStack.php b/lib/prado/framework/Collections/TStack.php
index de78527..8bb4216 100644
--- a/lib/prado/framework/Collections/TStack.php
+++ b/lib/prado/framework/Collections/TStack.php
@@ -4,7 +4,7 @@
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link https://github.com/pradosoft/prado
- * @copyright Copyright &copy; 2005-2015 The PRADO Group
+ * @copyright Copyright &copy; 2005-2016 The PRADO Group
* @license https://github.com/pradosoft/prado/blob/master/COPYRIGHT
* @package System.Collections
*/