package servlet;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ConversorServlet
 */
@WebServlet("/ConversorServlet")
public class ConversorServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ConversorServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
		
		System.out.println(request.getParameter("P0").toString());
		System.out.println(Float.parseFloat(request.getParameter("P1")));
		try {
			ArrayList<Float>resultado = convertidor(request.getParameter("P0").toString(),Float.parseFloat(request.getParameter("P1")));
			System.out.println("aca llego");
			request.setAttribute("P0", request.getParameter("P0"));
			request.setAttribute("P1", request.getParameter("P"));
			request.setAttribute("resultado", resultado);
		} catch (Exception e) {
			// TODO: handle exception
			
			 RequestDispatcher rd = request.getRequestDispatcher("Error.jsp");
	            if (rd != null) {
	                rd.forward(request, response);
	            }
		}
		
		 RequestDispatcher rd = request.getRequestDispatcher("/ConversorResultado.jsp");
         if (rd != null) {
             rd.forward(request, response);
         }
	}
	
	
	protected ArrayList<Float> convertidor(String tipo_temperatura, Float temperatura) {
		ArrayList<Float> resultado= new ArrayList<Float>();
		resultado.add((float) 0);
		resultado.add((float) 0);
		resultado.add((float) 0);
		if(tipo_temperatura.toLowerCase().equals("c") ) {
			resultado.clear();
			resultado.add(temperatura);
			resultado.add((float) ((temperatura * 9/5) + 32));
			resultado.add((float) (temperatura + 273.15));
		}
		if(tipo_temperatura.toLowerCase().equals("f")) {
			
			resultado.clear();
			resultado.add((float)((temperatura - 32) * 5/9));
			resultado.add(temperatura);
			resultado.add((float)((temperatura - 32) * 5/9 + 273.15 ));
			
		}
		if(tipo_temperatura.toLowerCase().equals("k")) {
			resultado.clear();
			resultado.add((float)(temperatura - 273.15));
			resultado.add((float)((temperatura - 273.15) * 9/5 + 32));
			resultado.add(temperatura);
		}
		for(Float item: resultado) {
			System.out.println("asdasdasd");
			System.out.println(item);
		}
		return resultado;
	}
	
	

}
