From d9fb4b20d14b9f090fa3d7c77d6c3134ca386dc9 Mon Sep 17 00:00:00 2001 From: javalizard <> Date: Mon, 4 Oct 2010 03:16:29 +0000 Subject: #247 Removed one redundant function. Change the unit test to reflect the function removal. --- framework/Collections/TPriorityList.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'framework/Collections') diff --git a/framework/Collections/TPriorityList.php b/framework/Collections/TPriorityList.php index 6ce93d49..ebb90b91 100644 --- a/framework/Collections/TPriorityList.php +++ b/framework/Collections/TPriorityList.php @@ -368,18 +368,28 @@ class TPriorityList extends TList * Removes an item from the priority list. * The list will search for the item. The first matching item found will be removed from the list. * @param mixed item the item to be removed. + * @param numeric priority of item to remove. without this parameter it defaults to false. + * A value of false means any priority. null will be filled in with the default priority. * @return integer index within the flattened list at which the item is being removed * @throws TInvalidDataValueException If the item does not exist */ - public function remove($item) + public function remove($item,$priority=false) { if($this->getReadOnly()) throw new TInvalidOperationException('list_readonly',get_class($this)); - if(($priority=$this->priorityOf($item, true))!==false) + if(($p=$this->priorityOf($item, true))!==false) { - $this->removeAtIndexInPriority($priority[1], $priority[0]); - return $priority[2]; + if($priority !== false) { + if($priority === null) + $priority = $this->getDefaultPriority(); + $priority = (string)round(TPropertyValue::ensureFloat($priority), $this->_p); + + if($p[0] != $priority) + throw new TInvalidDataValueException('list_item_inexistent'); + } + $this->removeAtIndexInPriority($p[1], $p[0]); + return $p[2]; } else throw new TInvalidDataValueException('list_item_inexistent'); -- cgit v1.2.3