2015-08-17 17:00:26 -07:00
< ? php
/*
* This file is part of the Symfony package .
*
* ( c ) Fabien Potencier < fabien @ symfony . com >
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Symfony\Component\DependencyInjection\Compiler ;
use Symfony\Component\DependencyInjection\Alias ;
2018-11-23 12:29:20 +00:00
use Symfony\Component\DependencyInjection\Definition ;
2015-08-17 17:00:26 -07:00
/**
* Represents a node in your service graph .
*
* Value is typically a definition , or an alias .
*
* @ author Johannes M . Schmitt < schmittjoh @ gmail . com >
*/
class ServiceReferenceGraphNode
{
private $id ;
private $inEdges = array ();
private $outEdges = array ();
private $value ;
/**
* @ param string $id The node identifier
* @ param mixed $value The node value
*/
public function __construct ( $id , $value )
{
$this -> id = $id ;
$this -> value = $value ;
}
public function addInEdge ( ServiceReferenceGraphEdge $edge )
{
$this -> inEdges [] = $edge ;
}
public function addOutEdge ( ServiceReferenceGraphEdge $edge )
{
$this -> outEdges [] = $edge ;
}
/**
* Checks if the value of this node is an Alias .
*
* @ return bool True if the value is an Alias instance
*/
public function isAlias ()
{
return $this -> value instanceof Alias ;
}
/**
* Checks if the value of this node is a Definition .
*
* @ return bool True if the value is a Definition instance
*/
public function isDefinition ()
{
return $this -> value instanceof Definition ;
}
/**
* Returns the identifier .
*
* @ return string
*/
public function getId ()
{
return $this -> id ;
}
/**
* Returns the in edges .
*
* @ return array The in ServiceReferenceGraphEdge array
*/
public function getInEdges ()
{
return $this -> inEdges ;
}
/**
* Returns the out edges .
*
* @ return array The out ServiceReferenceGraphEdge array
*/
public function getOutEdges ()
{
return $this -> outEdges ;
}
/**
* Returns the value of this Node .
*
* @ return mixed The value
*/
public function getValue ()
{
return $this -> value ;
}
2018-11-23 12:29:20 +00:00
/**
* Clears all edges .
*/
public function clear ()
{
$this -> inEdges = $this -> outEdges = array ();
}
2015-08-17 17:00:26 -07:00
}