<?php

namespace Eurostop\Loyalty;

class LoyaltyWebServiceInterfacePluginCustom extends \SoapClient
{

    /**
     * @var array $classmap The defined classes
     */
    private static $classmap = array (
      'ArrayOfstring' => 'Eurostop\\Loyalty\\ArrayOfstring',
      'Customer' => 'Eurostop\\Loyalty\\CustomerCustom',
      'ArrayOfCustomerAccount' => 'Eurostop\\Loyalty\\ArrayOfCustomerAccountCustom',
      'CustomerAccount' => 'Eurostop\\Loyalty\\CustomerAccountCustom',
      'ArrayOfCustomerAddress' => 'Eurostop\\Loyalty\\ArrayOfCustomerAddressCustom',
      'CustomerAddress' => 'Eurostop\\Loyalty\\CustomerAddressCustom',
      'ArrayOfCustomerAttribute' => 'Eurostop\\Loyalty\\ArrayOfCustomerAttributeCustom',
      'CustomerAttribute' => 'Eurostop\\Loyalty\\CustomerAttributeCustom',
      'ArrayOfCustomer' => 'Eurostop\\Loyalty\\ArrayOfCustomerCustom',
      'SubmittedCustomer' => 'Eurostop\\Loyalty\\SubmittedCustomerCustom',
      'ArrayOfSubmittedCustomerAccount' => 'Eurostop\\Loyalty\\ArrayOfSubmittedCustomerAccountCustom',
      'SubmittedCustomerAccount' => 'Eurostop\\Loyalty\\SubmittedCustomerAccountCustom',
      'ArrayOfSubmittedCustomerAddress' => 'Eurostop\\Loyalty\\ArrayOfSubmittedCustomerAddressCustom',
      'SubmittedCustomerAddress' => 'Eurostop\\Loyalty\\SubmittedCustomerAddressCustom',
      'ArrayOfSubmittedCustomerAttribute' => 'Eurostop\\Loyalty\\ArrayOfSubmittedCustomerAttributeCustom',
      'SubmittedCustomerAttribute' => 'Eurostop\\Loyalty\\SubmittedCustomerAttributeCustom',
      'ArrayOfSubmittedCustomer' => 'Eurostop\\Loyalty\\ArrayOfSubmittedCustomerCustom',
      'CustomerAttributeType' => 'Eurostop\\Loyalty\\CustomerAttributeTypeCustom',
      'ArrayOfCustomerAttributeType' => 'Eurostop\\Loyalty\\ArrayOfCustomerAttributeTypeCustom',
      'CustomerAccountType' => 'Eurostop\\Loyalty\\CustomerAccountType',
      'ArrayOfCustomerAccountType' => 'Eurostop\\Loyalty\\ArrayOfCustomerAccountType',
      'DataRetrievalResultOfCustomere5gmbhXd' => 'Eurostop\\Loyalty\\DataRetrievalResultOfCustomere5gmbhXdCustom',
      'CodedRetrievedDataItemOfCustomerDtoKJ8WzcEX' => 'Eurostop\\Loyalty\\CodedRetrievedDataItemOfCustomerDtoKJ8WzcEXCustom',
      'RetrievedDataItemOfCustomerDtoKJ8WzcEX' => 'Eurostop\\Loyalty\\RetrievedDataItemOfCustomerDtoKJ8WzcEXCustom',
      'CodedRetrievedDataItemOfCustomerAccountDtoKJ8WzcEX' => 'Eurostop\\Loyalty\\CodedRetrievedDataItemOfCustomerAccountDtoKJ8WzcEXCustom',
      'RetrievedDataItemOfCustomerAccountDtoKJ8WzcEX' => 'Eurostop\\Loyalty\\RetrievedDataItemOfCustomerAccountDtoKJ8WzcEXCustom',
      'RetrievedDataItemOfCustomerAddressDtoKJ8WzcEX' => 'Eurostop\\Loyalty\\RetrievedDataItemOfCustomerAddressDtoKJ8WzcEXCustom',
      'SubmittedDataItemOfSubmittedCustomerDtoKJ8WzcEX' => 'Eurostop\\Loyalty\\SubmittedDataItemOfSubmittedCustomerDtoKJ8WzcEXCustom',
      'SubmittedDataItemOfSubmittedCustomerAccountDtoKJ8WzcEX' => 'Eurostop\\Loyalty\\SubmittedDataItemOfSubmittedCustomerAccountDtoKJ8WzcEXCustom',
      'SubmittedDataItemOfSubmittedCustomerAddressDtoKJ8WzcEX' => 'Eurostop\\Loyalty\\SubmittedDataItemOfSubmittedCustomerAddressDtoKJ8WzcEXCustom',
      'SubmittedDataItemOfSubmittedCustomerAttributeDtoKJ8WzcEX' => 'Eurostop\\Loyalty\\SubmittedDataItemOfSubmittedCustomerAttributeDtoKJ8WzcEXCustom',
      'DataSubmissionResult' => 'Eurostop\\Loyalty\\DataSubmissionResultCustom',
      'ArrayOfValidationError' => 'Eurostop\\Loyalty\\ArrayOfValidationErrorCustom',
      'ValidationError' => 'Eurostop\\Loyalty\\ValidationErrorCustom',
      'DataRetrievalResultOfCustomerAttributeTypee5gmbhXd' => 'Eurostop\\Loyalty\\DataRetrievalResultOfCustomerAttributeTypee5gmbhXdCustom',
      'CodedRetrievedDataItemOfCustomerAttributeTypeDtoKJ8WzcEX' => 'Eurostop\\Loyalty\\CodedRetrievedDataItemOfCustomerAttributeTypeDtoKJ8WzcEXCustom',
      'RetrievedDataItemOfCustomerAttributeTypeDtoKJ8WzcEX' => 'Eurostop\\Loyalty\\RetrievedDataItemOfCustomerAttributeTypeDtoKJ8WzcEXCustom',
      'DataRetrievalResultOfCustomerAccountTypee5gmbhXd' => 'Eurostop\\Loyalty\\DataRetrievalResultOfCustomerAccountTypee5gmbhXd',
      'CodedRetrievedDataItemOfCustomerAccountTypeDtoKJ8WzcEX' => 'Eurostop\\Loyalty\\CodedRetrievedDataItemOfCustomerAccountTypeDtoKJ8WzcEX',
      'RetrievedDataItemOfCustomerAccountTypeDtoKJ8WzcEX' => 'Eurostop\\Loyalty\\RetrievedDataItemOfCustomerAccountTypeDtoKJ8WzcEX',
      'ArrayOfDataProcessingResult' => 'Eurostop\\Loyalty\\ArrayOfDataProcessingResultCustom',
      'DataProcessingResult' => 'Eurostop\\Loyalty\\DataProcessingResultCustom',
      'ArrayOfDataProcessingStatus' => 'Eurostop\\Loyalty\\ArrayOfDataProcessingStatusCustom',
      'DataProcessingStatus' => 'Eurostop\\Loyalty\\DataProcessingStatusCustom',
      'GetCustomerByIdentifier' => 'Eurostop\\Loyalty\\GetCustomerByIdentifierCustom',
      'GetCustomerByIdentifierResponse' => 'Eurostop\\Loyalty\\GetCustomerByIdentifierResponseCustom',
      'GetCustomersByAttribute' => 'Eurostop\\Loyalty\\GetCustomersByAttributeCustom',
      'GetCustomersByAttributeResponse' => 'Eurostop\\Loyalty\\GetCustomersByAttributeResponseCustom',
      'GetCustomersByDate' => 'Eurostop\\Loyalty\\GetCustomersByDateCustom',
      'GetCustomersByDateResponse' => 'Eurostop\\Loyalty\\GetCustomersByDateResponseCustom',
      'SubmitCustomer' => 'Eurostop\\Loyalty\\SubmitCustomerCustom',
      'SubmitCustomerResponse' => 'Eurostop\\Loyalty\\SubmitCustomerResponseCustom',
      'SubmitCustomers' => 'Eurostop\\Loyalty\\SubmitCustomersCustom',
      'SubmitCustomersResponse' => 'Eurostop\\Loyalty\\SubmitCustomersResponseCustom',
      'GetCustomerAttributeTypes' => 'Eurostop\\Loyalty\\GetCustomerAttributeTypesCustom',
      'GetCustomerAttributeTypesResponse' => 'Eurostop\\Loyalty\\GetCustomerAttributeTypesResponseCustom',
      'GetCustomerAccountTypes' => 'Eurostop\\Loyalty\\GetCustomerAccountTypes',
      'GetCustomerAccountTypesResponse' => 'Eurostop\\Loyalty\\GetCustomerAccountTypesResponse',
      'FlagDataProcessingToRetryByReference' => 'Eurostop\\Loyalty\\FlagDataProcessingToRetryByReferenceCustom',
      'FlagDataProcessingToRetryByReferenceResponse' => 'Eurostop\\Loyalty\\FlagDataProcessingToRetryByReferenceResponseCustom',
      'FlagDataProcessingToRetryByToken' => 'Eurostop\\Loyalty\\FlagDataProcessingToRetryByTokenCustom',
      'FlagDataProcessingToRetryByTokenResponse' => 'Eurostop\\Loyalty\\FlagDataProcessingToRetryByTokenResponseCustom',
      'RunDataProcessingByReference' => 'Eurostop\\Loyalty\\RunDataProcessingByReferenceCustom',
      'RunDataProcessingByReferenceResponse' => 'Eurostop\\Loyalty\\RunDataProcessingByReferenceResponseCustom',
      'RunDataProcessingByToken' => 'Eurostop\\Loyalty\\RunDataProcessingByTokenCustom',
      'RunDataProcessingByTokenResponse' => 'Eurostop\\Loyalty\\RunDataProcessingByTokenResponseCustom',
    );

