package cz.nkp.differ;
import cz.nkp.differ.compare.io.ImageProcessor;
import cz.nkp.differ.compare.metadata.MetadataExtractors;
import cz.nkp.differ.dao.ImageDAO;
import cz.nkp.differ.dao.UserDAO;
import cz.nkp.differ.images.ImageLoader;
import cz.nkp.differ.io.ImageManager;
import cz.nkp.differ.io.ProfileManager;
import cz.nkp.differ.user.UserManager;
import java.io.IOException;
import java.io.InputStream;
import javax.sql.DataSource;
import org.apache.commons.io.IOUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
/**
*
* @author xrosecky
*/
public class Helper {
protected static ApplicationContext context = getApplicationContext();
protected static ApplicationContext getApplicationContext() {
ApplicationContext ctx = null;
String applicationContextFileLocation = System.getProperty("application.context");
if (applicationContextFileLocation != null) {
ctx = new FileSystemXmlApplicationContext(applicationContextFileLocation);
} else {
ctx = new ClassPathXmlApplicationContext("config.xml");
DataSource ds = (DataSource) ctx.getBean("dataSource");
InputStream is = ClassLoader.class.getResourceAsStream("/create_db.sql");
String sql = "";
try {
sql = IOUtils.toString(is);
} catch (IOException ioe) {
ioe.printStackTrace();
}
JdbcTemplate jdbcTemplate = new JdbcTemplate(ds);
for (String str : sql.split(";")) {
jdbcTemplate.execute(str);
}
}
return ctx;
}
public static ImageDAO getImageDAO() {
return (ImageDAO) context.getBean("imageDAO");
}
public static UserDAO getUserDAO() {
return (UserDAO) context.getBean("userDAO");
}
public static ImageManager getImageManager() {
return (ImageManager) context.getBean("imageManager");
}
public static UserManager getUserManager() {
return (UserManager) context.getBean("userManager");
}
public static ImageLoader getImageLoader() {
return (ImageLoader) context.getBean("imageLoaderFactory");
}
public static ImageProcessor getImageProcessor() {
return (ImageProcessor) context.getBean("imageProcessor");
}
public static MetadataExtractors getMetadataExtractors() {
return (MetadataExtractors) context.getBean("metadataExtractors");
}
public static ProfileManager getProfileManager() {
return (ProfileManager) context.getBean("profileManager");
}
}