package com.mopub.mobileads.factories; import com.mopub.mobileads.CustomEventInterstitial; import java.lang.reflect.Constructor; public class CustomEventInterstitialFactory { private static CustomEventInterstitialFactory instance = new CustomEventInterstitialFactory(); public static CustomEventInterstitial create(String className) throws Exception { return instance.internalCreate(className); } @Deprecated // for testing public static void setInstance(CustomEventInterstitialFactory factory) { instance = factory; } protected CustomEventInterstitial internalCreate(String className) throws Exception { Class<? extends CustomEventInterstitial> interstitialClass = Class.forName(className) .asSubclass(CustomEventInterstitial.class); Constructor<?> interstitialConstructor = interstitialClass.getDeclaredConstructor((Class[]) null); interstitialConstructor.setAccessible(true); return (CustomEventInterstitial) interstitialConstructor.newInstance(); } }