/**
  * @param IValidatorIterator
  * @param ISchemaValidator
  * @param IPayloadMap
  * @param LoggerInterface
  * @param IPayload
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function __construct(IValidatorIterator $validators, ISchemaValidator $schemaValidator, IPayloadMap $payloadMap, LoggerInterface $logger, IPayload $parentPayload = null)
 {
     parent::__construct($validators, $schemaValidator, $payloadMap, $logger, $parentPayload);
     $this->logger = $logger;
     // extract parent data as well as additional data needed
     // for the subclass
     $this->extractionPaths = array_merge($this->extractionPaths, ['remainingQuantity' => 'number(@remainingQuantity)', 'amount' => 'number(x:Pricing/x:AdjustedAmount)', 'OrderReturnReason' => 'string(x:OrderReturnReason)', 'reason' => 'string(x:OrderReturnReason)', 'reasonCode' => 'string(x:OrderReturnReason/@reasonCode)']);
 }
 /**
  * @param IValidatorIterator
  * @param ISchemaValidator
  * @param IPayloadMap
  * @param LoggerInterface
  * @param IPayload
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function __construct(IValidatorIterator $validators, ISchemaValidator $schemaValidator, IPayloadMap $payloadMap, LoggerInterface $logger, IPayload $parentPayload = null)
 {
     parent::__construct($validators, $schemaValidator, $payloadMap, $logger, $parentPayload);
     $this->logger = $logger;
     $this->payloadMap = $payloadMap;
     $this->payloadFactory = new PayloadFactory();
     $this->optionalExtractionPaths = array_merge($this->optionalExtractionPaths, ['amount' => 'x:Pricing/x:Amount', 'unitPrice' => 'x:Pricing/x:UnitPrice', 'remainder' => 'x:Pricing/x:Amount/@remainder']);
 }
 /**
  * @param IValidatorIterator
  * @param ISchemaValidator
  * @param IPayloadMap
  * @param LoggerInterface
  * @param IPayload
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function __construct(IValidatorIterator $validators, ISchemaValidator $schemaValidator, IPayloadMap $payloadMap, LoggerInterface $logger, IPayload $parentPayload = null)
 {
     parent::__construct($validators, $schemaValidator, $payloadMap, $logger, $parentPayload);
     $this->logger = $logger;
     $this->payloadMap = $payloadMap;
     $this->payloadFactory = new PayloadFactory();
     $this->trackingNumbers = $this->buildPayloadForInterface(static::TRACKING_NUMBER_ITERABLE_INTERFACE);
     // extract parent data as well as additional data needed
     // for the subclass
     $this->extractionPaths = array_merge($this->extractionPaths, ['shippedQuantity' => 'number(@shippedQuantity)', 'shopRunnerMessage' => 'string(x:ShopRunnerMessage)']);
     $this->optionalExtractionPaths = array_merge($this->optionalExtractionPaths, ['amount' => 'x:Pricing/x:Amount', 'unitPrice' => 'x:Pricing/x:UnitPrice', 'remainder' => 'x:Pricing/x:Amount/@remainder']);
     $this->subpayloadExtractionPaths = array_merge($this->subpayloadExtractionPaths, ['trackingNumbers' => 'x:TrackingNumberList']);
 }