/**
  *
  * @param AJXP_Node $oldFile
  * @param AJXP_Node $newFile
  * @param Boolean $copy
  */
 public function moveMeta($oldFile, $newFile = null, $copy = false)
 {
     if ($oldFile == null) {
         return;
     }
     $feedStore = AJXP_PluginsService::getInstance()->getUniqueActivePluginForType("feed");
     if ($feedStore !== false) {
         $feedStore->updateMetaObject($oldFile->getRepositoryId(), $oldFile->getPath(), $newFile != null ? $newFile->getPath() : null, $copy);
         return;
     }
     if (!$copy && $this->metaStore->inherentMetaMove()) {
         return;
     }
     $oldMeta = $this->metaStore->retrieveMetadata($oldFile, AJXP_META_SPACE_COMMENTS);
     if (!count($oldMeta)) {
         return;
     }
     // If it's a move or a delete, delete old data
     if (!$copy) {
         $this->metaStore->removeMetadata($oldFile, AJXP_META_SPACE_COMMENTS);
     }
     // If copy or move, copy data.
     if ($newFile != null) {
         $this->metaStore->setMetadata($newFile, AJXP_META_SPACE_COMMENTS, $oldMeta);
     }
 }
 /**
  *
  * @param AJXP_Node $oldNode
  * @param AJXP_Node $newNode
  * @param Boolean $copy
  */
 public function updateMetaLocation($oldNode, $newNode = null, $copy = false)
 {
     $defs = $this->getMetaDefinition();
     $updateField = $createField = null;
     foreach ($defs as $f => $data) {
         if ($data["type"] == "updater") {
             $updateField = $f;
         } else {
             if ($data["type"] == "creator") {
                 $createField = $f;
             }
         }
     }
     $valuesUpdate = isset($updateField) || isset($createField);
     $currentUser = null;
     if ($valuesUpdate) {
         $currentUser = AuthService::getLoggedUser()->getId();
     }
     if ($oldNode == null && !$valuesUpdate) {
         return;
     }
     if (!$copy && !$valuesUpdate && $this->metaStore->inherentMetaMove()) {
         return;
     }
     if ($oldNode == null) {
         $oldMeta = $this->metaStore->retrieveMetadata($newNode, "users_meta", false, AJXP_METADATA_SCOPE_GLOBAL);
     } else {
         $oldMeta = $this->metaStore->retrieveMetadata($oldNode, "users_meta", false, AJXP_METADATA_SCOPE_GLOBAL);
     }
     if ($valuesUpdate) {
         if (isset($updateField)) {
             $oldMeta[$updateField] = $currentUser;
         }
         if (isset($createField) && $oldNode == null) {
             $oldMeta[$createField] = $currentUser;
         }
     }
     if (!count($oldMeta)) {
         return;
     }
     // If it's a move or a delete, delete old data
     if ($oldNode != null && !$copy) {
         $this->metaStore->removeMetadata($oldNode, "users_meta", false, AJXP_METADATA_SCOPE_GLOBAL);
     }
     // If copy or move, copy data.
     if ($newNode != null) {
         $this->metaStore->setMetadata($newNode, "users_meta", $oldMeta, false, AJXP_METADATA_SCOPE_GLOBAL);
     }
 }
 /**
  *
  * @param AJXP_Node $oldFile
  * @param AJXP_Node $newFile
  * @param Boolean $copy
  */
 public function updateMetaLocation($oldFile, $newFile = null, $copy = false)
 {
     if ($oldFile == null) {
         return;
     }
     if (!$copy && $this->metaStore->inherentMetaMove()) {
         return;
     }
     $oldMeta = $this->metaStore->retrieveMetadata($oldFile, self::$META_WATCH_NAMESPACE, false, AJXP_METADATA_SCOPE_REPOSITORY);
     if (count($oldMeta)) {
         // If it's a move or a delete, delete old data
         if (!$copy) {
             $this->metaStore->removeMetadata($oldFile, self::$META_WATCH_NAMESPACE, false, AJXP_METADATA_SCOPE_REPOSITORY);
         }
         // If copy or move, copy data.
         if ($newFile != null) {
             $this->metaStore->setMetadata($newFile, self::$META_WATCH_NAMESPACE, $oldMeta, false, AJXP_METADATA_SCOPE_REPOSITORY);
         }
     }
 }
 /**
  *
  * @param AJXP_Node $oldFile
  * @param AJXP_Node $newFile
  * @param Boolean $copy
  */
 public function updateMetaLocation($oldFile, $newFile = null, $copy = false)
 {
     if ($oldFile == null) {
         return;
     }
     if (!$copy && $this->metaStore->inherentMetaMove()) {
         return;
     }
     $oldMeta = $this->metaStore->retrieveMetadata($oldFile, "users_meta", false, AJXP_METADATA_SCOPE_GLOBAL);
     if (!count($oldMeta)) {
         return;
     }
     // If it's a move or a delete, delete old data
     if (!$copy) {
         $this->metaStore->removeMetadata($oldFile, "users_meta", false, AJXP_METADATA_SCOPE_GLOBAL);
     }
     // If copy or move, copy data.
     if ($newFile != null) {
         $this->metaStore->setMetadata($newFile, "users_meta", $oldMeta, false, AJXP_METADATA_SCOPE_GLOBAL);
     }
 }