package ungp.sampleng.backend.util;
import org.springframework.context.ApplicationContext;
import org.springframework.data.mongodb.core.MongoOperations;
import ungp.sampleng.backend.repository.CondutorRepository;
import ungp.sampleng.backend.repository.InfracaoRepository;
import ungp.sampleng.backend.repository.LogradouroRepository;
import ungp.sampleng.backend.repository.VeiculoRepository;
public class Application {
private static ApplicationContext applicationContext;
public static ApplicationContext getApplicationContext() {
if( applicationContext == null ) {
applicationContext = ApplicationContextProvider.getApplicationContext();
}
return applicationContext;
}
public static <T> T getRepository(Class<T> repoClass) {
return getApplicationContext().getBean(repoClass);
}
public static VeiculoRepository getVeiculoRepository() {
return getRepository(VeiculoRepository.class);
}
public static CondutorRepository getCondutorRepository() {
return getRepository(CondutorRepository.class);
}
public static InfracaoRepository getInfracaoRepository() {
return getRepository(InfracaoRepository.class);
}
public static LogradouroRepository getLogradouroRepository() {
return getRepository(LogradouroRepository.class);
}
public static MongoOperations getMongoOperations() {
return (MongoOperations) getApplicationContext().getBean("mongoTemplate");
}
}