package net.mvla.mvhs;
import java.util.HashMap;
import java.util.Map;
public class MvpPresenterHolder {
static volatile MvpPresenterHolder singleton = null;
private Map<Class, MvpPresenter> presenterMap;
private MvpPresenterHolder() {
this.presenterMap = new HashMap<>();
}
public static MvpPresenterHolder getInstance() {
if (singleton == null) {
synchronized (MvpPresenterHolder.class) {
if (singleton == null) {
singleton = new MvpPresenterHolder();
}
}
}
return singleton;
}
public void putPresenter(Class c, MvpPresenter p) {
presenterMap.put(c, p);
}
public <T extends MvpPresenter> T getPresenter(Class<T> c) {
return (T) presenterMap.get(c);
}
public void remove(Class c) {
presenterMap.remove(c);
}
}