/**
  * Store a feed instance on persistent storage.
  *
  * @param DataFeed $feed The feed to store.
  */
 public function storeFeedHandle(FeedHandle $feed)
 {
     $result = $this->getNamedRow($feed->getName());
     $data = array();
     $format = array();
     $add = function ($name, $value, $f) use($feed, &$data, &$format) {
         if ($value !== null) {
             $data[$name] = $value;
             array_push($format, $f);
         }
     };
     $add('df_url', $feed->getURL(), '%s');
     $add('df_o_url', $feed->getOURL(), '%s');
     $add('df_interval', $feed->getInterval(), '%d');
     $add('df_o_interval', $feed->getOInterval(), '%d');
     $add('df_key', $feed->getKey(), '%s');
     $add('df_key_parameter', $feed->getKeyParameter(), '%s');
     $add('df_pagination_policy', $feed->getPaginationPolicy(), '%s');
     $add('df_o_pagination_policy', $feed->getOPaginationPolicy(), '%s');
     if (is_array($result) && count($result) === 0) {
         $created = new \DateTime('now');
         $feed->setCreated($created);
         $add('df_created', $feed->getCreated()->format('Y-m-d H:i:s'), '%s');
         $add('df_name', $feed->getName(), '%s');
         $this->wpdb->insert($this->tableName(), $data, $format);
     } else {
         $this->wpdb->update($this->tableName(), $data, array('df_name' => $feed->getName()), $format, array('%s'));
     }
 }