File: /python/moda/public_html/tech/old/vendor/zbateson/mail-mime-parser/src/Header/ParameterHeader.php
<?php
/**
* This file is part of the ZBateson\MailMimeParser project.
*
* @license http://opensource.org/licenses/bsd-license.php BSD
*/
namespace ZBateson\MailMimeParser\Header;
use ZBateson\MailMimeParser\Header\Consumer\ConsumerService;
use ZBateson\MailMimeParser\Header\Consumer\AbstractConsumer;
use ZBateson\MailMimeParser\Header\Part\ParameterPart;
/**
* Represents a header containing a primary value part and subsequent name/value
* parts using a ParameterConsumer.
*
* @author Zaahid Bateson
*/
class ParameterHeader extends AbstractHeader
{
/**
* @var \ZBateson\MailMimeParser\Header\Part\ParameterPart[] key map of
* lower-case parameter names and associated ParameterParts.
*/
protected $parameters = [];
/**
* Returns a ParameterConsumer.
*
* @param ConsumerService $consumerService
* @return \ZBateson\MailMimeParser\Header\Consumer\AbstractConsumer
*/
protected function getConsumer(ConsumerService $consumerService)
{
return $consumerService->getParameterConsumer();
}
/**
* Overridden to assign ParameterParts to a map of lower-case parameter
* names to ParameterParts.
*
* @param AbstractConsumer $consumer
*/
protected function setParseHeaderValue(AbstractConsumer $consumer)
{
parent::setParseHeaderValue($consumer);
foreach ($this->parts as $part) {
if ($part instanceof ParameterPart) {
$this->parameters[strtolower($part->getName())] = $part;
}
}
}
/**
* Returns true if a parameter exists with the passed name.
*
* @param string $name
* @return boolean
*/
public function hasParameter($name)
{
return isset($this->parameters[strtolower($name)]);
}
/**
* Returns the value of the parameter with the given name, or $defaultValue
* if not set.
*
* @param string $name
* @param string $defaultValue
* @return string
*/
public function getValueFor($name, $defaultValue = null)
{
if (!$this->hasParameter($name)) {
return $defaultValue;
}
return $this->parameters[strtolower($name)]->getValue();
}
}