diff options
Diffstat (limited to 'framework/Collections/TAttributeCollection.php')
-rw-r--r-- | framework/Collections/TAttributeCollection.php | 342 |
1 files changed, 171 insertions, 171 deletions
diff --git a/framework/Collections/TAttributeCollection.php b/framework/Collections/TAttributeCollection.php index dd5fa273..85f9b23d 100644 --- a/framework/Collections/TAttributeCollection.php +++ b/framework/Collections/TAttributeCollection.php @@ -1,172 +1,172 @@ -<?php
-/**
- * TAttributeCollection classes
- *
- * @author Qiang Xue <qiang.xue@gmail.com>
- * @link http://www.pradosoft.com/
+<?php +/** + * TAttributeCollection classes + * + * @author Qiang Xue <qiang.xue@gmail.com> + * @link http://www.pradosoft.com/ * @copyright Copyright © 2005-2012 PradoSoft - * @license http://www.pradosoft.com/license/
- * @version $Id$
- * @package System.Collections
- */
-
-/**
- * Includes TMap class
- */
-Prado::using('System.Collections.TMap');
-
-/**
- * TAttributeCollection class
- *
- * TAttributeCollection implements a collection for storing attribute names and values.
- *
- * Besides all functionalities provided by {@link TMap}, TAttributeCollection
- * allows you to get and set attribute values like getting and setting
- * properties. For example, the following usages are all valid for a
- * TAttributeCollection object:
- * <code>
- * $collection->Text='text';
- * echo $collection->Text;
- * </code>
- * They are equivalent to the following:
- * <code>
- * $collection->add('Text','text');
- * echo $collection->itemAt('Text');
- * </code>
- *
- * Note, attribute names are case-insensitive. They are converted to lower-case
- * in the collection storage.
- *
- * @author Qiang Xue <qiang.xue@gmail.com>
- * @version $Id$
- * @package System.Collections
- * @since 3.0
- */
-class TAttributeCollection extends TMap
-{
- private $_caseSensitive=false;
-
- /**
- * 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.
- * @param string the property name or the event name
- * @return mixed the property value or the event handler list
- * @throws TInvalidOperationException if the property/event is not defined.
- */
- public function __get($name)
- {
- return $this->contains($name)?$this->itemAt($name):parent::__get($name);
- }
-
- /**
- * Sets value of a component property.
- * This method overrides the parent implementation by adding a new key value
- * to the collection.
- * @param string the property name or event name
- * @param mixed the property value or event handler
- * @throws TInvalidOperationException If the property is not defined or read-only.
- */
- public function __set($name,$value)
- {
- $this->add($name,$value);
- }
-
- /**
- * @return boolean whether the keys are case-sensitive. Defaults to false.
- */
- public function getCaseSensitive()
- {
- return $this->_caseSensitive;
- }
-
- /**
- * @param boolean whether the keys are case-sensitive.
- */
- public function setCaseSensitive($value)
- {
- $this->_caseSensitive=TPropertyValue::ensureBoolean($value);
- }
-
- /**
- * Returns the item with the specified key.
- * This overrides the parent implementation by converting the key to lower case first if CaseSensitive is false.
- * @param mixed the key
- * @return mixed the element at the offset, null if no element is found at the offset
- */
- public function itemAt($key)
- {
- return parent::itemAt($this->_caseSensitive?$key:strtolower($key));
- }
-
-
- /**
- * Adds an item into the map.
- * This overrides the parent implementation by converting the key to lower case first if CaseSensitive is false.
- * @param mixed key
- * @param mixed value
- */
- public function add($key,$value)
- {
- parent::add($this->_caseSensitive?$key:strtolower($key),$value);
- }
-
- /**
- * Removes an item from the map by its key.
- * This overrides the parent implementation by converting the key to lower case first if CaseSensitive is false.
- * @param mixed the key of the item to be removed
- * @return mixed the removed value, null if no such key exists.
- */
- public function remove($key)
- {
- return parent::remove($this->_caseSensitive?$key:strtolower($key));
- }
-
- /**
- * Returns whether the specified is in the map.
- * This overrides the parent implementation by converting the key to lower case first if CaseSensitive is false.
- * @param mixed the key
- * @return boolean whether the map contains an item with the specified key
- */
- public function contains($key)
- {
- return parent::contains($this->_caseSensitive?$key:strtolower($key));
- }
-
- /**
- * Determines whether a property is defined.
- * This method overrides parent implementation by returning true
- * if the collection contains the named key.
- * @param string the property name
- * @return boolean whether the property is defined
- */
- public function hasProperty($name)
- {
- return $this->contains($name) || parent::hasProperty($name);
- }
-
- /**
- * Determines whether a property can be read.
- * This method overrides parent implementation by returning true
- * if the collection contains the named key.
- * @param string the property name
- * @return boolean whether the property can be read
- */
- public function canGetProperty($name)
- {
- return $this->contains($name) || parent::canGetProperty($name);
- }
-
- /**
- * Determines whether a property can be set.
- * This method overrides parent implementation by always returning true
- * because you can always add a new value to the collection.
- * @param string the property name
- * @return boolean true
- */
- public function canSetProperty($name)
- {
- return true;
- }
-}
-
+ * @license http://www.pradosoft.com/license/ + * @version $Id$ + * @package System.Collections + */ + +/** + * Includes TMap class + */ +Prado::using('System.Collections.TMap'); + +/** + * TAttributeCollection class + * + * TAttributeCollection implements a collection for storing attribute names and values. + * + * Besides all functionalities provided by {@link TMap}, TAttributeCollection + * allows you to get and set attribute values like getting and setting + * properties. For example, the following usages are all valid for a + * TAttributeCollection object: + * <code> + * $collection->Text='text'; + * echo $collection->Text; + * </code> + * They are equivalent to the following: + * <code> + * $collection->add('Text','text'); + * echo $collection->itemAt('Text'); + * </code> + * + * Note, attribute names are case-insensitive. They are converted to lower-case + * in the collection storage. + * + * @author Qiang Xue <qiang.xue@gmail.com> + * @version $Id$ + * @package System.Collections + * @since 3.0 + */ +class TAttributeCollection extends TMap +{ + private $_caseSensitive=false; + + /** + * 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. + * @param string the property name or the event name + * @return mixed the property value or the event handler list + * @throws TInvalidOperationException if the property/event is not defined. + */ + public function __get($name) + { + return $this->contains($name)?$this->itemAt($name):parent::__get($name); + } + + /** + * Sets value of a component property. + * This method overrides the parent implementation by adding a new key value + * to the collection. + * @param string the property name or event name + * @param mixed the property value or event handler + * @throws TInvalidOperationException If the property is not defined or read-only. + */ + public function __set($name,$value) + { + $this->add($name,$value); + } + + /** + * @return boolean whether the keys are case-sensitive. Defaults to false. + */ + public function getCaseSensitive() + { + return $this->_caseSensitive; + } + + /** + * @param boolean whether the keys are case-sensitive. + */ + public function setCaseSensitive($value) + { + $this->_caseSensitive=TPropertyValue::ensureBoolean($value); + } + + /** + * Returns the item with the specified key. + * This overrides the parent implementation by converting the key to lower case first if CaseSensitive is false. + * @param mixed the key + * @return mixed the element at the offset, null if no element is found at the offset + */ + public function itemAt($key) + { + return parent::itemAt($this->_caseSensitive?$key:strtolower($key)); + } + + + /** + * Adds an item into the map. + * This overrides the parent implementation by converting the key to lower case first if CaseSensitive is false. + * @param mixed key + * @param mixed value + */ + public function add($key,$value) + { + parent::add($this->_caseSensitive?$key:strtolower($key),$value); + } + + /** + * Removes an item from the map by its key. + * This overrides the parent implementation by converting the key to lower case first if CaseSensitive is false. + * @param mixed the key of the item to be removed + * @return mixed the removed value, null if no such key exists. + */ + public function remove($key) + { + return parent::remove($this->_caseSensitive?$key:strtolower($key)); + } + + /** + * Returns whether the specified is in the map. + * This overrides the parent implementation by converting the key to lower case first if CaseSensitive is false. + * @param mixed the key + * @return boolean whether the map contains an item with the specified key + */ + public function contains($key) + { + return parent::contains($this->_caseSensitive?$key:strtolower($key)); + } + + /** + * Determines whether a property is defined. + * This method overrides parent implementation by returning true + * if the collection contains the named key. + * @param string the property name + * @return boolean whether the property is defined + */ + public function hasProperty($name) + { + return $this->contains($name) || parent::hasProperty($name); + } + + /** + * Determines whether a property can be read. + * This method overrides parent implementation by returning true + * if the collection contains the named key. + * @param string the property name + * @return boolean whether the property can be read + */ + public function canGetProperty($name) + { + return $this->contains($name) || parent::canGetProperty($name); + } + + /** + * Determines whether a property can be set. + * This method overrides parent implementation by always returning true + * because you can always add a new value to the collection. + * @param string the property name + * @return boolean true + */ + public function canSetProperty($name) + { + return true; + } +} + |