    /**
     * @param array $options A array of config values
     * @param string $wsdl The wsdl file to use
     */
    public function __construct(array $options = array(), $wsdl = null)
    {
      foreach (self::$classmap as $key => $value) {
        if (!isset($options['classmap'][$key])) {
          $options['classmap'][$key] = $value;
        }
      }
      $options = array_merge(array (
      'features' => 1,
    ), $options);
      if (!$wsdl) {
        $wsdl = 'https://database-test.eurostop.jdsportscanada.com:9120/e-interface/loyalty?wsdl';
      }
      parent::__construct($wsdl, $options);
    }

    /**
     * @param GetCustomerByIdentifierCustom $parameters
     * @return GetCustomerByIdentifierResponse
     */
    public function GetCustomerByIdentifier($parameters)
    {
      return $this->__soapCall('GetCustomerByIdentifier', array($parameters));
    }

    /**
     * @param GetCustomersByAttributeCustom $parameters
     * @return GetCustomersByAttributeResponse
     */
    public function GetCustomersByAttribute($parameters)
    {
      return $this->__soapCall('GetCustomersByAttribute', array($parameters));
    }

    /**
     * @param GetCustomersByDateCustom $parameters
     * @return GetCustomersByDateResponse
     */
    public function GetCustomersByDate($parameters)
    {
      return $this->__soapCall('GetCustomersByDate', array($parameters));
    }

