oglimmer/lunchy

View on GitHub
src/main/java/de/oglimmer/lunchy/database/DaoFactory.java

Summary

Maintainability
A
0 mins
Test Coverage
package de.oglimmer.lunchy.database;

import lombok.SneakyThrows;

import org.apache.commons.lang3.StringUtils;

public enum DaoFactory {
    INSTANCE;

    @SneakyThrows(value = { ClassNotFoundException.class, IllegalArgumentException.class, IllegalAccessException.class,
            NoSuchFieldException.class, SecurityException.class })
    @SuppressWarnings("rawtypes")
    public Dao<?> getDao(String dao) {
        Class<? extends Dao> clazz = Class.forName("de.oglimmer.lunchy.database.dao." + StringUtils.capitalize(dao) + "Dao").asSubclass(
                Dao.class);
        return (Dao<?>) clazz.getField("INSTANCE").get(null);
    }
}