/**
  * eppInfoDomainRequest constructor.
  * @param $infodomain
  * @param null $hosts
  * @throws eppException
  */
 public function __construct($infodomain, $hosts = null, $namespacesinroot = true)
 {
     $this->setNamespacesinroot($namespacesinroot);
     parent::__construct(eppRequest::TYPE_INFO);
     if ($infodomain instanceof eppDomain) {
         $this->setDomain($infodomain, $hosts);
     } else {
         throw new eppException('parameter of infodomainrequest needs to be eppDomain object');
     }
     $this->addSessionId();
 }
 function __construct(eppDomain $deleteinfo, $namespacesinroot = true)
 {
     $this->setNamespacesinroot($namespacesinroot);
     parent::__construct(eppRequest::TYPE_DELETE);
     if ($deleteinfo instanceof eppDomain) {
         $this->setDomain($deleteinfo);
     } else {
         throw new eppException('parameter of eppDeleteDomainRequest must be eppDomain object');
     }
     $this->addSessionId();
 }
 function __construct($createinfo, $forcehostattr = false, $namespacesinroot = true)
 {
     $this->setNamespacesinroot($namespacesinroot);
     $this->setForcehostattr($forcehostattr);
     parent::__construct(eppRequest::TYPE_CREATE);
     if ($createinfo instanceof eppDomain) {
         $this->setDomain($createinfo);
     } else {
         throw new eppException('createinfo must be of type eppDomain on eppCreateDomainRequest');
     }
     $this->addSessionId();
 }
 function __construct($domain, $expdate = null, $namespacesinroot = true)
 {
     $this->setNamespacesinroot($namespacesinroot);
     parent::__construct(eppRequest::TYPE_RENEW);
     #
     # Sanity checks
     #
     if (!$domain instanceof eppDomain) {
         throw new eppException('eppRenewRequest needs valid eppDomain object as parameter');
     }
     $this->setDomain($domain, $expdate);
     $this->addSessionId();
 }
 function __construct($checkrequest, $namespacesinroot = true)
 {
     $this->setNamespacesinroot($namespacesinroot);
     parent::__construct(eppRequest::TYPE_CHECK);
     if ($checkrequest instanceof eppDomain) {
         $this->setDomainNames(array($checkrequest));
     } else {
         if (is_array($checkrequest)) {
             if ($checkrequest[0] instanceof eppDomain) {
                 $this->setDomainNames($checkrequest);
             } else {
                 if (is_string($checkrequest[0])) {
                     $this->setDomainNames($checkrequest);
                 }
             }
         }
     }
     $this->addSessionId();
 }
 function __construct($objectname, $addinfo = null, $removeinfo = null, $updateinfo = null, $forcehostattr = false, $namespacesinroot = true)
 {
     $this->setNamespacesinroot($namespacesinroot);
     $this->setForcehostattr($forcehostattr);
     parent::__construct(eppRequest::TYPE_UPDATE);
     if ($objectname instanceof eppDomain) {
         $domainname = $objectname->getDomainname();
     } else {
         if (strlen($objectname)) {
             $domainname = $objectname;
         } else {
             throw new eppException("Object name must be valid string on eppUpdateDomainRequest");
         }
     }
     if ($addinfo instanceof eppDomain || $removeinfo instanceof eppDomain || $updateinfo instanceof eppDomain) {
         $this->updateDomain($domainname, $addinfo, $removeinfo, $updateinfo);
     } else {
         throw new eppException('addinfo, removeinfo and updateinfo needs to be eppDomain object on eppUpdateDomainRequest');
     }
     $this->addSessionId();
 }