static function singleton(&$gateway_adapter)
 {
     if (!self::$instance || $gateway_adapter->isBatchProcessor()) {
         self::$instance = new self($gateway_adapter);
     }
     return self::$instance;
 }
 /**
  * Get an instance of Gateway_Extras_CustomFilters_MinFraud
  *
  * @param GatewayType $gateway_adapter
  * @param Gateway_Extras_CustomFilters $custom_filter_object
  *
  * @return Gateway_Extras_CustomFilters_MinFraud
  */
 protected static function singleton(GatewayType $gateway_adapter, Gateway_Extras_CustomFilters $custom_filter_object)
 {
     if (!self::$instance || $gateway_adapter->isBatchProcessor()) {
         self::$instance = new self($gateway_adapter, $custom_filter_object);
     }
     return self::$instance;
 }
 protected function runFilters($phase)
 {
     switch ($phase) {
         case self::PHASE_INITIAL:
             Gateway_Extras_CustomFilters_Referrer::onInitialFilter($this->gateway_adapter, $this);
             Gateway_Extras_CustomFilters_Source::onInitialFilter($this->gateway_adapter, $this);
             Gateway_Extras_CustomFilters_Functions::onInitialFilter($this->gateway_adapter, $this);
             Gateway_Extras_CustomFilters_IP_Velocity::onInitialFilter($this->gateway_adapter, $this);
             break;
         case self::PHASE_VALIDATE:
             Gateway_Extras_CustomFilters_Functions::onFilter($this->gateway_adapter, $this);
             Gateway_Extras_CustomFilters_MinFraud::onFilter($this->gateway_adapter, $this);
             Gateway_Extras_CustomFilters_IP_Velocity::onFilter($this->gateway_adapter, $this);
             break;
     }
 }