package com.mozu.api; import java.lang.reflect.Constructor; public class MozuClientFactory<TResult> { private static final String CLIENT_CLASS_NAME = "com.mozu.client.MozuClientImpl"; public static MozuClient<?> getInstance(Class<?> clz) throws Exception { Constructor<? extends MozuClient> constructor = (Constructor<? extends MozuClient>) Class.forName(CLIENT_CLASS_NAME).getConstructor(new Class[] {Class.class}); return (MozuClient<?>) constructor.newInstance(clz); } public static MozuClient<?> getInstance(Class<?> clz, String className) throws Exception { Constructor<? extends MozuClient> constructor = (Constructor<? extends MozuClient>) Class.forName(className).getConstructor(new Class[] {Class.class}); return (MozuClient<?>) constructor.newInstance(clz); } public static MozuClient<?> getInstance() throws Exception { Constructor<? extends MozuClient> constructor = (Constructor<? extends MozuClient>) Class.forName(CLIENT_CLASS_NAME).getConstructor(); return (MozuClient<?>) constructor.newInstance(); } }