/**
  * Build an array that represents a paypal payer
  *
  * @param array|\ArrayAccess|PayPalRestApiClient\Model\PayerInterface $payer an array of values 
  * or an istance of a class implmenting PayPalRestApiClient\Model\PayerInterface or \ArrayAccess interface
  * 
  * @return array
  * 
  * @throws PayPalRestApiClient\Exception\BuilderException if the given input parameter is not an array or
  * it is not an object implementing PayPalRestApiClient\Model\PayerInterface or \ArrayAccess interface
  * 
  * @see https://developer.paypal.com/docs/api/#payer-object
  */
 public function buildArray($payer)
 {
     $payerData = array();
     if ($payer instanceof PayerInterface) {
         $payerData['payment_method'] = $payer->getPaymentMethod();
         if ($fundingInstruments = $payer->getFundingInstruments()) {
             $payerData['funding_instruments'] = $fundingInstruments;
         }
         if ($info = $payer->getInfo()) {
             $payerData['payer_info'] = $info;
         }
         return $payerData;
     }
     if (($payer instanceof \ArrayAccess || is_array($payer)) && isset($payer['payment_method'])) {
         $payerData['payment_method'] = $payer['payment_method'];
         if (isset($payer['funding_instruments'])) {
             $payerData['funding_instruments'] = $payer['funding_instruments'];
         }
         if (isset($payer['payer_info'])) {
             $payerData['payer_info'] = $payer['payer_info'];
         }
         return $payerData;
     }
     throw new BuilderException('Payer is not valid');
 }