package eu.dnetlib.functionality.convert.app.web;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import eu.dnetlib.functionality.convert.app.operator.ConversionStatusConverter;
import eu.dnetlib.functionality.convert.app.operator.ConversionTaskManager;
import eu.dnetlib.functionality.convert.app.operator.ConversionTaskManagerImpl;
import eu.dnetlib.functionality.convert.store.ConversionServiceStore;

public class ConversionServiceContextUtils {

	public static ConversionTaskManager getConversionTaskManager(HttpServletRequest request) {
		ServletContext session = request.getSession().getServletContext();
		ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(session);
		
		ConversionTaskManagerImpl ctmi = new ConversionTaskManagerImpl();
		ctmi.setStore((ConversionServiceStore) context.getBean("conversionStore"));
		ctmi.setStatusConverter((ConversionStatusConverter) (context.getBean("statusConverter")));

		return ctmi;
	}
	
	public static ConversionServiceStore getConversionServiceStore(HttpServletRequest request) {
		ServletContext session = request.getSession().getServletContext();
		ApplicationContext context = WebApplicationContextUtils
				.getWebApplicationContext(session);
		
		return (ConversionServiceStore) context.getBean("conversionStore");
	}
}
