/**
  * コンストラクタ 
  * 
  * @param string $paginationFile ページ制御コントロール用テンプレートのファイル名
  * @param string $itemViewFile ホテル情報用テンプレートのファイル名
  * @param string $maxPages コントロールにリストとして表示するページの最大数
  * @param SimpleXMLElement $response ウェブサービス トラベルAPIからのレスポンス
  */
 public function __construct($paginationFile, $itemViewFile, $maxPages, $response, $is_mobile = false)
 {
     $itemView = $this->loadFile($itemViewFile);
     if (gettype($response) != "object") {
         $this->items = null;
         switch ($response) {
             case VCSDBDriverBase::STATUS_HTTP_CONNECTION_FAILURE:
                 $this->errorMessage = VCSDBSAMPLE_HTTP_FAILURE;
                 break;
             case VCSDBDriverBase::STATUS_XML_PARSE_ERROR:
                 $this->errorMessage = VCSDBSAMPLE_XML_PARSE_ERROR;
                 break;
             case VCSDBDriverBase::STATUS_DATA_STRUCTURAL_ERROR:
                 $this->errorMessage = VCSDBSAMPLE_DATA_STRUCT_ERROR;
                 break;
             case VCSDBDriverBase::STATUS_NO_PARAMETER_ERROR:
                 $this->errorMessage = "";
                 break;
             default:
                 $this->errorMessage = VCSDBSAMPLE_UNKNOWN_EROR;
         }
     } else {
         $this->items = FormattedItem::getItems($itemView, $response);
     }
 }
 /**
  * コンストラクタ 
  * 
  * @param string $paginationFile ページ制御コントロール用テンプレートのファイル名
  * @param string $itemViewFile 商品情報用テンプレートのファイル名
  * @param string $maxPages コントロールにリストとして表示するページの最大数
  * @param SimpleXMLElement $response 商品APIからのレスポンス
  */
 public function __construct($paginationFile, $itemViewFile, $maxPages, $api)
 {
     $itemView = $this->loadFile($itemViewFile);
     $paginationView = $this->loadFile($paginationFile);
     /*
      * APIへの問い合わせ実行、パラメータが設定されていない場合は、エラーコードが返ります。
      */
     $response = $api->executeQuery();
     if (gettype($response) != "object") {
         $this->items = null;
         switch ($response) {
             case VCPDBDriver::STATUS_HTTP_CONNECTION_FAILURE:
                 $this->errorMessage = VCPDBSAMPLE_HTTP_FAILURE;
                 break;
             case VCPDBDriver::STATUS_XML_PARSE_ERROR:
                 $this->errorMessage = VCPDBSAMPLE_XML_PARSE_ERROR;
                 break;
             case VCPDBDriver::STATUS_DATA_STRUCTURAL_ERROR:
                 // ステータスコードも表示します。
                 switch ($api->getStatus()) {
                     case "INVALID_SEARCH_PARAMETERS":
                         $this->errorMessage = VCPDBSAMPLE_INVALID_SEARCH_PARAMS;
                         break;
                     default:
                         $this->errorMessage = VCPDBSAMPLE_DATA_STRUCT_ERROR . ": (" . $api->getStatus() . ")";
                         break;
                 }
                 break;
             case VCPDBDriver::STATUS_NO_PARAMETER_ERROR:
                 $this->errorMessage = "";
                 break;
             default:
                 $this->errorMessage = VCPDBSAMPLE_UNKNOWN_ERROR;
         }
     } else {
         $this->items = FormattedItem::getItems($itemView, $response);
     }
     $this->pagination = new Pagination($paginationView, $maxPages, $response);
 }