/**
  * Returns the files of this entity.
  *
  * If no group is passed, this method will returns all files grouped by file groups.
  *
  * @return \MapasCulturais\Entities\File[] The array of files.
  */
 function getFiles($group = null)
 {
     $app = App::i();
     if ($this instanceof File) {
         $files = $this->getChildren();
         $result = [];
         foreach ($files as $file) {
             $result[substr($file->group, 4)] = $file;
         }
     } else {
         $result = \MapasCulturais\Entities\File::sortFilesByGroup($this->__files);
     }
     if ($group) {
         $registeredGroup = $app->getRegisteredFileGroup($this->controllerId, $group);
         if ($registeredGroup && $registeredGroup->unique) {
             $result = isset($result[$group]) ? $result[$group] : null;
         } else {
             $result = isset($result[$group]) ? $result[$group] : [];
         }
     }
     return $result;
 }