- static function &singleton($mode, &$paymentProcessor) {
- $processorName = $paymentProcessor['name'];
- if (self::$_singleton[$processorName] === NULL) {
- self::$_singleton[$processorName] = new CRM_Core_Payment_eWAY($mode, $paymentProcessor);
+ public static function &singleton($mode, &$paymentProcessor, &$paymentForm = NULL, $force = FALSE) {
+ if (!empty($paymentProcessor['id'])) {
+ $cacheKey = $paymentProcessor['id'];
+ }
+ else {
+ //@todo eliminated instances of this in favour of id-specific instances.
+ $cacheKey = $mode . '_' . $paymentProcessor['name'];
+ }
+
+ if (self::$_singleton[$cacheKey] === NULL) {
+ self::$_singleton[$cacheKey] = new CRM_Core_Payment_eWAY($mode, $paymentProcessor);