/**
  * Extract all assets from the current item
  * @return array the assets by type
  */
 public function extract()
 {
     foreach ($this->item->getComposingElements() as $element) {
         $this->extractImg($element);
         $this->extractObject($element);
         $this->extractStyleSheet($element);
         $this->extractCustomElement($element);
     }
     return $this->assets;
 }
 public function extractPortableAssetElements()
 {
     foreach ($this->item->getComposingElements() as $element) {
         $this->extractCustomElement($element);
     }
     return $this->assets;
 }
 /**
  * Feed the instance with portable related data extracted from the item
  *
  * @param Item $item
  * @throws \common_Exception
  */
 protected function feedRequiredFiles(Item $item)
 {
     $this->requiredFiles = [];
     $this->portableObjects = [];
     $this->picModels = [];
     $models = $this->getPortableFactory()->getModels();
     foreach ($models as $model) {
         $className = $model->getQtiElementClassName();
         $portableElementsXml = $item->getComposingElements($className);
         foreach ($portableElementsXml as $portableElementXml) {
             $this->parsePortableElement($model, $portableElementXml);
         }
     }
 }