/**
  * Create an instance of Bundle from data taken from a submitted Form\BundleForm instance
  *
  * @param array $data
  *
  * @return Bundle
  */
 public function build(array $data)
 {
     $this->_validateData($data);
     $bundle = new Bundle($this->_defaultCurrency);
     if (!empty($data[Form\BundleForm::ID])) {
         $bundle->setID($data[Form\BundleForm::ID]);
     }
     $bundle->setName($data[Form\BundleForm::NAME]);
     if (!empty($data[Form\BundleForm::START])) {
         $bundle->setStart($data[Form\BundleForm::START]);
     }
     if (!empty($data[Form\BundleForm::END])) {
         $bundle->setEnd($data[Form\BundleForm::END]);
     }
     $bundle->setAllowCodes(!empty($data[Form\BundleForm::CODES]));
     $this->_addProducts($bundle, $data);
     $this->_addPrices($bundle, $data);
     $this->_addImage($bundle, $data);
     return $bundle;
 }