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