public function addFile(File $file)
 {
     $id = $file->getId();
     $path = new \stdClass();
     $path->path = $file->getPath();
     $path->siteId = $file->getSiteId();
     $path->siteName = $file->getSiteName();
     $psi_std = new \stdClass();
     $psi_std->id = $id;
     $psi_std->path = $path;
     $psi_std->type = File::TYPE;
     $psi_std->recycled = false;
     $this->files[] = new p\PublishableAssetIdentifier($psi_std);
     return $this;
 }
 public function setFile(a\File $file = NULL)
 {
     // required
     if ($this->required && $file == NULL) {
         throw new e\EmptyValueException(S_SPAN . c\M::NULL_FILE . E_SPAN);
     }
     if ($this->asset_type != c\T::FILE) {
         throw new e\NodeException(S_SPAN . "The asset does not accept a file." . E_SPAN);
     }
     if (isset($file)) {
         $this->file_id = $file->getId();
         $this->file_path = $file->getPath();
     } else {
         $this->file_id = NULL;
         $this->file_path = NULL;
     }
     return $this;
 }