package com.hubspot.blazar.data; import com.google.common.base.Optional; import com.google.inject.Inject; import org.skife.jdbi.v2.DBI; import javax.inject.Provider; public class DaoProvider<T> implements Provider<T> { private final Class<T> type; private Optional<DBI> dbi; public DaoProvider(Class<T> type) { this.type = type; this.dbi = Optional.absent(); } @Inject public void setDBI(DBI dbi) { this.dbi = Optional.of(dbi); } @Override public T get() { return dbi.get().onDemand(type); } }