/**
  * @param Adt $adt
  */
 private function createVertexAndEdgesBy(Adt $adt)
 {
     $this->adtRootName = $adt->getDeclaredNamespace();
     $this->adtRootVertex = $this->createVertexBy($this->adtRootName);
     $location = new Location($this->currentAnalysisFile, $this->adtRootName);
     $this->addLocationTo($this->adtRootVertex, $location);
     $this->adtRootVertex->setAttribute('adt', $adt->toArray());
     if ($this->isCallMode) {
         $this->createEdgesFor($adt->getCalledNamespaces(), $this->layout->getEdge());
     } else {
         $this->createEdgesFor($adt->getMeta()->getImplementedNamespaces(), $this->layout->getEdgeImplement());
         $this->createEdgesFor($adt->getMeta()->getExtendedNamespaces(), $this->layout->getEdgeExtend());
         $this->createEdgesFor($adt->getMeta()->getUsedTraitNamespaces(), $this->layout->getEdgeTraitUse());
         $this->createEdgesFor($adt->getUsedNamespaces(), $this->layout->getEdge());
     }
     $this->createEdgesFor($adt->getUnsupportedStmts(), $this->layout->getEdgeUnsupported(), $this->layout->getVertexUnsupported());
     $this->createEdgesFor($adt->getNamespacedStrings(), $this->layout->getEdgeNamespacedString(), $this->layout->getVertexNamespacedString());
 }