package com.badoo.chateau.example.ui;
import android.support.annotation.NonNull;
import java.util.HashMap;
import java.util.Map;
public class Injector {
private static Map<Class<?>, Configuration<?>> sConfigurator = new HashMap<>();
public static <T> void register(@NonNull Class<T> cls, @NonNull Configuration<T> config) {
sConfigurator.put(cls, config);
}
public static <T> void inject(T target) {
//noinspection unchecked
Configuration<T> config = (Configuration<T>) sConfigurator.get(target.getClass());
if (config == null) {
throw new RuntimeException("No configuration specified for " + target.getClass().getSimpleName());
}
config.inject(target);
}
public interface Configuration<T> {
void inject(T target);
}
}