/**
  * Override the validate method of the form container to validate 
  * linked elements
  *
  * @access public
  * @author Somsack Sipasseuth, <*****@*****.**>
  * @return boolean
  */
 public function validate()
 {
     $returnValue = (bool) false;
     if ($this->form->isSubmited()) {
         if ($this->versionedFile->isVersioned()) {
             return true;
         }
         $fileNameElt = $this->form->getElement(tao_helpers_Uri::encode(PROPERTY_FILE_FILENAME));
         $fileName = !is_null($fileNameElt) ? $fileNameElt->getValue() : '';
         $filePathElt = $this->form->getElement(tao_helpers_Uri::encode(PROPERTY_FILE_FILEPATH));
         $filePath = $filePathElt->getValue();
         $fileRepositoryElt = $this->form->getElement(tao_helpers_Uri::encode(PROPERTY_FILE_FILESYSTEM));
         $fileRepository = tao_helpers_Uri::decode($fileRepositoryElt->getValue());
         //check if a resource with the same path exists yet in the repository
         $clazz = new core_kernel_classes_Class(CLASS_GENERIS_FILE);
         $options = array('like' => false, 'recursive' => true);
         $propertyFilter = array(PROPERTY_FILE_FILENAME => $fileName, PROPERTY_FILE_FILEPATH => $filePath, PROPERTY_FILE_FILESYSTEM => $fileRepository);
         $sameNameFiles = $clazz->searchInstances($propertyFilter, $options);
         if (!empty($sameNameFiles)) {
             $sameFileResource = array_pop($sameNameFiles);
             $sameFile = new core_kernel_versioning_File($sameFileResource->getUri());
             $this->form->valid = false;
             $this->form->error = __('A similar resource has already been versioned') . ' (' . $sameFile->getAbsolutePath() . ')';
         }
     }
     return (bool) $returnValue;
 }