/**
  * Creates a new request object
  *
  * @param   string method
  * @param   peer.URL url
  * @return  scriptlet.xml.XMLScriptletRequest
  */
 protected function newRequest($method, URL $url)
 {
     $q = $url->getQuery('');
     $req = new XMLScriptletRequest();
     $req->method = $method;
     $req->env['SERVER_PROTOCOL'] = 'HTTP/1.1';
     $req->env['REQUEST_URI'] = $url->getPath('/') . ($q ? '?' . $q : '');
     $req->env['QUERY_STRING'] = $q;
     $req->env['HTTP_HOST'] = $url->getHost();
     $req->env['LANGUAGE'] = 'en_US';
     if ('https' === $url->getScheme()) {
         $req->env['HTTPS'] = 'on';
     }
     $req->setHeaders(array());
     $req->setParams($url->getParams());
     return $req;
 }
 /**
  * Initialize this request object - overridden from base class.
  *
  * @see     xp://scriptlet.xml.XMLScriptletRequest#initialize
  */
 public function initialize()
 {
     parent::initialize();
     if ($this->stateName) {
         $name = implode('', array_map('ucfirst', array_reverse(explode('/', $this->stateName))));
         try {
             $this->state = XPClass::forName($this->package . '.' . ('state.' . $name . 'State'))->newInstance();
         } catch (ClassNotFoundException $e) {
             throw new ScriptletException('Cannot find ' . $this->stateName, HttpConstants::STATUS_NOT_FOUND, $e);
         }
     }
 }
 /**
  * Helper method to simulate form submission
  *
  */
 protected function loadFromRequest($params = array())
 {
     $r = new XMLScriptletRequest();
     foreach ($params as $key => $value) {
         $r->setParam($key, $value);
     }
     $this->wrapper->load($r, $this->handler);
 }