protected function store($resource, $fullPathName, $parts, $getInfoBy)
  {
    if ($fullPathName!==null) $this->logInfo("Minimizing '%s'", $fullPathName);

    $content_opt = $this->minimizeResource($resource, $fullPathName);

    // @todo Ignore *.main.js files.

    $file_info                                   = [];
    $file_info['hash']                           = md5($content_opt);
    $file_info['content_raw']                    = $resource;
    $file_info['content_opt']                    = $content_opt;
    $file_info['ordinal']                        = isset($this->hashCount[$file_info['hash']]) ? $this->hashCount[$file_info['hash']]++ : $this->hashCount[$file_info['hash']] = 0;
    $file_info['full_path_name_with_hash']       = $this->resourceDirFullPath.'/'.
      $file_info['hash'].'.'.$file_info['ordinal'].$this->extension;
    $file_info['path_name_in_sources_with_hash'] = $this->getPathInResources($file_info['full_path_name_with_hash']);

    if (isset($fullPathName))
    {
      $file_info['full_path_name']       = $fullPathName;
      $file_info['path_name_in_sources'] = $this->getPathInResources($fullPathName);
    }

    if (isset($parts))
    {
      $file_info['mtime'] = $this->getMaxMtime($parts, $getInfoBy);
    }

    $this->resourceFilesInfo[] = $file_info;

    return $file_info;
  }