Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
4 / 4 |
CRAP | |
100.00% |
17 / 17 |
ValueCollectionTrait | |
100.00% |
1 / 1 |
|
100.00% |
4 / 4 |
8 | |
100.00% |
17 / 17 |
add | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
remove | |
100.00% |
1 / 1 |
2 | |
100.00% |
4 / 4 |
|||
addAll | |
100.00% |
1 / 1 |
2 | |
100.00% |
4 / 4 |
|||
removeAll | |
100.00% |
1 / 1 |
3 | |
100.00% |
7 / 7 |
<?php | |
/** | |
* This file is part of the Hephaistos project management API. | |
* | |
* As each files provides by the CSCFA, this file is licensed | |
* under the MIT license. | |
* | |
* PHP version 5.6 | |
* | |
* @category Trait | |
* @package Hephaistos | |
* @author matthieu vallance <matthieu.vallance@cscfa.fr> | |
* @license MIT <https://opensource.org/licenses/MIT> | |
* @link http://cscfa.fr | |
*/ | |
namespace CSDT\CollectionsBundle\TraitCollection; | |
/** | |
* Value collection trait | |
* | |
* This trait define the base logic | |
* of the value collection. | |
* | |
* @category Trait | |
* @package Hephaistos | |
* @author matthieu vallance <matthieu.vallance@cscfa.fr> | |
* @license MIT <https://opensource.org/licenses/MIT> | |
* @link http://cscfa.fr | |
*/ | |
trait ValueCollectionTrait | |
{ | |
/** | |
* Add | |
* | |
* This method is used to add a new | |
* element to the collection. | |
* | |
* @param mixed $value The value to add | |
* | |
* @return ValueCollectionInterface | |
*/ | |
public function add($value) | |
{ | |
$this->content[] = $value; | |
return $this; | |
} | |
/** | |
* Remove | |
* | |
* This method is used to remove an | |
* element from the collection. It | |
* return the removed element or null | |
* if no one is removed. | |
* | |
* @param mixed $value The value to remove | |
* | |
* @return mixed|null | |
*/ | |
public function remove($value) | |
{ | |
if ($this->contain($value)) { | |
unset($this->content[array_search($value, $this->content)]); | |
return $value; | |
} | |
return null; | |
} | |
/** | |
* Add all | |
* | |
* This method is used to add a list | |
* of new element to the collection. | |
* | |
* @param array $values The value list to add | |
* | |
* @return ValueCollectionInterface | |
*/ | |
public function addAll(array $values) | |
{ | |
foreach ($values as $value) { | |
$this->add($value); | |
} | |
return $this; | |
} | |
/** | |
* Remove all | |
* | |
* This method is used to remove a list | |
* of element from the collection. It | |
* return a list of removed elements. | |
* | |
* @param array $values The list of value to remove | |
* | |
* @return array | |
*/ | |
public function removeAll(array $values) | |
{ | |
$removedValues = array(); | |
foreach ($values as $value) { | |
if ($this->remove($value) !== null) { | |
$removedValues[] = $value; | |
} | |
} | |
return $removedValues; | |
} | |
} |