/**
* Filter modules by codepool, status and vendor if such options were inputted by user
*
* @param InputInterface $input
* @return Modules
*/
public function filterModules(InputInterface $input)
{
$filtered = $this->list;
if ($input->getOption('codepool')) {
$filtered = ArrayFunctions::matrixFilterByValue($filtered, "codePool", $input->getOption('codepool'));
}
if ($input->getOption('status')) {
$filtered = ArrayFunctions::matrixFilterByValue($filtered, 'Status', $input->getOption('status'));
}
if ($input->getOption('vendor')) {
$filtered = ArrayFunctions::matrixFilterStartswith($filtered, 'Name', $input->getOption('vendor'));
}
return new self($filtered);
}