Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: namespace Symfony\Component\Routing\Annotation; Chris@0: Chris@0: /** Chris@0: * Annotation class for @Route(). Chris@0: * Chris@0: * @Annotation Chris@0: * @Target({"CLASS", "METHOD"}) Chris@0: * Chris@0: * @author Fabien Potencier Chris@0: */ Chris@0: class Route Chris@0: { Chris@0: private $path; Chris@0: private $name; Chris@17: private $requirements = []; Chris@17: private $options = []; Chris@17: private $defaults = []; Chris@0: private $host; Chris@17: private $methods = []; Chris@17: private $schemes = []; Chris@0: private $condition; Chris@0: Chris@0: /** Chris@0: * @param array $data An array of key/value parameters Chris@0: * Chris@0: * @throws \BadMethodCallException Chris@0: */ Chris@0: public function __construct(array $data) Chris@0: { Chris@0: if (isset($data['value'])) { Chris@0: $data['path'] = $data['value']; Chris@0: unset($data['value']); Chris@0: } Chris@0: Chris@0: foreach ($data as $key => $value) { Chris@0: $method = 'set'.str_replace('_', '', $key); Chris@0: if (!method_exists($this, $method)) { Chris@17: throw new \BadMethodCallException(sprintf('Unknown property "%s" on annotation "%s".', $key, \get_class($this))); Chris@0: } Chris@0: $this->$method($value); Chris@0: } Chris@0: } Chris@0: Chris@0: public function setPath($path) Chris@0: { Chris@0: $this->path = $path; Chris@0: } Chris@0: Chris@0: public function getPath() Chris@0: { Chris@0: return $this->path; Chris@0: } Chris@0: Chris@0: public function setHost($pattern) Chris@0: { Chris@0: $this->host = $pattern; Chris@0: } Chris@0: Chris@0: public function getHost() Chris@0: { Chris@0: return $this->host; Chris@0: } Chris@0: Chris@0: public function setName($name) Chris@0: { Chris@0: $this->name = $name; Chris@0: } Chris@0: Chris@0: public function getName() Chris@0: { Chris@0: return $this->name; Chris@0: } Chris@0: Chris@0: public function setRequirements($requirements) Chris@0: { Chris@0: $this->requirements = $requirements; Chris@0: } Chris@0: Chris@0: public function getRequirements() Chris@0: { Chris@0: return $this->requirements; Chris@0: } Chris@0: Chris@0: public function setOptions($options) Chris@0: { Chris@0: $this->options = $options; Chris@0: } Chris@0: Chris@0: public function getOptions() Chris@0: { Chris@0: return $this->options; Chris@0: } Chris@0: Chris@0: public function setDefaults($defaults) Chris@0: { Chris@0: $this->defaults = $defaults; Chris@0: } Chris@0: Chris@0: public function getDefaults() Chris@0: { Chris@0: return $this->defaults; Chris@0: } Chris@0: Chris@0: public function setSchemes($schemes) Chris@0: { Chris@17: $this->schemes = \is_array($schemes) ? $schemes : [$schemes]; Chris@0: } Chris@0: Chris@0: public function getSchemes() Chris@0: { Chris@0: return $this->schemes; Chris@0: } Chris@0: Chris@0: public function setMethods($methods) Chris@0: { Chris@17: $this->methods = \is_array($methods) ? $methods : [$methods]; Chris@0: } Chris@0: Chris@0: public function getMethods() Chris@0: { Chris@0: return $this->methods; Chris@0: } Chris@0: Chris@0: public function setCondition($condition) Chris@0: { Chris@0: $this->condition = $condition; Chris@0: } Chris@0: Chris@0: public function getCondition() Chris@0: { Chris@0: return $this->condition; Chris@0: } Chris@0: }