function __construct($operation, $object)
{
parent::__construct();
#
# Sanity checks
#
switch ($operation) {
case self::OPERATION_QUERY:
if ($object instanceof eppDomain) {
if (!strlen($object->getDomainname())) {
throw new eppException('Domain object does not contain a valid domain name on eppTransferRequest');
}
$this->setDomainQuery($object);
} elseif ($object instanceof eppContactHandle) {
$this->setContactQuery($object);
}
break;
case self::OPERATION_REQUEST:
if ($object instanceof eppDomain) {
if (!strlen($object->getDomainname())) {
throw new eppException('Domain object does not contain a valid domain name on eppTransferRequest');
}
$this->setDomainRequest($object);
} elseif ($object instanceof eppContactHandle) {
$this->setContactQuery($object);
}
break;
case self::OPERATION_CANCEL:
if ($object instanceof eppDomain) {
if (!strlen($object->getDomainname())) {
throw new eppException('Domain object does not contain a valid domain name on eppTransferRequest');
}
$this->setDomainCancel($object);
} elseif ($object instanceof eppContactHandle) {
throw new eppException('CANCEL operation not possible on contact transfer query');
}
break;
case self::OPERATION_APPROVE:
if ($object instanceof eppDomain) {
if (!strlen($object->getDomainname())) {
throw new eppException('Domain object does not contain a valid domain name on eppTransferRequest');
}
$this->setDomainApprove($object);
} elseif ($object instanceof eppContactHandle) {
throw new eppException('APPROVE operation not possible on contact transfer query');
}
break;
case self::OPERATION_REJECT:
if ($object instanceof eppDomain) {
if (!strlen($object->getDomainname())) {
throw new eppException('Domain object does not contain a valid domain name on eppTransferRequest');
}
$this->setDomainReject($object);
} elseif ($object instanceof eppContactHandle) {
throw new eppException('REJECT operation not possible on contact transfer query');
}
break;
default:
throw new eppException('Operation parameter needs to be QUERY, REQUEST, CANCEL, APPROVE or REJECT on eppTransferRequest');
break;
}
$this->addSessionId();
}