    /**
     * @param SubmitCustomerCustom $parameters
     * @return SubmitCustomerResponse
     */
    public function SubmitCustomer($parameters)
    {
      return $this->__soapCall('SubmitCustomer', array($parameters));
    }

    /**
     * @param SubmitCustomersCustom $parameters
     * @return SubmitCustomersResponse
     */
    public function SubmitCustomers($parameters)
    {
      return $this->__soapCall('SubmitCustomers', array($parameters));
    }

    /**
     * @param GetCustomerAttributeTypesCustom $parameters
     * @return GetCustomerAttributeTypesResponse
     */
    public function GetCustomerAttributeTypes($parameters)
    {
      return $this->__soapCall('GetCustomerAttributeTypes', array($parameters));
    }

    /**
     * @param GetCustomerAccountTypes $parameters
     * @return GetCustomerAccountTypesResponse
     */
    public function GetCustomerAccountTypes(GetCustomerAccountTypes $parameters)
    {
      return $this->__soapCall('GetCustomerAccountTypes', array($parameters));
    }

    /**
     * @param FlagDataProcessingToRetryByReferenceCustom $parameters
     * @return FlagDataProcessingToRetryByReferenceResponse
     */
    public function FlagDataProcessingToRetryByReference($parameters)
    {
      return $this->__soapCall('FlagDataProcessingToRetryByReference', array($parameters));
    }

    /**
     * @param FlagDataProcessingToRetryByTokenCustom $parameters
     * @return FlagDataProcessingToRetryByTokenResponse
     */
    public function FlagDataProcessingToRetryByToken($parameters)
    {
      return $this->__soapCall('FlagDataProcessingToRetryByToken', array($parameters));
    }

    /**
     * @param RunDataProcessingByReferenceCustom $parameters
     * @return RunDataProcessingByReferenceResponse
     */
    public function RunDataProcessingByReference($parameters)
    {
      return $this->__soapCall('RunDataProcessingByReference', array($parameters));
    }

    /**
     * @param RunDataProcessingByTokenCustom $parameters
     * @return RunDataProcessingByTokenResponse
     */
    public function RunDataProcessingByToken($parameters)
    {
      return $this->__soapCall('RunDataProcessingByToken', array($parameters));
    }

}
