/**
  * Fill a lib's graph object.
  *
  * @param  GraphCommons\Graph\Graph $graph
  * @param  array|object $g
  * @return GraphCommons\Graph\Graph
  */
 private final function fillGraph(Graph $graph, $g) : Graph
 {
     // force input being an object
     $g = Util::toObject($g);
     if (isset($g->id)) {
         $graph->setId($g->id)->setName($g->name)->setDescription($g->description)->setSubtitle($g->subtitle)->setStatus($g->status)->setCreatedAt($g->created_at);
         // add signals if exists
         if (isset($g->signals)) {
             $array = [];
             foreach ($g->signals as $i => $signal) {
                 $action = $signal->action;
                 unset($signal->action);
                 $array[$i]['action'] = Signal::detectAction($action);
                 $array[$i]['parameters'] = Util::toArray($signal);
             }
             $graph->setSignals(SignalCollection::fromArray($array));
         }
     }
     return $graph;
 }