multiversion-8.x-1.0-beta34/src/Entity/Index/ComplexLcaResolver.php

src/Entity/Index/ComplexLcaResolver.php
<?php

namespace Drupal\Multiversion\Entity\Index;

use Drupal\conflict\ConflictAncestorResolverInterface;
use Drupal\Core\Entity\RevisionableInterface;
use Relaxed\LCA\LowestCommonAncestor;
use Fhaculty\Graph\Graph;

class ComplexLcaResolver implements ConflictAncestorResolverInterface {

  /**
   * {@inheritdoc}
   */
  public function applies() {
    return TRUE;
  }
  
  /**
   * Find the lowest common parent of two revisions from given graph.
   *
   * @param RevisionableInterface $revision1
   * @param RevisionableInterface $revision2
   * @param Graph $graph
   *
   * @return array
   *   Returns an array of vertices or an empty array.
   */
  public function resolve(RevisionableInterface $revision1, RevisionableInterface $revision2, Graph $graph = NULL) {
    $lca = new LowestCommonAncestor($graph);
    $vertices = $graph->getVertices()->getMap();
    return $lca->find($vertices[$revision1->_rev->value], $vertices[$revision2->_rev->value]);
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc