+++ /dev/null
-<?php
-
-/*
- * This file is part of Psy Shell.
- *
- * (c) 2012-2017 Justin Hileman
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Psy\Reflection;
-
-/**
- * A fake ReflectionParameter but for language construct parameters.
- *
- * It stubs out all the important bits and returns whatever was passed in $opts.
- */
-class ReflectionLanguageConstructParameter extends \ReflectionParameter
-{
- private $function;
- private $parameter;
- private $opts;
-
- public function __construct($function, $parameter, array $opts)
- {
- $this->function = $function;
- $this->parameter = $parameter;
- $this->opts = $opts;
- }
-
- /**
- * No class here.
- */
- public function getClass()
- {
- return;
- }
-
- /**
- * Is the param an array?
- *
- * @return bool
- */
- public function isArray()
- {
- return array_key_exists('isArray', $this->opts) && $this->opts['isArray'];
- }
-
- /**
- * Get param default value.
- *
- * @return mixed
- */
- public function getDefaultValue()
- {
- if ($this->isDefaultValueAvailable()) {
- return $this->opts['defaultValue'];
- }
- }
-
- /**
- * Get param name.
- *
- * @return string
- */
- public function getName()
- {
- return $this->parameter;
- }
-
- /**
- * Is the param optional?
- *
- * @return bool
- */
- public function isOptional()
- {
- return array_key_exists('isOptional', $this->opts) && $this->opts['isOptional'];
- }
-
- /**
- * Does the param have a default value?
- *
- * @return bool
- */
- public function isDefaultValueAvailable()
- {
- return array_key_exists('defaultValue', $this->opts);
- }
-
- /**
- * Is the param passed by reference?
- *
- * (I don't think this is true for anything we need to fake a param for)
- *
- * @return bool
- */
- public function isPassedByReference()
- {
- return array_key_exists('isPassedByReference', $this->opts) && $this->opts['isPassedByReference'];
- }
-}