package ezy.sdk3rd.social.sdk;
import android.app.Activity;
import android.support.annotation.NonNull;
import java.lang.reflect.Constructor;
/**
* Created by ezy on 17/3/18.
*/
public class DefaultFactory<T extends IResult> implements IFactory<T> {
final Platform platform;
final Class<T> clazz;
public DefaultFactory(@NonNull String name, String appId, Class<T> clazz) {
this.platform = new Platform(name, appId);
this.clazz = clazz;
}
public DefaultFactory(@NonNull Platform platform, Class<T> clazz) {
this.platform = platform;
this.clazz = clazz;
}
@Override
public Platform getPlatform() {
return platform;
}
@Override
public T create(Activity activity) {
try {
Constructor<T> constructor = clazz.getDeclaredConstructor(Activity.class, Platform.class);
constructor.setAccessible(true);
return constructor.newInstance(activity, platform);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}