--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/Zend/CodeGenerator/Php/Parameter.php Mon Dec 13 18:29:26 2010 +0100
@@ -0,0 +1,250 @@
+<?php
+/**
+ * Zend Framework
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://framework.zend.com/license/new-bsd
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@zend.com so we can send you a copy immediately.
+ *
+ * @category Zend
+ * @package Zend_CodeGenerator
+ * @subpackage PHP
+ * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ * @version $Id: Parameter.php 21889 2010-04-16 18:40:50Z juokaz $
+ */
+
+/**
+ * @see Zend_CodeGenerator_Php_Abstract
+ */
+require_once 'Zend/CodeGenerator/Php/Abstract.php';
+
+/**
+ * @see Zend_CodeGenerator_Php_ParameterDefaultValue
+ */
+require_once 'Zend/CodeGenerator/Php/Parameter/DefaultValue.php';
+
+/**
+ * @category Zend
+ * @package Zend_CodeGenerator
+ * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ */
+class Zend_CodeGenerator_Php_Parameter extends Zend_CodeGenerator_Php_Abstract
+{
+ /**
+ * @var string
+ */
+ protected $_type = null;
+
+ /**
+ * @var string
+ */
+ protected $_name = null;
+
+ /**
+ * @var string
+ */
+ protected $_defaultValue = null;
+
+ /**
+ * @var int
+ */
+ protected $_position = null;
+
+ /**
+ * @var bool
+ */
+ protected $_passedByReference = false;
+
+ /**
+ * fromReflection()
+ *
+ * @param Zend_Reflection_Parameter $reflectionParameter
+ * @return Zend_CodeGenerator_Php_Parameter
+ */
+ public static function fromReflection(Zend_Reflection_Parameter $reflectionParameter)
+ {
+ $param = new Zend_CodeGenerator_Php_Parameter();
+ $param->setName($reflectionParameter->getName());
+
+ if($reflectionParameter->isArray()) {
+ $param->setType('array');
+ } else {
+ $typeClass = $reflectionParameter->getClass();
+ if($typeClass !== null) {
+ $param->setType($typeClass->getName());
+ }
+ }
+
+ $param->setPosition($reflectionParameter->getPosition());
+
+ if($reflectionParameter->isOptional()) {
+ $param->setDefaultValue($reflectionParameter->getDefaultValue());
+ }
+ $param->setPassedByReference($reflectionParameter->isPassedByReference());
+
+ return $param;
+ }
+
+ /**
+ * setType()
+ *
+ * @param string $type
+ * @return Zend_CodeGenerator_Php_Parameter
+ */
+ public function setType($type)
+ {
+ $this->_type = $type;
+ return $this;
+ }
+
+ /**
+ * getType()
+ *
+ * @return string
+ */
+ public function getType()
+ {
+ return $this->_type;
+ }
+
+ /**
+ * setName()
+ *
+ * @param string $name
+ * @return Zend_CodeGenerator_Php_Parameter
+ */
+ public function setName($name)
+ {
+ $this->_name = $name;
+ return $this;
+ }
+
+ /**
+ * getName()
+ *
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->_name;
+ }
+
+ /**
+ * Set the default value of the parameter.
+ *
+ * Certain variables are difficult to expres
+ *
+ * @param null|bool|string|int|float|Zend_CodeGenerator_Php_Parameter_DefaultValue $defaultValue
+ * @return Zend_CodeGenerator_Php_Parameter
+ */
+ public function setDefaultValue($defaultValue)
+ {
+ if($defaultValue === null) {
+ $this->_defaultValue = new Zend_CodeGenerator_Php_Parameter_DefaultValue("null");
+ } else if(is_array($defaultValue)) {
+ $defaultValue = str_replace(array("\r", "\n"), "", var_export($defaultValue, true));
+ $this->_defaultValue = new Zend_CodeGenerator_Php_Parameter_DefaultValue($defaultValue);
+ } else if(is_bool($defaultValue)) {
+ if($defaultValue == true) {
+ $this->_defaultValue = new Zend_CodeGenerator_Php_Parameter_DefaultValue("true");
+ } else {
+ $this->_defaultValue = new Zend_CodeGenerator_Php_Parameter_DefaultValue("false");
+ }
+ } else {
+ $this->_defaultValue = $defaultValue;
+ }
+ return $this;
+ }
+
+ /**
+ * getDefaultValue()
+ *
+ * @return string
+ */
+ public function getDefaultValue()
+ {
+ return $this->_defaultValue;
+ }
+
+ /**
+ * setPosition()
+ *
+ * @param int $position
+ * @return Zend_CodeGenerator_Php_Parameter
+ */
+ public function setPosition($position)
+ {
+ $this->_position = $position;
+ return $this;
+ }
+
+ /**
+ * getPosition()
+ *
+ * @return int
+ */
+ public function getPosition()
+ {
+ return $this->_position;
+ }
+
+ /**
+ * @return bool
+ */
+ public function getPassedByReference()
+ {
+ return $this->_passedByReference;
+ }
+
+ /**
+ * @param bool $passedByReference
+ * @return Zend_CodeGenerator_Php_Parameter
+ */
+ public function setPassedByReference($passedByReference)
+ {
+ $this->_passedByReference = $passedByReference;
+ return $this;
+ }
+
+ /**
+ * generate()
+ *
+ * @return string
+ */
+ public function generate()
+ {
+ $output = '';
+
+ if ($this->_type) {
+ $output .= $this->_type . ' ';
+ }
+
+ if($this->_passedByReference === true) {
+ $output .= '&';
+ }
+
+ $output .= '$' . $this->_name;
+
+ if ($this->_defaultValue !== null) {
+ $output .= ' = ';
+ if (is_string($this->_defaultValue)) {
+ $output .= '\'' . $this->_defaultValue . '\'';
+ } else if($this->_defaultValue instanceof Zend_CodeGenerator_Php_Parameter_DefaultValue) {
+ $output .= (string)$this->_defaultValue;
+ } else {
+ $output .= $this->_defaultValue;
+ }
+ }
+
+ return $output;
+ }
+
+}
\ No newline at end of file