/**
  * @param object $object
  * @return $this
  * @throws UnexpectedValueException
  */
 public function fromObject($object)
 {
     parent::fromObject($object);
     if (property_exists($object, 'amountPaid')) {
         $this->amountPaid = $object->amountPaid;
     }
     if (property_exists($object, 'bankRefundMethodSpecificOutput')) {
         if (!is_object($object->bankRefundMethodSpecificOutput)) {
             throw new UnexpectedValueException('value \'' . print_r($object->bankRefundMethodSpecificOutput, true) . '\' is not an object');
         }
         $value = new RefundBankMethodSpecificOutput();
         $this->bankRefundMethodSpecificOutput = $value->fromObject($object->bankRefundMethodSpecificOutput);
     }
     if (property_exists($object, 'cardRefundMethodSpecificOutput')) {
         if (!is_object($object->cardRefundMethodSpecificOutput)) {
             throw new UnexpectedValueException('value \'' . print_r($object->cardRefundMethodSpecificOutput, true) . '\' is not an object');
         }
         $value = new RefundCardMethodSpecificOutput();
         $this->cardRefundMethodSpecificOutput = $value->fromObject($object->cardRefundMethodSpecificOutput);
     }
     if (property_exists($object, 'eWalletRefundMethodSpecificOutput')) {
         if (!is_object($object->eWalletRefundMethodSpecificOutput)) {
             throw new UnexpectedValueException('value \'' . print_r($object->eWalletRefundMethodSpecificOutput, true) . '\' is not an object');
         }
         $value = new RefundEWalletMethodSpecificOutput();
         $this->eWalletRefundMethodSpecificOutput = $value->fromObject($object->eWalletRefundMethodSpecificOutput);
     }
     if (property_exists($object, 'paymentMethod')) {
         $this->paymentMethod = $object->paymentMethod;
     }
     return $this;
 }
 /**
  * @param object $object
  * @return $this
  * @throws UnexpectedValueException
  */
 public function fromObject($object)
 {
     parent::fromObject($object);
     if (property_exists($object, 'amountPaid')) {
         $this->amountPaid = $object->amountPaid;
     }
     if (property_exists($object, 'bankTransferPaymentMethodSpecificOutput')) {
         if (!is_object($object->bankTransferPaymentMethodSpecificOutput)) {
             throw new UnexpectedValueException('value \'' . print_r($object->bankTransferPaymentMethodSpecificOutput, true) . '\' is not an object');
         }
         $value = new BankTransferPaymentMethodSpecificOutput();
         $this->bankTransferPaymentMethodSpecificOutput = $value->fromObject($object->bankTransferPaymentMethodSpecificOutput);
     }
     if (property_exists($object, 'cardPaymentMethodSpecificOutput')) {
         if (!is_object($object->cardPaymentMethodSpecificOutput)) {
             throw new UnexpectedValueException('value \'' . print_r($object->cardPaymentMethodSpecificOutput, true) . '\' is not an object');
         }
         $value = new CardPaymentMethodSpecificOutput();
         $this->cardPaymentMethodSpecificOutput = $value->fromObject($object->cardPaymentMethodSpecificOutput);
     }
     if (property_exists($object, 'cashPaymentMethodSpecificOutput')) {
         if (!is_object($object->cashPaymentMethodSpecificOutput)) {
             throw new UnexpectedValueException('value \'' . print_r($object->cashPaymentMethodSpecificOutput, true) . '\' is not an object');
         }
         $value = new CashPaymentMethodSpecificOutput();
         $this->cashPaymentMethodSpecificOutput = $value->fromObject($object->cashPaymentMethodSpecificOutput);
     }
     if (property_exists($object, 'directDebitPaymentMethodSpecificOutput')) {
         if (!is_object($object->directDebitPaymentMethodSpecificOutput)) {
             throw new UnexpectedValueException('value \'' . print_r($object->directDebitPaymentMethodSpecificOutput, true) . '\' is not an object');
         }
         $value = new NonSepaDirectDebitPaymentMethodSpecificOutput();
         $this->directDebitPaymentMethodSpecificOutput = $value->fromObject($object->directDebitPaymentMethodSpecificOutput);
     }
     if (property_exists($object, 'invoicePaymentMethodSpecificOutput')) {
         if (!is_object($object->invoicePaymentMethodSpecificOutput)) {
             throw new UnexpectedValueException('value \'' . print_r($object->invoicePaymentMethodSpecificOutput, true) . '\' is not an object');
         }
         $value = new InvoicePaymentMethodSpecificOutput();
         $this->invoicePaymentMethodSpecificOutput = $value->fromObject($object->invoicePaymentMethodSpecificOutput);
     }
     if (property_exists($object, 'paymentMethod')) {
         $this->paymentMethod = $object->paymentMethod;
     }
     if (property_exists($object, 'redirectPaymentMethodSpecificOutput')) {
         if (!is_object($object->redirectPaymentMethodSpecificOutput)) {
             throw new UnexpectedValueException('value \'' . print_r($object->redirectPaymentMethodSpecificOutput, true) . '\' is not an object');
         }
         $value = new RedirectPaymentMethodSpecificOutput();
         $this->redirectPaymentMethodSpecificOutput = $value->fromObject($object->redirectPaymentMethodSpecificOutput);
     }
     if (property_exists($object, 'sepaDirectDebitPaymentMethodSpecificOutput')) {
         if (!is_object($object->sepaDirectDebitPaymentMethodSpecificOutput)) {
             throw new UnexpectedValueException('value \'' . print_r($object->sepaDirectDebitPaymentMethodSpecificOutput, true) . '\' is not an object');
         }
         $value = new SepaDirectDebitPaymentMethodSpecificOutput();
         $this->sepaDirectDebitPaymentMethodSpecificOutput = $value->fromObject($object->sepaDirectDebitPaymentMethodSpecificOutput);
     }
     return $this;
 }
 /**
  * @param object $object
  * @return $this
  * @throws UnexpectedValueException
  */
 public function fromObject($object)
 {
     parent::fromObject($object);
     if (property_exists($object, 'payoutOutput')) {
         if (!is_object($object->payoutOutput)) {
             throw new UnexpectedValueException('value \'' . print_r($object->payoutOutput, true) . '\' is not an object');
         }
         $value = new OrderOutput();
         $this->payoutOutput = $value->fromObject($object->payoutOutput);
     }
     if (property_exists($object, 'status')) {
         $this->status = $object->status;
     }
     if (property_exists($object, 'statusOutput')) {
         if (!is_object($object->statusOutput)) {
             throw new UnexpectedValueException('value \'' . print_r($object->statusOutput, true) . '\' is not an object');
         }
         $value = new OrderStatusOutput();
         $this->statusOutput = $value->fromObject($object->statusOutput);
     }
     return $this;
 }