/** * Factory * @param mpp payment processor model * @param mp payment model * @return initialized PaymentProcessor or null */ public static PaymentProcessor Create(MPaymentProcessor mpp, MPayment mp) { _log.Info("create for " + mpp); String className = mpp.GetPayProcessorClass(); if (className == null || className.Length == 0) { _log.Log(Level.SEVERE, "No PaymentProcessor class name in " + mpp); return(null); } // PaymentProcessor myProcessor = null; try { //Class ppClass = Class.forName(className); //if (ppClass != null) // myProcessor = (PaymentProcessor)ppClass.newInstance(); Type ppClass = Type.GetType(className); if (ppClass != null) { myProcessor = (PaymentProcessor)Activator.CreateInstance(ppClass); } } //catch (Error e1) // NoClassDefFound //{ // _log.Log(Level.SEVERE, className + " - Error=" + e1.Message); // return null; //} catch (Exception e2) { _log.Log(Level.SEVERE, className, e2); return(null); } if (myProcessor == null) { _log.Log(Level.SEVERE, "no class"); return(null); } // Initialize myProcessor._mpp = mpp; myProcessor._mp = mp; // return(myProcessor); }