public function Target::__construct in Zircon Profile 8.0
Same name and namespace in other branches
- 8 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php \Doctrine\Common\Annotations\Annotation\Target::__construct()
Annotation constructor.
Parameters
array $values:
Throws
\InvalidArgumentException
File
- vendor/
doctrine/ annotations/ lib/ Doctrine/ Common/ Annotations/ Annotation/ Target.php, line 76
Class
- Target
- Annotation that can be used to signal to the parser to check the annotation target during the parsing process.
Namespace
Doctrine\Common\Annotations\AnnotationCode
public function __construct(array $values) {
if (!isset($values['value'])) {
$values['value'] = null;
}
if (is_string($values['value'])) {
$values['value'] = array(
$values['value'],
);
}
if (!is_array($values['value'])) {
throw new \InvalidArgumentException(sprintf('@Target expects either a string value, or an array of strings, "%s" given.', is_object($values['value']) ? get_class($values['value']) : gettype($values['value'])));
}
$bitmask = 0;
foreach ($values['value'] as $literal) {
if (!isset(self::$map[$literal])) {
throw new \InvalidArgumentException(sprintf('Invalid Target "%s". Available targets: [%s]', $literal, implode(', ', array_keys(self::$map))));
}
$bitmask |= self::$map[$literal];
}
$this->targets = $bitmask;
$this->value = $values['value'];
$this->literal = implode(', ', $this->value);
}