/**
  * @param  \Kbrw\RiakBundle\Model\Cluster\Cluster                                                                                            $cluster
  * @param  \Kbrw\RiakBundle\Model\Bucket\Bucket                                                                                              $bucket
  * @param  string | array<string> | \Kbrw\RiakBundle\Model\KV\Data | array<\Kbrw\RiakBundle\Model\KV\Data> | \Kbrw\RiakBundle\Model\KV\Datas $datas
  * @return \Kbrw\RiakBundle\Model\KV\Datas
  */
 public function fetch($cluster, $bucket, $datas)
 {
     // normalize $datas parameter
     $datas = $this->normalizeDatas($datas, $bucket->getFormat(), $cluster->getClientId(), true);
     // Split work in smaller pieces to avoid exception caused by too many opened connections
     $result = new Datas();
     $chunks = $datas->chunk($cluster->getMaxParallelCalls());
     foreach ($chunks as $chunk) {
         $result->addAll($this->doFetch($cluster, $bucket, $chunk));
     }
     return $result;
 }
 /**
  * @param  \Kbrw\RiakBundle\Model\Cluster\Cluster $cluster
  * @param  \Kbrw\RiakBundle\Model\Bucket\Bucket   $bucket
  * @param  array<string>                          $keys
  * @return \Kbrw\RiakBundle\Model\KV\Datas
  */
 public function fetch($cluster, $bucket, $keys)
 {
     if (!is_array($keys)) {
         $keys = array($keys);
     }
     $datas = new Datas();
     // Split work in smaller pieces to avoid exception caused by too many opened connections
     if (count($keys) > $cluster->getMaxParallelCalls()) {
         $chunks = array_chunk($keys, $cluster->getMaxParallelCalls());
         foreach ($chunks as $chunk) {
             $datas->addAll($this->fetch($cluster, $bucket, $chunk));
         }
         return $datas;
     }
     foreach ($keys as $key) {
         $key = trim($key);
         $data = new Data($key);
         if (isset($this->content[$key])) {
             $data->setStringContent($this->content[$key]);
             if ($this->contentTypeNormalizer->isFormatSupportedForSerialization($bucket->getFormat())) {
                 /*var_dump($data->getRawContent());
                   var_dump($bucket->getFullyQualifiedClassName());
                   var_dump($bucket->getFormat());
                   exit;*/
                 $riakKVObject = $this->serializer->deserialize($data->getContent(true), $bucket->getFullyQualifiedClassName(), $bucket->getFormat());
                 if ($riakKVObject !== false) {
                     if ($riakKVObject instanceof Transmutable) {
                         $riakKVObject = $riakKVObject->transmute();
                     }
                     $data->setContent($riakKVObject);
                 }
             }
         }
         $datas->add($data);
     }
     return $datas;
 }