public function validateUrl($att, $params) { switch ($this->type) { case DiscoveryRule::DESC_TYPE_NSI: $parser = new NSIParser(); if (!$parser->loadFile($this->url)) { $this->addError('url', 'Check your URL and try again.'); return false; } switch ($this->protocol) { case DiscoveryRule::PROTOCOL_HTTP: if (!$parser->isTD()) { $this->addError('url', 'The inserted URL does not contains a valid NSI Topology.'); return false; } return true; break; case DiscoveryRule::PROTOCOL_NSI_DS: if (!$parser->isDS()) { $this->addError('url', 'The inserted URL does not contains a valid service.'); return false; } $parser->parseLocalProvider(); $this->provider_nsa = $parser->getData()['local']['nsa']; return true; } break; case DiscoveryRule::DESC_TYPE_NMWG: $parser = new NMWGParser(); if (!$parser->loadFile($this->url)) { $this->addError('url', 'Check your URL and try again.'); return false; } if (!$parser->isTD()) { $this->addError('url', 'The inserted URL does not contains a valid NMWG Topology.'); return false; } return true; } }