public function validateServices($language, $version)
{
$resultcode = $this->getResultCode();
if ($resultcode != 1000) {
$errormessage = $this->getResultMessage();
$value = $this->getResultValue();
$errorstring = "Error {$resultcode}: {$errormessage} ({$value})";
throw new eppException($errorstring);
}
$versions = $this->getVersions();
$versionok = false;
$supported = '';
if (is_array($versions)) {
foreach ($versions as $ver) {
if ($ver == $version) {
$versionok = true;
}
$supported .= $ver . ' ';
}
}
if (!$versionok) {
throw new eppException($this->version . ' is not a supported version, supported versions: ' . $supported);
}
$languages = $this->getLanguages();
$languageok = false;
$supported = '';
if (is_array($languages)) {
foreach ($languages as $lang) {
if ($lang == $language) {
$languageok = true;
}
$supported .= $lang . ' ';
}
}
if (!$languageok) {
throw new eppException($this->language . ' is not a supported language, supported languages: ' . $supported);
}
$servs = $this->getServices();
if (is_array($this->objuri)) {
foreach ($this->objuri as $type => $objuri) {
if ($type != 'epp') {
$objuriok = false;
$supported = '';
foreach ($servs as $service) {
if ($service == $objuri) {
$objuriok = true;
}
$supported .= $service . ' ';
}
if (!$objuriok) {
throw new eppException($objuri . ' is not supported, supported services: ' . $supported);
}
}
}
}
$exts = $this->getExtensions();
if (is_array($this->exturi)) {
foreach ($this->exturi as $exturi) {
$exturiok = false;
$supported = '';
foreach ($exts as $extension) {
if ($extension == $exturi) {
$exturiok = true;
}
$supported .= $extension . ' ';
}
if (!$exturiok) {
throw new eppException($exturi . ' extension is not supported, supported extensions: ' . $supported);
}
}
}
}