/**
  * Constructs object
  *
  * @param array     $error
  * @param integer   $statusCode
  * @param string    $statusCodeMessage
  * @param Exception $previous
  */
 public function __construct(array $error, $statusCode, $statusCodeMessage, $previous = null)
 {
     $this->setStatusCode($statusCode);
     $this->setStatusCodeMessage($statusCodeMessage);
     $message = 'Got error response from Wallet API.';
     if (isset($error['error'])) {
         $code = $error['error'];
         $message .= ' Error code: ' . $code . ', status code: ' . $statusCode;
         $this->setErrorCode($error['error']);
     } else {
         $message .= ' No error code, status code: ' . $statusCode;
     }
     if (isset($error['error_description'])) {
         $this->setErrorDescription($error['error_description']);
         $message .= '. ' . $error['error_description'];
     }
     if (isset($error['error_uri'])) {
         $this->setErrorUri($error['error_uri']);
         $message .= '. See more at ' . $error['error_uri'];
     }
     if (isset($error['error_properties'])) {
         $this->setProperties($error['error_properties']);
     }
     parent::__construct($message, 0, $previous);
 }
 /**
  * Constructs object
  *
  * @param string     $message
  * @param string     $errorCode
  * @param Exception $exception
  */
 public function __construct($message, $errorCode, $exception = null)
 {
     $this->errorCode = $errorCode;
     parent::__construct($message, 0, $exception);
 }