Files
Phraseanet/lib/Alchemy/Phrasea/Media/ArrayTechnicalDataSet.php
Benoît Burnichon 1e18b3e69f This is a combination of 33 commits.
- Squashed Pull request #1730
- Squashed Pull request #1741
- Squashed Pull request #1742
- Squash merge branch 4.0
- Squashed Pull request #1744
- Squashed Pull request #1746
- Squashed merge branch 4.0
- Squashed merge branch 4.0
- Squashed merge branch 4.0
- Squashed merge branch 4.0
- Squashed Pull request #1758
- Avoid using imagine/imagine alias as it is causing install issues
- Squashed merge branch 4.0
- Squashed Pull request #1763
- Squashed merge branch 4.0
- Squash of 6 commits
- Squashed merge branch 4.0
- This is a combination of 2 commits.
- Squashed Pull request #1775
- Squashed Pull request #1777
- Squashed Pull request #1779
- Squashed Pull request #1780
- Squashed Pull request #1782
- Adds a Pull request template
- Squased Pull request #1783
- Squash Pull request #1786
- Squashed Pull request #1796
- Squashed merge branch 4.0
- Squash Pull request #1791
- Squashed merge branch 4.0
- Squashed Pull request #1808
- Squashed Pull request #1811
- Squashed Pull request #1809
2016-04-20 16:22:14 +02:00

97 lines
1.9 KiB
PHP

<?php
/*
* This file is part of Phraseanet
*
* (c) 2005-2016 Alchemy
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Alchemy\Phrasea\Media;
use Assert\Assertion;
class ArrayTechnicalDataSet implements \IteratorAggregate, TechnicalDataSet
{
/** @var TechnicalData[] */
private $data = [];
/**
* @param TechnicalData[] $data
*/
public function __construct($data = [])
{
Assertion::isTraversable($data);
foreach ($data as $technicalData) {
$this[] = $technicalData;
}
}
public function getIterator()
{
return new \ArrayIterator($this->data);
}
public function offsetExists($offset)
{
if ($offset instanceof TechnicalData) {
$offset = $offset->getName();
}
return isset($this->data[$offset]);
}
public function offsetGet($offset)
{
return $this->data[$offset];
}
/**
* @param null|string $offset
* @param TechnicalData $value
*/
public function offsetSet($offset, $value)
{
Assertion::isInstanceOf($value, TechnicalData::class);
$name = $value->getName();
if (null !== $offset) {
Assertion::eq($name, $offset);
}
$this->data[$name] = $value;
}
public function offsetUnset($offset)
{
if ($offset instanceof TechnicalData) {
$offset = $offset->getName();
}
unset($this->data[$offset]);
}
public function count()
{
return count($this->data);
}
public function getValues()
{
$values = [];
foreach ($this->data as $key => $value) {
$values[$key] = $value->getValue();
}
return $values;
}
public function isEmpty()
{
return empty($this->data);
}
}