name; } /** * Get id * * @return int */ public function getId() { return $this->id; } /** * @param string $name * * @return Node */ public function setName($name) { $this->name = $name; return $this; } /** * @return string */ public function getName() { return $this->name; } /** * @return NAP */ public function getParent() { return $this->parent; } /** * @param NAP $parent * * @return $this */ public function setParent($parent = null) { $this->parent = $parent; return $this; } /** * @return ContainerInterface */ public function getContainer() { return $this->container; } /** * @param ContainerInterface $container */ public function setContainer(ContainerInterface $container) { $this->container = $container; } /** * @return int Retorna la cantidad de puertos libres. */ public function getFreePort() { $em = $this->getContainer()->get("doctrine.orm.entity_manager"); $query = $em->createQuery('SELECT n.id, COUNT(DISTINCT n.id) AS usedPort FROM ' . ONU::class . ' o JOIN o.nap n where n.id = ' . $this->getId()); $onusQuery = $query->getResult(); $freePort = $this::MAX_NUMBER_ONU; foreach ($onusQuery as $key => $nap) { if (is_numeric($nap['usedPort'])) { $freePort = NAP::MAX_NUMBER_ONU - $nap['usedPort']; } } return $freePort; } }