* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Routing\Annotation; /** * Annotation class for @Route(). * * @Annotation * * @author Fabien Potencier */ class Route { private $pattern; private $name; private $requirements; private $options; private $defaults; /** * Constructor. * * @param array $data An array of key/value parameters. */ public function __construct(array $data) { $this->requirements = array(); $this->options = array(); $this->defaults = array(); if (isset($data['value'])) { $data['pattern'] = $data['value']; unset($data['value']); } foreach ($data as $key => $value) { $method = 'set'.$key; if (!method_exists($this, $method)) { throw new \BadMethodCallException(sprintf("Unknown property '%s' on annotation '%s'.", $key, get_class($this))); } $this->$method($value); } } public function setPattern($pattern) { $this->pattern = $pattern; } public function getPattern() { return $this->pattern; } public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } public function setRequirements($requirements) { $this->requirements = $requirements; } public function getRequirements() { return $this->requirements; } public function setOptions($options) { $this->options = $options; } public function getOptions() { return $this->options; } public function setDefaults($defaults) { $this->defaults = $defaults; } public function getDefaults() { return $this->defaults; } }