X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fdrupalmoduleupgrader%2Fsrc%2FRouting%2FLinkBinding%2FLinkBindingFactory.php;fp=web%2Fmodules%2Fcontrib%2Fdrupalmoduleupgrader%2Fsrc%2FRouting%2FLinkBinding%2FLinkBindingFactory.php;h=1168bdee6b24aec66b78452d5c8e79024253ffae;hp=0000000000000000000000000000000000000000;hb=8acec36f19c470dfcda1ae2336826a782f41874c;hpb=e0411c4e83ba0d079034db83c3f7f55be24a0e35 diff --git a/web/modules/contrib/drupalmoduleupgrader/src/Routing/LinkBinding/LinkBindingFactory.php b/web/modules/contrib/drupalmoduleupgrader/src/Routing/LinkBinding/LinkBindingFactory.php new file mode 100644 index 000000000..1168bdee6 --- /dev/null +++ b/web/modules/contrib/drupalmoduleupgrader/src/Routing/LinkBinding/LinkBindingFactory.php @@ -0,0 +1,51 @@ +linkManager = $link_manager; + } + + /** + * Factory method. Returns a link binding object appropriate for the source link type. + * + * @param Drupal7Route $source + * The source (Drupal 7) route. + * @param Drupal8Route $destination + * The destination (Drupal 8) route. + * + * @return mixed + * A link binding object; either an instance of this class or a subclass thereof. + */ + public function create(Drupal7Route $source, Drupal8Route $destination) { + if ($source->isLink()) { + return new MenuLinkBinding($source, $destination); + } + elseif ($source->isLocalTask() || $source->isDefaultLocalTask()) { + return new LocalTaskLinkBinding($source, $destination, $this->linkManager); + } + elseif ($source->isLocalAction()) { + if ($source->isContextualLink()) { + return new LinkBinding($source, $destination); + } + else { + return new LocalActionLinkBinding($source, $destination); + } + } + } + +}