File indexing completed on 2025-01-19 05:21:35

0001 <?php
0002 /**
0003  * Zend Framework
0004  *
0005  * LICENSE
0006  *
0007  * This source file is subject to the new BSD license that is bundled
0008  * with this package in the file LICENSE.txt.
0009  * It is also available through the world-wide-web at this URL:
0010  * http://framework.zend.com/license/new-bsd
0011  * If you did not receive a copy of the license and are unable to
0012  * obtain it through the world-wide-web, please send an email
0013  * to license@zend.com so we can send you a copy immediately.
0014  *
0015  * @category   Zend
0016  * @package    Zend_Tool
0017  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
0018  * @license    http://framework.zend.com/license/new-bsd     New BSD License
0019  * @version    $Id$
0020  */
0021 
0022 /**
0023  * @category   Zend
0024  * @package    Zend_Tool
0025  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
0026  * @license    http://framework.zend.com/license/new-bsd     New BSD License
0027  */
0028 class Zend_Tool_Framework_Client_Interactive_InputHandler
0029 {
0030 
0031     /**
0032      * @var Zend_Tool_Framework_Client_Interactive_InputInterface
0033      */
0034     protected $_client = null;
0035 
0036     protected $_inputRequest = null;
0037 
0038     public function setClient(Zend_Tool_Framework_Client_Interactive_InputInterface $client)
0039     {
0040         $this->_client = $client;
0041         return $this;
0042     }
0043 
0044     public function setInputRequest($inputRequest)
0045     {
0046         if (is_string($inputRequest)) {
0047             // require_once 'Zend/Tool/Framework/Client/Interactive/InputRequest.php';
0048             $inputRequest = new Zend_Tool_Framework_Client_Interactive_InputRequest($inputRequest);
0049         } elseif (!$inputRequest instanceof Zend_Tool_Framework_Client_Interactive_InputRequest) {
0050             // require_once 'Zend/Tool/Framework/Client/Exception.php';
0051             throw new Zend_Tool_Framework_Client_Exception('promptInteractive() requires either a string or an instance of Zend_Tool_Framework_Client_Interactive_InputRequest.');
0052         }
0053 
0054         $this->_inputRequest = $inputRequest;
0055         return $this;
0056     }
0057 
0058     public function handle()
0059     {
0060         $inputResponse = $this->_client->handleInteractiveInputRequest($this->_inputRequest);
0061 
0062         if (is_string($inputResponse)) {
0063             // require_once 'Zend/Tool/Framework/Client/Interactive/InputResponse.php';
0064             $inputResponse = new Zend_Tool_Framework_Client_Interactive_InputResponse($inputResponse);
0065         } elseif (!$inputResponse instanceof Zend_Tool_Framework_Client_Interactive_InputResponse) {
0066             // require_once 'Zend/Tool/Framework/Client/Exception.php';
0067             throw new Zend_Tool_Framework_Client_Exception('The registered $_interactiveCallback for the client must either return a string or an instance of Zend_Tool_Framework_Client_Interactive_InputResponse.');
0068         }
0069 
0070         return $inputResponse;
0071     }
0072 
0073 
0074 }