File: /home/petsclubcc/magento/vendor/magento/framework/Data/Argument/Interpreter/ArrayType.php
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Data\Argument\Interpreter;
use Magento\Framework\Data\Argument\InterpreterInterface;
/**
* Interpreter of array data type that supports arrays of unlimited depth
*/
class ArrayType implements InterpreterInterface
{
/**
* Interpreter of individual array item
*
* @var InterpreterInterface
*/
private $itemInterpreter;
/**
* @param InterpreterInterface $itemInterpreter
*/
public function __construct(InterpreterInterface $itemInterpreter)
{
$this->itemInterpreter = $itemInterpreter;
}
/**
* {@inheritdoc}
* @return array
* @throws \InvalidArgumentException
*/
public function evaluate(array $data)
{
$items = isset($data['item']) ? $data['item'] : [];
if (!is_array($items)) {
throw new \InvalidArgumentException('Array items are expected.');
}
$result = [];
foreach ($items as $itemKey => $itemData) {
$result[$itemKey] = $this->itemInterpreter->evaluate($itemData);
}
return $result;
}
}