All pastes #501946 Raw Edit

Joset

public java v1 · immutable
·published 2007-05-22 08:45 UTC
rendered paste body
package com.cypress.ecn.servlet.rel;/*  * $Id: RelAdminHandler.java,v 1.5 2007/02/01 10:06:51 ons Exp $ *  * Copyright (c) 2006 by Cypress Semiconductor *  * Description : * 		Handler class for the Reliability Database Admin Utility *  * Revision History : *  * 12/07/2006		btg		Initial version *  */import java.sql.Connection;import java.util.ArrayList;import java.util.Vector;import java.util.Iterator;import java.util.Date;import java.text.SimpleDateFormat;import java.sql.Timestamp;import javax.servlet.RequestDispatcher;import javax.servlet.ServletContext;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.cypress.ecn.container.rel.*;import com.cypress.ecn.servlet.ChangeManagementServlet;import com.cypress.ecn.servlet.NoticeAdminHandler;import cypress.shared.util.Logger;import cypress.shared.util.sql.SQLUtil;public class RelAdminHandler implements NoticeAdminHandler {	/* Global Variables */	protected ChangeManagementServlet servlet = null;	private static Logger log = new Logger(RelAdminHandler.class.getName());	/**	 * Set the calling servlet.	 * 	 */	public void setServlet(HttpServlet servlet) {		this.servlet = (ChangeManagementServlet) servlet;	} /* End of setServlet */		/**	 * Method declaration	 * 	 * 	 * @param request	 * @param response	 * 	 * @see	 */	public void handle(		HttpServletRequest request,		HttpServletResponse response,		String schema,		Connection connection) {				try {					if (servlet == null) {				log.error(Logger.COMPONENT, "Need to setServlet() before handle ()");				return;			}						// only if user logged in is a Cypress Employee			Boolean isRelUser = new Boolean(true); // default to true since CMS login handles this validation						String doWhat = (String) request.getAttribute("doWhat");						if ( isRelUser != null && isRelUser.booleanValue())			{				String userID = (String) request.getAttribute("userID");				Boolean hasRelAdminAccess = RelAdmin.isRelAdmin(connection, schema, userID);				request.setAttribute("hasRelAdminAccess", hasRelAdminAccess);								if(doWhat != null) {					if(doWhat.equals("manageQTP")) {						doManageQTP(request, response, connection, schema);											} else if (doWhat.equals("backToMain")) {						showPage(request, connection, schema, "admin/rel/adminUtil.jsp");					} else if(doWhat.equals("manage")) {						doAdminManageRefData(request, response, connection, schema);					} else if (doWhat.equals("searchQTP")) {						doSearchQTP(request, response, connection, schema);					} else if (doWhat.equals("customSearchQTP")) {						doCustomSearchQTP(request, response, connection, schema);											} else if (doWhat.equals("saveCSV")) {						doSaveCSV(request, response, connection, schema);																} else if (doWhat.equals("addRule")) {						doAddRule(request, response, connection, schema);											} else if (doWhat.equals("addOrder")) {						doAddOrder(request, response, connection, schema);											} else if (doWhat.equals("removeRule")) {						doRemoveRule(request, response, connection, schema);											} else if (doWhat.equals("removeOrder")) {						doRemoveOrder(request, response, connection, schema);											} else if (doWhat.equals("resetRules")) {						doResetRules(request, response, connection, schema);					} else if (doWhat.equals("resetOrderBy")) {						doResetOrderBy(request, response, connection, schema);											} else if (doWhat.equals("resetEquation")) {						doResetEquation(request, response, connection, schema);											} else if (doWhat.equals("addRuleTV")) {						doAddRuleTV(request, response, connection, schema);											} else if (doWhat.equals("addOrderTV")) {						doAddOrderTV(request, response, connection, schema);											} else if (doWhat.equals("removeRuleTV")) {						doRemoveRuleTV(request, response, connection, schema);											} else if (doWhat.equals("removeOrderTV")) {						doRemoveOrderTV(request, response, connection, schema);											} else if (doWhat.equals("resetRulesTV")) {						doResetRulesTV(request, response, connection, schema);					} else if (doWhat.equals("resetOrderByTV")) {						doResetOrderByTV(request, response, connection, schema);											} else if (doWhat.equals("resetEquationTV")) {						doResetEquationTV(request, response, connection, schema);																	} else if (doWhat.equals("addRuleStress")) {						doAddRuleStress(request, response, connection, schema);											} else if (doWhat.equals("addOrderStress")) {						doAddOrderStress(request, response, connection, schema);											} else if (doWhat.equals("removeRuleStress")) {						doRemoveRuleStress(request, response, connection, schema);											} else if (doWhat.equals("removeOrderStress")) {						doRemoveOrderStress(request, response, connection, schema);											} else if (doWhat.equals("resetRulesStress")) {						doResetRulesStress(request, response, connection, schema);					} else if (doWhat.equals("resetOrderByStress")) {						doResetOrderByStress(request, response, connection, schema);											} else if (doWhat.equals("resetEquationStress")) {						doResetEquationStress(request, response, connection, schema);					} else if (doWhat.equals("addRuleTest")) {						doAddRuleTest(request, response, connection, schema);											} else if (doWhat.equals("addOrderTest")) {						doAddOrderTest(request, response, connection, schema);											} else if (doWhat.equals("removeRuleTest")) {						doRemoveRuleTest(request, response, connection, schema);											} else if (doWhat.equals("removeOrderTest")) {						doRemoveOrderTest(request, response, connection, schema);											} else if (doWhat.equals("resetRulesTest")) {						doResetRulesTest(request, response, connection, schema);					} else if (doWhat.equals("resetOrderByTest")) {						doResetOrderByTest(request, response, connection, schema);											} else if (doWhat.equals("resetEquationTest")) {						doResetEquationTest(request, response, connection, schema);											} else if (doWhat.equals("customSearch")) {						doCustomSearch(request, response, connection, schema);					} else if (doWhat.equals("search")) {						doSearch(request, response, connection, schema);					} else if (doWhat.equals("viewQTP")) {						doViewQTP(request, response, connection, schema);											} else if (doWhat.equals("editQTP")) {						doEditQTP(request, response, connection, schema);					} else if (doWhat.equals("newQTP")) {						doNewQTP(request, response, connection, schema);					} else if (doWhat.equals("saveQTP")) {						doSaveQTP(request, response, connection, schema);											} else if (doWhat.equals("resetQTP")) {						doResetQTP(request, response, connection, schema);											} else if (doWhat.equals("cancelQTP")) {						doCancelQTP(request, response, connection, schema);											} else if (doWhat.equals("deleteQTP")) {						doDeleteQTP(request, response, connection, schema);											} else if (doWhat.equals("addNewTV")) {						doAddNewTV(request, response, connection, schema);					} else if (doWhat.equals("deleteTV")) {						doDeleteTV(request, response, connection, schema);											} else if (doWhat.equals("viewTV")) {						doViewTV(request, response, connection, schema);											} else if (doWhat.equals("editTV")) {						doEditTV(request, response, connection, schema);											} else if (doWhat.equals("cancelTV")) {						doCancelTV(request, response, connection, schema);											} else if (doWhat.equals("resetTV")) {						doResetTV(request, response, connection, schema);											} else if (doWhat.equals("saveTV")) {						doSaveTV(request, response, connection, schema);					} else if (doWhat.equals("addNewStress")) {						doAddNewStress(request, response, connection, schema);					} else if (doWhat.equals("deleteStress")) {						doDeleteStress(request, response, connection, schema);											} else if (doWhat.equals("viewStress")) {						doViewStress(request, response, connection, schema);											} else if (doWhat.equals("editStress")) {						doEditStress(request, response, connection, schema);											} else if (doWhat.equals("cancelStress")) {						doCancelStress(request, response, connection, schema);											} else if (doWhat.equals("resetStress")) {						doResetStress(request, response, connection, schema);											} else if (doWhat.equals("saveStress")) {												doSaveStress(request, response, connection, schema);					} else if (doWhat.equals("setStressInfo")) {												doSetStressInfo(request, response, connection, schema);											} else if (doWhat.equals("addNewTest")) {						doAddNewTest(request, response, connection, schema);											} else if (doWhat.equals("deleteTest")) {						doDeleteTest(request, response, connection, schema);											} else if (doWhat.equals("cancelTest")) {						doCancelTest(request, response, connection, schema);											} else if (doWhat.equals("saveTest")) {						doSaveTest(request, response, connection, schema);															} else {						showPage(request, connection, schema, "admin/rel/adminUtil.jsp");						}				}				else {					showPage(request, connection, schema, "admin/rel/adminUtil.jsp");						}			}			else {				request.setAttribute("MAIN_PAGE", "admin/rel/adminAccessDenied.jsp");			}						if(!(doWhat != null && doWhat.equals("saveCSV"))) {				ServletContext context = servlet.getServletContext();							RequestDispatcher dispatcher = context.getRequestDispatcher("/template.jsp");					log.debug("handle(): Before forward.");							dispatcher.forward(request, response);				log.debug("handle(): After forward.");			}		} 		catch (Exception e) {			log.debug("RelAdminhandler: An error occurred while handling a request : ", e);			servlet.showSystemErrorPage(request,response, e);		}	}		private void showPage(			HttpServletRequest request, 			Connection connection, 			String schema,			String page) throws Exception{						request.setAttribute("MAIN_PAGE", page);			}		private void showAdminMain(			HttpServletRequest request, 						Connection connection, 				String schema,			String mainPage) 			throws Exception{				request.setAttribute("MAIN_PAGE", mainPage);			}	private boolean isDateValid(String dateIn, String dateOut) {				try {			Date dtInTmp = new SimpleDateFormat("MM/dd/yyyy").parse(dateIn.trim());			Date dtOutTmp = new SimpleDateFormat("MM/dd/yyyy").parse(dateOut.trim());						if (dtInTmp.compareTo(dtOutTmp) > 0) 				return false;		} catch (Exception e) {			e.printStackTrace();		}		return true;	}			protected void doManageQTP(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");									}		protected void doViewQTP(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			String searchQtpNumber = (String) request.getAttribute("searchQtpNumber");				RelQTPMainInfo resultMainInfo = null;		ArrayList resultTVList = null;				if(searchQtpNumber != null && !searchQtpNumber.trim().equals("")) {			resultMainInfo = RelQTPMainInfo.getInstance(connection, schema, searchQtpNumber.trim());			resultTVList = RelTVInfo.getTVs(connection, schema, searchQtpNumber.trim());		}				HttpSession session = request.getSession(true);		if(session != null) {			if(resultMainInfo != null) {				session.setAttribute("evalNum", resultMainInfo.getEvalNum());			}		}				request.setAttribute("resultMainInfo", resultMainInfo);		request.setAttribute("resultTVList", resultTVList);					request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpDataView.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}		protected void doViewTV(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			String searchTvNum = (String) request.getAttribute("searchTvNum");				RelTVInfo resultTvInfo = null;				ArrayList resultStressList = null;				HttpSession session = request.getSession();		String evalNum = null;		if(session != null) {			evalNum = (String) session.getAttribute("evalNum");		}				if(searchTvNum != null && !searchTvNum.trim().equals("")) {			resultTvInfo = RelTVInfo.getInstance(connection, schema, searchTvNum.trim(), evalNum);			resultStressList = RelStressInfo.getStresses(connection, schema, searchTvNum.trim(), resultTvInfo.getEvalNum());		}				request.setAttribute("resultTvInfo", resultTvInfo);		request.setAttribute("resultStressList", resultStressList);					request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpTVDataView.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}		protected void doViewStress(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			String searchStressInfoNum = (String) request.getAttribute("searchStressInfoNum");				RelStressInfo resultStressInfo = null;				ArrayList resultTestList = null;				if(searchStressInfoNum != null && !searchStressInfoNum.trim().equals("")) {			resultStressInfo = RelStressInfo.getInstance(connection, schema, searchStressInfoNum.trim());			resultTestList = RelTestInfo.getTests(connection, schema, searchStressInfoNum.trim());		}				request.setAttribute("resultStressInfo", resultStressInfo);				HttpSession session = request.getSession(true);				if(session != null) {			session.setAttribute("resultTestList", resultTestList);		}					request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpStressDataView.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}			protected void doSearchQTP(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			setSearchLists(request, connection, schema);					HttpSession session = request.getSession();		if(session != null) {			session.removeAttribute("result");		}				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}	protected void doSaveCSV( 			HttpServletRequest request, 			HttpServletResponse response,		 			Connection connection,  			String schema) 			throws Exception{				HttpSession session = request.getSession();		ArrayList result = null;				String searchType = (String) request.getAttribute("searchType");				if(session != null) {			result = (ArrayList) session.getAttribute("result");			session.setAttribute("result", result);		} 						 ServletContext context = servlet.getServletContext ();		 RequestDispatcher dispatcher = null;		 		 if(searchType != null && !searchType.equals("")) {	         if(searchType.equals("customSearch")) {	        	 dispatcher = context.getRequestDispatcher ("/admin/rel/qtpCustomSearchCSV.jsp");	 	         }	         else {	        	 dispatcher = context.getRequestDispatcher ("/admin/rel/qtpSearchCSV.jsp");	         }		 	         dispatcher.forward (request, response);		 } 		 	}     	protected void doCustomSearchQTP(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{						setCustomSearchLists(request, connection, schema);				HttpSession session = request.getSession(true);			if(session != null) {			session.removeAttribute("rulesList");			session.removeAttribute("equation");			session.removeAttribute("orderList");						session.removeAttribute("rulesListTV");			session.removeAttribute("equationTV");			session.removeAttribute("orderListTV");						session.removeAttribute("rulesListStress");			session.removeAttribute("equationStress");			session.removeAttribute("orderListStress");						session.removeAttribute("rulesListTest");			session.removeAttribute("equationTest");			session.removeAttribute("orderListTest");						session.removeAttribute("result");		}				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doAddRule(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList rulesList = null;				if(session != null) {			rulesList = (ArrayList) session.getAttribute("rulesList");			if(rulesList != null) {				Iterator iter = rulesList.iterator();				int ruleNum = 0;				while(iter.hasNext()) {					RelCustomSearchRule rule = (RelCustomSearchRule) iter.next();					String field = (String) request.getAttribute("field_" + ruleNum);					String operator = (String) request.getAttribute("operator_" + ruleNum);					String value = (String) request.getAttribute("value_" + ruleNum);										rule.setField(field);					rule.setOperator(operator);					rule.setValue(value);										ruleNum++;				}			}		}				if(rulesList == null) {			rulesList = new ArrayList();		}				RelCustomSearchRule rule = new RelCustomSearchRule();				rulesList.add(rule);				if(session != null) {			session.setAttribute("rulesList", rulesList);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doAddRuleTV(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList rulesListTV = null;				if(session != null) {			rulesListTV = (ArrayList) session.getAttribute("rulesListTV");			if(rulesListTV != null) {				Iterator iter = rulesListTV.iterator();				int ruleNum = 0;				while(iter.hasNext()) {					RelCustomSearchRule rule = (RelCustomSearchRule) iter.next();					String fieldTV = (String) request.getAttribute("fieldTV_" + ruleNum);					String operatorTV = (String) request.getAttribute("operatorTV_" + ruleNum);					String valueTV = (String) request.getAttribute("valueTV_" + ruleNum);										rule.setField(fieldTV);					rule.setOperator(operatorTV);					rule.setValue(valueTV);										ruleNum++;				}			}		}				if(rulesListTV == null) {			rulesListTV = new ArrayList();		}				RelCustomSearchRule rule = new RelCustomSearchRule();				rulesListTV.add(rule);				if(session != null) {			session.setAttribute("rulesListTV", rulesListTV);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doAddRuleStress(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList rulesListStress = null;				if(session != null) {			rulesListStress = (ArrayList) session.getAttribute("rulesListStress");			if(rulesListStress != null) {				Iterator iter = rulesListStress.iterator();				int ruleNum = 0;				while(iter.hasNext()) {					RelCustomSearchRule rule = (RelCustomSearchRule) iter.next();					String fieldStress = (String) request.getAttribute("fieldStress_" + ruleNum);					String operatorStress = (String) request.getAttribute("operatorStress_" + ruleNum);					String valueStress = (String) request.getAttribute("valueStress_" + ruleNum);										rule.setField(fieldStress);					rule.setOperator(operatorStress);					rule.setValue(valueStress);										ruleNum++;				}			}		}				if(rulesListStress == null) {			rulesListStress = new ArrayList();		}				RelCustomSearchRule rule = new RelCustomSearchRule();				rulesListStress.add(rule);				if(session != null) {			session.setAttribute("rulesListStress", rulesListStress);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doAddRuleTest(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList rulesListTest = null;				if(session != null) {			rulesListTest = (ArrayList) session.getAttribute("rulesListTest");			if(rulesListTest != null) {				Iterator iter = rulesListTest.iterator();				int ruleNum = 0;				while(iter.hasNext()) {					RelCustomSearchRule rule = (RelCustomSearchRule) iter.next();					String fieldTest = (String) request.getAttribute("fieldTest_" + ruleNum);					String operatorTest = (String) request.getAttribute("operatorTest_" + ruleNum);					String valueTest = (String) request.getAttribute("valueTest_" + ruleNum);										rule.setField(fieldTest);					rule.setOperator(operatorTest);					rule.setValue(valueTest);										ruleNum++;				}			}		}				if(rulesListTest == null) {			rulesListTest = new ArrayList();		}				RelCustomSearchRule rule = new RelCustomSearchRule();				rulesListTest.add(rule);				if(session != null) {			session.setAttribute("rulesListTest", rulesListTest);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doResetRules(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList rulesList = new ArrayList();				if(session != null) {			session.setAttribute("rulesList", rulesList);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doResetRulesTV(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList rulesListTV = new ArrayList();				if(session != null) {			session.setAttribute("rulesListTV", rulesListTV);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}			protected void doResetRulesStress(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList rulesListStress = new ArrayList();				if(session != null) {			session.setAttribute("rulesListStress", rulesListStress);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}			protected void doResetRulesTest(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList rulesListTest = new ArrayList();				if(session != null) {			session.setAttribute("rulesListTest", rulesListTest);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}			protected void doResetEquation(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		String equation = "";				if(session != null) {			session.setAttribute("equation", equation);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doResetEquationTV(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		String equationTV = "";				if(session != null) {			session.setAttribute("equationTV", equationTV);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}			protected void doResetEquationStress(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		String equationStress = "";				if(session != null) {			session.setAttribute("equationStress", equationStress);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doResetEquationTest(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		String equationTest = "";				if(session != null) {			session.setAttribute("equationTest", equationTest);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doResetOrderBy(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList orderList = new ArrayList();				if(session != null) {			session.setAttribute("orderList", orderList);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doResetOrderByTV(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList orderListTV = new ArrayList();				if(session != null) {			session.setAttribute("orderListTV", orderListTV);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}			protected void doResetOrderByStress(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList orderListStress = new ArrayList();				if(session != null) {			session.setAttribute("orderListStress", orderListStress);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doResetOrderByTest(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList orderListTest = new ArrayList();				if(session != null) {			session.setAttribute("orderListTest", orderListTest);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doAddOrder(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList orderList = null;				if(session != null) {			orderList = (ArrayList) session.getAttribute("orderList");		}				if(orderList == null) {			orderList = new ArrayList();		}				String order = "";				orderList.add(order);				if(session != null) {			session.setAttribute("orderList", orderList);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doAddOrderTV(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList orderListTV = null;				if(session != null) {			orderListTV = (ArrayList) session.getAttribute("orderListTV");		}				if(orderListTV == null) {			orderListTV = new ArrayList();		}				String order = "";				orderListTV.add(order);				if(session != null) {			session.setAttribute("orderListTV", orderListTV);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}			protected void doAddOrderStress(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList orderListStress = null;				if(session != null) {			orderListStress = (ArrayList) session.getAttribute("orderListStress");		}				if(orderListStress == null) {			orderListStress = new ArrayList();		}				String order = "";				orderListStress.add(order);				if(session != null) {			session.setAttribute("orderListStress", orderListStress);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}			protected void doAddOrderTest(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession(true);		ArrayList orderListTest = null;				if(session != null) {			orderListTest = (ArrayList) session.getAttribute("orderListTest");		}				if(orderListTest == null) {			orderListTest = new ArrayList();		}				String order = "";				orderListTest.add(order);				if(session != null) {			session.setAttribute("orderListTest", orderListTest);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}			protected void doRemoveRule(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				int removeRuleNum = Integer.parseInt((String) request.getAttribute("ruleNum"));				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession();		ArrayList rulesList = null;				if(session != null) {			rulesList = (ArrayList) session.getAttribute("rulesList");					if(rulesList != null) {				Iterator iter = rulesList.iterator();				int ruleNum = 0;				while(iter.hasNext()) {					RelCustomSearchRule rule = (RelCustomSearchRule) iter.next();					String field = (String) request.getAttribute("field_" + ruleNum);					String operator = (String) request.getAttribute("operator_" + ruleNum);					String value = (String) request.getAttribute("value_" + ruleNum);										rule.setField(field);					rule.setOperator(operator);					rule.setValue(value);												ruleNum++;				}			}		}				if(rulesList != null) {			rulesList.remove(removeRuleNum);		}				if(session != null) {			session.setAttribute("rulesList", rulesList);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}			protected void doRemoveRuleTV(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				int removeRuleNum = Integer.parseInt((String) request.getAttribute("ruleNumTV"));				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession();		ArrayList rulesListTV = null;				if(session != null) {			rulesListTV = (ArrayList) session.getAttribute("rulesListTV");					if(rulesListTV != null) {				Iterator iter = rulesListTV.iterator();				int ruleNum = 0;				while(iter.hasNext()) {					RelCustomSearchRule rule = (RelCustomSearchRule) iter.next();					String fieldTV = (String) request.getAttribute("fieldTV_" + ruleNum);					String operatorTV = (String) request.getAttribute("operatorTV_" + ruleNum);					String valueTV = (String) request.getAttribute("valueTV_" + ruleNum);										rule.setField(fieldTV);					rule.setOperator(operatorTV);					rule.setValue(valueTV);												ruleNum++;				}			}		}				if(rulesListTV != null) {			rulesListTV.remove(removeRuleNum);		}				if(session != null) {			session.setAttribute("rulesListTV", rulesListTV);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}			protected void doRemoveRuleStress(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				int removeRuleNum = Integer.parseInt((String) request.getAttribute("ruleNumStress"));				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession();		ArrayList rulesListStress = null;				if(session != null) {			rulesListStress = (ArrayList) session.getAttribute("rulesListStress");					if(rulesListStress != null) {				Iterator iter = rulesListStress.iterator();				int ruleNum = 0;				while(iter.hasNext()) {					RelCustomSearchRule rule = (RelCustomSearchRule) iter.next();					String fieldStress = (String) request.getAttribute("fieldStress_" + ruleNum);					String operatorStress = (String) request.getAttribute("operatorStress_" + ruleNum);					String valueStress = (String) request.getAttribute("valueStress_" + ruleNum);										rule.setField(fieldStress);					rule.setOperator(operatorStress);					rule.setValue(valueStress);												ruleNum++;				}			}		}				if(rulesListStress != null) {			rulesListStress.remove(removeRuleNum);		}				if(session != null) {			session.setAttribute("rulesListStress", rulesListStress);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doRemoveRuleTest(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				int removeRuleNum = Integer.parseInt((String) request.getAttribute("ruleNumTest"));				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession();		ArrayList rulesListTest = null;				if(session != null) {			rulesListTest = (ArrayList) session.getAttribute("rulesListTest");					if(rulesListTest != null) {				Iterator iter = rulesListTest.iterator();				int ruleNum = 0;				while(iter.hasNext()) {					RelCustomSearchRule rule = (RelCustomSearchRule) iter.next();					String fieldTest = (String) request.getAttribute("fieldTest_" + ruleNum);					String operatorTest = (String) request.getAttribute("operatorTest_" + ruleNum);					String valueTest = (String) request.getAttribute("valueTest_" + ruleNum);										rule.setField(fieldTest);					rule.setOperator(operatorTest);					rule.setValue(valueTest);												ruleNum++;				}			}		}				if(rulesListTest != null) {			rulesListTest.remove(removeRuleNum);		}				if(session != null) {			session.setAttribute("rulesListTest", rulesListTest);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doRemoveOrder(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				int removeOrderNum = Integer.parseInt((String) request.getAttribute("orderNum"));				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession();		ArrayList orderList = null;				if(session != null) {			orderList = (ArrayList) session.getAttribute("orderList");		}				if(orderList != null) {			orderList.remove(removeOrderNum);		}				if(session != null) {			session.setAttribute("orderList", orderList);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void manageRefDataSearch(			HttpServletRequest request,			HttpServletResponse response,			String type, 			Connection connection,			String schema)			throws Exception {				if(type != null && !type.trim().equals("")) {								if (type.equals("sites")) {										log.debug("doAdminManageRefData(): entry confirmed");										String siteName = (String) request.getAttribute("searchSiteName");					String siteDescription = (String) request.getAttribute("searchSiteDescription");									ArrayList searchResultRS = RelSite.searchSites(connection, schema, siteName, siteDescription);										HttpSession session = request.getSession(true);										if(session != null) {						session.setAttribute("searchResultRS", searchResultRS);					}				}								else if (type.equals("divisions")) {					String divisionName = (String) request.getAttribute("searchDivisionName");					String divisionDescription = (String) request.getAttribute("searchDivisionDescription");										ArrayList searchResultDivision = RelDivision.searchDivisions(connection, schema, divisionName, divisionDescription);										HttpSession session = request.getSession(true);					if (session != null) {						session.setAttribute("searchResultDivision", searchResultDivision);					}				}								else if (type.equals("bizUnits")) {					String bizUnit = (String) request.getAttribute("searchBizUnit");					String bizUnitDescription = (String) request.getAttribute("searchBizUnitDescription");										ArrayList searchResultBizUnit = RelBizUnit.searchBizUnits(connection, schema, bizUnit, bizUnitDescription);										HttpSession session = request.getSession(true);					if (session != null) {						session.setAttribute("searchResultBizUnit", searchResultBizUnit);					}				}						}	}	protected void doRemoveOrderTV(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				int removeOrderNum = Integer.parseInt((String) request.getAttribute("orderNumTV"));				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession();		ArrayList orderListTV = null;				if(session != null) {			orderListTV = (ArrayList) session.getAttribute("orderListTV");		}				if(orderListTV != null) {			orderListTV.remove(removeOrderNum);		}				if(session != null) {			session.setAttribute("orderListTV", orderListTV);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doRemoveOrderStress(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				int removeOrderNum = Integer.parseInt((String) request.getAttribute("orderNumStress"));				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession();		ArrayList orderListStress = null;				if(session != null) {			orderListStress = (ArrayList) session.getAttribute("orderListStress");		}				if(orderListStress != null) {			orderListStress.remove(removeOrderNum);		}				if(session != null) {			session.setAttribute("orderListStress", orderListStress);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doRemoveOrderTest(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				int removeOrderNum = Integer.parseInt((String) request.getAttribute("orderNumTest"));				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession();		ArrayList orderListTest = null;				if(session != null) {			orderListTest = (ArrayList) session.getAttribute("orderListTest");		}				if(orderListTest != null) {			orderListTest.remove(removeOrderNum);		}				if(session != null) {			session.setAttribute("orderListTest", orderListTest);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doAdminManageRefData(			HttpServletRequest request,			HttpServletResponse response,			Connection connection,			String schema)			throws Exception{				String doWhat = (String) request.getAttribute("doWhat");		String type = (String) request.getAttribute("type");		String mode = (String) request.getAttribute("mode");		String noticeType = (String) request.getAttribute("noticeType");				log.debug("doAdminManageRefData(): doWhat = "+doWhat+"");		log.debug("doAdminManageRefData(): type = "+type+"");		log.debug("doAdminManageRefData(): mode = "+mode+"");		log.debug("doAdminManageRefData(): noticeType = "+noticeType+"");				Boolean displaySearchResult = new Boolean(false);		Boolean displayAddEdit = new Boolean(false);				request.setAttribute("mode", mode);		request.setAttribute("type", type);		request.setAttribute("doWhat", doWhat);				if(mode != null) {			if(	mode.equals("edit") || 				mode.equals("search") || 								(mode.equals("cancel"))) {					displaySearchResult = Boolean.TRUE;				}			if(	mode.equals("add") || 				mode.equals("edit") ||				mode.equals("test") ||				mode.equals("save")) {					displayAddEdit = Boolean.TRUE;				}							if(mode.equals("search")) {				manageRefDataSearch(request, response, type, connection, schema);							}			else if(mode.equals("add")) {//				manageRefDataAdd(request, response, type, connection, schema);							}			else if(mode.equals("edit")) {//				manageRefDataEdit(request, response, type, connection, schema);							}					else if(mode.equals("save")) {//				manageRefDataSave(request, response, type, connection, schema);							}			else if(mode.equals("cancel")) {//				manageRefDataCancel(request, response, type, connection, schema);							}						else if(mode.equals("test")) {//				manageRefDataTest(request, response, type, connection, schema);							}					else if(mode.equals("remove")) {//				manageRefDataRemove(request, response, type, connection, schema);			}		}			request.setAttribute("displaySearchResult", displaySearchResult);		request.setAttribute("displayAddEdit", displayAddEdit);				if(type.equals("sites")) {						ArrayList allSitesList = RelSite.getAllSites(connection, schema);			request.setAttribute("allSitesList", allSitesList);		}				if(type.equals("divisions")) {						ArrayList allDivisionsList = RelDivision.getAllDivisions(connection, schema);			request.setAttribute("allDivisionsList", allDivisionsList);		}				if(type.equals("bizUnits")) {						ArrayList allBizUnitsList = RelBizUnit.getAllBizUnits(connection, schema);			request.setAttribute("allBizUnitsList", allBizUnitsList);		}				if(type.equals("technology")) {						ArrayList allTechnologiesList = RelTechnology.getAllTechnologies(connection, schema);			request.setAttribute("allTechnologiesList", allTechnologiesList);		}				if(type.equals("qtpCategories")) {			ArrayList allQTPCategoriesList = RelQTPCategory.getAllQTPCategories(connection, schema);			request.setAttribute("allQTPCategoriesList", allQTPCategoriesList);		}				if(type.equals("packages")) {			ArrayList allPackagesList = RelPackage.getAllPackages(connection, schema);			request.setAttribute("allPackagesList", allPackagesList);		}				if(type.equals("assylocs")) {			ArrayList allAssyLocsList = RelAssyLoc.getAllAssyLocs(connection, schema);			request.setAttribute("allAssyLocsList", allAssyLocsList);		}				if(type.equals("stress")) {			ArrayList allRelStressCodesList = RelStress.getAllRelStressCodes(connection, schema);			request.setAttribute("allRelStressCodesList", allRelStressCodesList);		}				request.setAttribute("MAIN_PAGE", "admin/rel/adminEdit.jsp");		String MAIN_PAGE = (String) request.getAttribute("MAIN_PAGE");				log.debug("doAdminManageRefData(): MAIN_PAGE = "+MAIN_PAGE+"");				if(mode != null && mode.equals("back")) {										showAdminMain(request, connection, schema, "admin/rel/adminUtil.jsp");		}				}	protected void doCustomSearch(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				updateCustomSearchInputs(request, connection, schema);				HttpSession session = request.getSession();				ArrayList result = null;			// main info				ArrayList rulesList = null;		String equation = null;		ArrayList orderList = null;				if(session != null) {			rulesList = (ArrayList) session.getAttribute("rulesList");			equation = (String) session.getAttribute("equation");			orderList = (ArrayList) session.getAttribute("orderList");		}		// tv info				ArrayList rulesListTV = null;		String equationTV = null;		ArrayList orderListTV = null;				if(session != null) {			rulesListTV = (ArrayList) session.getAttribute("rulesListTV");			equationTV = (String) session.getAttribute("equationTV");			orderListTV = (ArrayList) session.getAttribute("orderListTV");		}				// stress info				ArrayList rulesListStress = null;		String equationStress = null;		ArrayList orderListStress = null;				if(session != null) {			rulesListStress = (ArrayList) session.getAttribute("rulesListStress");			equationStress = (String) session.getAttribute("equationStress");			orderListStress = (ArrayList) session.getAttribute("orderListStress");		}				// test info				ArrayList rulesListTest = null;		String equationTest = null;		ArrayList orderListTest = null;				if(session != null) {			rulesListTest = (ArrayList) session.getAttribute("rulesListTest");			equationTest = (String) session.getAttribute("equationTest");			orderListTest = (ArrayList) session.getAttribute("orderListTest");		}						if((rulesList != null && rulesList.size() > 0) || 			(rulesListTV != null && rulesListTV.size() > 0) ||			(rulesListStress != null && rulesListStress.size() > 0) ||			(rulesListTest != null && rulesListTest.size() > 0) ||			(equation != null && !equation.equals("")) ||			(equationTV != null && !equationTV.equals("")) ||			(equationStress != null && !equationStress.equals("")) ||			(equationTest != null && !equationTest.equals(""))) {							result = RelQTPMainInfo.customSearchQTP(					connection, schema, 					rulesList, equation, orderList,					rulesListTV, equationTV, orderListTV,					rulesListStress, equationStress, orderListStress,					rulesListTest, equationTest, orderListTest);		}				if(session != null) {			session.setAttribute("result", result);		}				setCustomSearchLists(request, connection, schema);				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpCustomSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}	protected void doSearch(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			String qtpNumber = (String) request.getAttribute("qtpNumber");		String owner = (String) request.getAttribute("owner");		String division = (String) request.getAttribute("division");		String product = (String) request.getAttribute("product");		String category = (String) request.getAttribute("category");		String relSite = (String) request.getAttribute("relSite");		String bizUnit = (String) request.getAttribute("bizUnit");		String status = (String) request.getAttribute("status");				ArrayList result = RelQTPMainInfo.searchQTP(connection, schema, qtpNumber, owner, division, product, category, relSite, bizUnit, status);			HttpSession session = request.getSession();		if(session != null) {			session.setAttribute("result", result);		}				setSearchLists(request, connection, schema);					request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpSearchQTP.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}		protected void doResetQTP(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			String editMode = (String) request.getAttribute("editMode");				HttpSession session = request.getSession();				if(session != null) {						RelQTPMainInfo editMainInfo = (RelQTPMainInfo) session.getAttribute("editMainInfo");						if(editMainInfo != null) {				if(editMode.equals("edit")) {					editMainInfo = RelQTPMainInfo.getInstance(connection, schema, editMainInfo.getEvalNum());				}				else { 					if(editMode.equals("add")) {						editMainInfo.clearAllDataFields();					}				}								session.setAttribute("editMainInfo", editMainInfo);			}		}				setQTPDataLists(request, connection, schema);				request.setAttribute("editMode", editMode);		request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpDataEdit.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}		protected void doResetTV(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			String editMode = (String) request.getAttribute("editMode");				HttpSession session = request.getSession();				String evalNum = null;				if(session != null) {						evalNum = (String) session.getAttribute("evalNum");						RelTVInfo editTvInfo = (RelTVInfo) session.getAttribute("editTvInfo");						if(editTvInfo != null) {				if(editMode.equals("edit")) {					editTvInfo = RelTVInfo.getInstance(connection, schema, editTvInfo.getTvNum(), evalNum);				}				else { 					if(editMode.equals("add")) {						editTvInfo.clearAllDataFields();					}				}								session.setAttribute("editTvInfo", editTvInfo);			}		}				setTVDataLists(request, connection, schema);				request.setAttribute("editMode", editMode);		request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpTVDataEdit.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}			protected void doResetStress(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			String editMode = (String) request.getAttribute("editMode");				HttpSession session = request.getSession();				if(session != null) {						RelStressInfo editStressInfo = (RelStressInfo) session.getAttribute("editStressInfo");						if(editStressInfo != null) {				if(editMode.equals("edit")) {					editStressInfo = RelStressInfo.getInstance(connection, schema, editStressInfo.getStressInfoNum());				}				else { 					if(editMode.equals("add")) {						editStressInfo.clearAllDataFields();					}				}								session.setAttribute("editStressInfo", editStressInfo);			}		}				setStressDataLists(request, connection, schema);				request.setAttribute("editMode", editMode);		request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpStressDataEdit.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}			protected void doNewQTP(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			HttpSession session = request.getSession(true);				if(session != null) {			RelQTPMainInfo editMainInfo = new RelQTPMainInfo();						session.setAttribute("editMainInfo", editMainInfo);		}					setQTPDataLists(request, connection, schema);						request.setAttribute("editMode", "add");		request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpDataEdit.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}		protected void doSaveQTP(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			RelQTPMainInfo editMainInfo = null;		Vector inputErrors = new Vector();				String editMode = (String) request.getAttribute("editMode");				HttpSession session = request.getSession();				if(session != null) {			editMainInfo = (RelQTPMainInfo) session.getAttribute("editMainInfo");		}				if(editMainInfo != null) {			String editQTPNumber = (String) request.getAttribute("editQTPNumber");			String editPurpose = (String) request.getAttribute("editPurpose");			String editRelEngr = (String) request.getAttribute("editRelEngr");			String editOwner = (String) request.getAttribute("editOwner");			String editRelSite = (String) request.getAttribute("editRelSite");			String editDivision = (String) request.getAttribute("editDivision");			String editBizUnit = (String) request.getAttribute("editBizUnit");			String editProduct = (String) request.getAttribute("editProduct");			String editProcess = (String) request.getAttribute("editProcess");			String editFabSite = (String) request.getAttribute("editFabSite");			String editDieSize = (String) request.getAttribute("editDieSize");			String editCustomerNotice = (String) request.getAttribute("editCustomerNotice");			String editDPlanGetsNum = (String) request.getAttribute("editDPlanGetsNum");			String editDReceivedParts = (String) request.getAttribute("editDReceivedParts");			String editDStarted1stStress = (String) request.getAttribute("editDStarted1stStress");			String editStatus = (String) request.getAttribute("editStatus");			String editQTPCategory = (String) request.getAttribute("editQTPCategory");			String editRelStress = (String) request.getAttribute("editRelStress");			String editEntitlement = (String) request.getAttribute("editEntitlement");			String editDeviceVCC = (String) request.getAttribute("editDeviceVCC");			String editProductsFamily = (String) request.getAttribute("editProductsFamily");			String editBurnInConditions = (String) request.getAttribute("editBurnInConditions");			String editMoistureLevel = (String) request.getAttribute("editMoistureLevel");			String editPackage = (String) request.getAttribute("editPackage");			String editMoldingCompound = (String) request.getAttribute("editMoldingCompound");			String editDieAttach = (String) request.getAttribute("editDieAttach");			String editWADiameter = (String) request.getAttribute("editWADiameter");			String editAssemblySite = (String) request.getAttribute("editAssySite");			String editSolderReflowTemp = (String) request.getAttribute("editSolderReflowTemp");			String editSort1 = (String) request.getAttribute("editSort1");			String editSort2 = (String) request.getAttribute("editSort2");			String editSort3 = (String) request.getAttribute("editSort3");			String editSort4 = (String) request.getAttribute("editSort4");			String editClassHot = (String) request.getAttribute("editClassHot");			String editClassRoom = (String) request.getAttribute("editClassRoom");			String editClassCold = (String) request.getAttribute("editClassCold");			String editQA = (String) request.getAttribute("editQA");						if(editMode.equals("add")) {				if(editQTPNumber != null && !editQTPNumber.trim().equals("")) {																	if(RelQTPMainInfo.isEvalNumAlreadyUsed(connection, schema, editQTPNumber.trim())) {						inputErrors.addElement("<B>EVAL NUM</B> has already existing record/s for QTP General Information.");					} else {						editMainInfo.setEvalNum(editQTPNumber.trim());					}				}							else {					inputErrors.addElement("<B>EVAL NUM</B> is blank.");				}			}						if(editPurpose != null && !editPurpose.trim().equals("")) {				editMainInfo.setPurpose(editPurpose.trim());			}			else {				inputErrors.addElement("<B>Purpose</B> is blank.");			}						if(editRelEngr != null && !editRelEngr.trim().equals("")) {				editMainInfo.setRelEngr(editRelEngr.trim());			}			else {				inputErrors.addElement("<B>Rel Engineer</B> is blank.");			}						if(editOwner != null && !editOwner.trim().equals("")) {				editMainInfo.setOwner(editOwner.trim());			}			else {				inputErrors.addElement("<B>Owner</B> is blank.");			}						if(editRelSite != null && !editRelSite.trim().equals("")) {				editMainInfo.setRelSite(editRelSite.trim());			}			else {				inputErrors.addElement("No <B>Rel Site</B> selected.");			}						if(editDivision != null && !editDivision.trim().equals("")) {				editMainInfo.setDivision(editDivision.trim());			}			else {				inputErrors.addElement("No <B>Division</B> selected.");			}						if(editBizUnit != null && !editBizUnit.trim().equals("")) {				editMainInfo.setBizUnit(editBizUnit.trim());			}			else {				inputErrors.addElement("No <B>Biz Unit</B> selected.");			}						if(editProduct != null && !editProduct.trim().equals("")) {				editMainInfo.setProduct(editProduct.trim());			}			else {				inputErrors.addElement("<B>Product</B> is blank.");			}						if(editProcess != null && !editProcess.trim().equals("")) {				editMainInfo.setProcess(editProcess.trim());			}			else {				inputErrors.addElement("<B>Process</B> is blank.");			}						if(editFabSite != null && !editFabSite.trim().equals("")) {				editMainInfo.setFabSite(editFabSite.trim());			}			else {				inputErrors.addElement("No <B>Fab Site</B> selected.");			}						if(editDieSize != null && !editDieSize.trim().equals("")) {				editMainInfo.setDieSize(editDieSize.trim());			}			else {				inputErrors.addElement("<B>Die Size</B> is blank.");			}						if(editCustomerNotice != null && !editCustomerNotice.trim().equals("")) {				editMainInfo.setCustomerNotice(editCustomerNotice.trim());			}			else {				inputErrors.addElement("<B>Customer Notice</B> is blank.");			}						if(editDPlanGetsNum != null && !editDPlanGetsNum.trim().equals("")) {				SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");				java.util.Date date = df.parse(editDPlanGetsNum.trim());				editMainInfo.setDPlanGetsNum(new Timestamp(date.getTime()));							}//			else {//				inputErrors.addElement("<B>Date QTP Completed</B> is blank.");//			}						if(editDReceivedParts != null && !editDReceivedParts.trim().equals("")) {				SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");				java.util.Date date = df.parse(editDReceivedParts.trim());				editMainInfo.setDReceivedParts(new Timestamp(date.getTime()));						}			else {				inputErrors.addElement("<B>Date Received Parts</B> is blank.");			}						if(editDStarted1stStress != null && !editDStarted1stStress.trim().equals("")) {				SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");				java.util.Date date = df.parse(editDStarted1stStress.trim());				editMainInfo.setDStarted1stStress(new Timestamp(date.getTime()));							}			else {				inputErrors.addElement("<B>Date Started 1st Stress</B> is blank.");			}						if(editStatus != null && !editStatus.trim().equals("")) {				editMainInfo.setStatus(editStatus.trim());			}			else {				inputErrors.addElement("No <B>Status</B> selected.");			}						if(editQTPCategory != null && !editQTPCategory.trim().equals("")) {				editMainInfo.setQtpCat(editQTPCategory.trim());			}			else {				inputErrors.addElement("No <B>QTP Category</B> selected.");			}						if(editRelStress != null && !editRelStress.trim().equals("")) {				editMainInfo.setRelStress(editRelStress.trim());			}			else {				inputErrors.addElement("<B>Rel Stress</B> is blank.");			}						if(editEntitlement != null && !editEntitlement.trim().equals("")) {				editMainInfo.setEntitlement(new Integer(editEntitlement.trim()));			}			else {				inputErrors.addElement("<B>Entitlement</B> is blank.");			}						if(editDeviceVCC != null && !editDeviceVCC.trim().equals("")) {				editMainInfo.setDeviceVCC(new Double(editDeviceVCC.trim()));			}			else {				inputErrors.addElement("<B>Device VCC</B> is blank.");			}						if(editProductsFamily != null && !editProductsFamily.trim().equals("")) {				editMainInfo.setProductsFamily(editProductsFamily.trim());			}			else {				inputErrors.addElement("<B>Products Family</B> is blank.");			}						if(editBurnInConditions != null && !editBurnInConditions.trim().equals("")) {				editMainInfo.setBurnInConditions(editBurnInConditions.trim());			}			else {				inputErrors.addElement("<B>Burn-In Conditions</B> is blank.");			}						if(editMoistureLevel != null && !editMoistureLevel.trim().equals("")) {				if (editQTPCategory.trim().equals("Automotive") || editQTPCategory.trim().equals("Assembly or Packaging QTP")) {					if (editMoistureLevel.trim().equals("na") || editMoistureLevel.trim().equals("NA") || 						editMoistureLevel.trim().equals("n/a") || editMoistureLevel.trim().equals("N/A") ||						editMoistureLevel.trim().equals("N/a") || editMoistureLevel.trim().equals("N/a")) {						inputErrors.addElement("<B>Moisture Level</B> is invalid for <B>QTP Category</B>.");					}					else						editMainInfo.setMoistureLevel(editMoistureLevel.trim());				}				else						editMainInfo.setMoistureLevel(editMoistureLevel.trim());			}			else {				inputErrors.addElement("No <B>Moisture Level</B> selected.");			}						if(editPackage != null && !editPackage.trim().equals("")) {				if (editQTPCategory.trim().equals("Automotive") || editQTPCategory.trim().equals("Assembly or Packaging QTP")) {					if (editPackage.trim().equals("na") || editPackage.trim().equals("NA") || 						editPackage.trim().equals("n/a") || editPackage.trim().equals("N/A") ||						editPackage.trim().equals("N/a") || editPackage.trim().equals("N/a")) {						inputErrors.addElement("<B>Package</B> is invalid for <B>QTP Category</B>.");					}					else						editMainInfo.setPkg(editPackage.trim());				}				else						editMainInfo.setPkg(editPackage.trim());			}			else {				inputErrors.addElement("<B>Package</B> is blank.");			}						if(editMoldingCompound != null && !editMoldingCompound.trim().equals("")) {				if (editQTPCategory.trim().equals("Automotive") || editQTPCategory.trim().equals("Assembly or Packaging QTP")) {					if (editMoldingCompound.trim().equals("na") || editMoldingCompound.trim().equals("NA") || 						editMoldingCompound.trim().equals("n/a") || editMoldingCompound.trim().equals("N/A") ||						editMoldingCompound.trim().equals("N/a") || editMoldingCompound.trim().equals("N/a")) {						inputErrors.addElement("<B>Molding Compound</B> is invalid for <B>QTP Category</B>.");					}					else						editMainInfo.setMoldingCompound(editMoldingCompound.trim());				}				else						editMainInfo.setMoldingCompound(editMoldingCompound.trim());			}			else {				inputErrors.addElement("<B>Molding Compound</B> is blank.");			}						if(editDieAttach != null && !editDieAttach.trim().equals("")) {				if (editQTPCategory.trim().equals("Automotive") || editQTPCategory.trim().equals("Assembly or Packaging QTP")) {					if (editDieAttach.trim().equals("na") || editDieAttach.trim().equals("NA") || 						editDieAttach.trim().equals("n/a") || editDieAttach.trim().equals("N/A") ||						editDieAttach.trim().equals("N/a") || editDieAttach.trim().equals("N/a")) {						inputErrors.addElement("<B>Die Attach</B> is invalid for <B>QTP Category</B>.");					}					else						editMainInfo.setDieAttach(editDieAttach.trim());				}				else						editMainInfo.setDieAttach(editDieAttach.trim());			}			else {				inputErrors.addElement("<B>Die Attach</B> is blank.");			}						if(editWADiameter != null && !editWADiameter.trim().equals("")) {				if (editQTPCategory.trim().equals("Automotive") || editQTPCategory.trim().equals("Assembly or Packaging QTP")) {					if (editWADiameter.trim().equals("na") || editWADiameter.trim().equals("NA") || 						editWADiameter.trim().equals("n/a") || editWADiameter.trim().equals("N/A") ||						editWADiameter.trim().equals("N/a") || editWADiameter.trim().equals("N/a")) {						inputErrors.addElement("<B>Wire Material Diameter</B> is invalid for <B>QTP Category</B>.");					}					else						editMainInfo.setWireMaterialDiameter(editWADiameter.trim());				}				else						editMainInfo.setWireMaterialDiameter(editWADiameter.trim());			}			else {				inputErrors.addElement("<B>Wire Material Diameter</B> is blank.");			}						if(editAssemblySite != null && !editAssemblySite.trim().equals("")) {				if (editQTPCategory.trim().equals("Automotive") || editQTPCategory.trim().equals("Assembly or Packaging QTP")) {					if (editAssemblySite.trim().equals("na") || editAssemblySite.trim().equals("NA") || 						editAssemblySite.trim().equals("n/a") || editAssemblySite.trim().equals("N/A") ||						editAssemblySite.trim().equals("N/a") || editAssemblySite.trim().equals("N/a")) {						inputErrors.addElement("<B>Assembly Site</B> is invalid for <B>QTP Category</B>.");					}					else						editMainInfo.setAssySite(editAssemblySite.trim());				}				else						editMainInfo.setAssySite(editAssemblySite.trim());			}			else {				inputErrors.addElement("No <B>Assembly Site</B> selected.");			}						if(editSolderReflowTemp != null && !editSolderReflowTemp.trim().equals("")) {				if (editQTPCategory.trim().equals("Automotive") || editQTPCategory.trim().equals("Assembly or Packaging QTP")) {					if (editSolderReflowTemp.trim().equals("na") || editSolderReflowTemp.trim().equals("NA") || 						editSolderReflowTemp.trim().equals("n/a") || editSolderReflowTemp.trim().equals("N/A") ||						editSolderReflowTemp.trim().equals("N/a") || editSolderReflowTemp.trim().equals("N/a")) {						inputErrors.addElement("<B>Solder Reflow Temp</B> is invalid for <B>QTP Category</B>.");					}					else						editMainInfo.setSolderReflowTemp(editSolderReflowTemp.trim());				}				else						editMainInfo.setSolderReflowTemp(editSolderReflowTemp.trim());			}			else {				inputErrors.addElement("No <B>Solder Reflow Temp</B> selected.");			}						if(editSort1 != null && !editSort1.trim().equals("")) {				editMainInfo.setSort1(editSort1.trim());			}						if(editSort2 != null && !editSort2.trim().equals("")) {				editMainInfo.setSort2(editSort2.trim());			}						if(editSort3 != null && !editSort3.trim().equals("")) {				editMainInfo.setSort3(editSort3.trim());			}						if(editSort4 != null && !editSort4.trim().equals("")) {				editMainInfo.setSort4(editSort4.trim());			}						if(editClassHot != null && !editClassHot.trim().equals("")) {				editMainInfo.setClassHot(editClassHot.trim());			}						if(editClassRoom != null && !editClassRoom.trim().equals("")) {				editMainInfo.setClassRoom(editClassRoom.trim());			}						if(editClassCold != null && !editClassCold.trim().equals("")) {				editMainInfo.setClassCold(editClassCold.trim());			}						if(editQA != null && !editQA.trim().equals("")) {				editMainInfo.setQa(editQA.trim());			}						if(inputErrors.size() > 0) {				setQTPDataLists(request, connection, schema);					request.setAttribute("inputErrors", inputErrors);				session.setAttribute("editMainInfo", editMainInfo);				request.setAttribute("MAIN_SECTION", "qtpDataEdit.jsp");				request.setAttribute("editMode", editMode);			}			else {				Boolean saveSuccess = editMainInfo.put(connection, schema);				if(saveSuccess.booleanValue()) {					String userID = (String) request.getAttribute("userID");					RelQTPMainInfo.logDBTransaction(connection, schema, userID, SQLUtil.sqlGetTimestamp(), editMainInfo.getRelQtpDataID(), RelConstants.ACTION_SAVE);					if(session != null) {						if(editMainInfo != null) {							session.setAttribute("evalNum", editMainInfo.getEvalNum());						}					}				}								// refreshing main info and tvList from DB								RelQTPMainInfo resultMainInfo = RelQTPMainInfo.getInstance(connection, schema, editMainInfo.getEvalNum());				request.setAttribute("resultMainInfo", resultMainInfo);								request.setAttribute("saveSuccess", saveSuccess);												ArrayList resultTVList = RelTVInfo.getTVs(connection, schema, resultMainInfo.getEvalNum());				request.setAttribute("resultTVList", resultTVList);								request.setAttribute("MAIN_SECTION", "qtpDataView.jsp");			}							}				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");					showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");	}		protected void doSaveTV(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			RelTVInfo editTvInfo = null;		Vector inputErrors = new Vector();				Boolean saveSuccess = null;				String editMode = (String) request.getAttribute("editMode");				HttpSession session = request.getSession();				String evalNum = null;				if(session != null) {			editTvInfo = (RelTVInfo) session.getAttribute("editTvInfo");			evalNum = (String) session.getAttribute("evalNum");		}				if(editTvInfo != null) {			String editTvNumber = (String) request.getAttribute("editTvNumber");			String editMfgDevice = (String) request.getAttribute("editMfgDevice");			String editMktgDevice = (String) request.getAttribute("editMktgDevice");			String editBuildKit = (String) request.getAttribute("editBuildKit");			String editTestProgram = (String) request.getAttribute("editTestProgram");			String editBin = (String) request.getAttribute("editBin");			String editAssyLocation = (String) request.getAttribute("editAssyLocation");			String editMarkLot = (String) request.getAttribute("editMarkLot");			String editAssyLot = (String) request.getAttribute("editAssyLot");			String editFabLot = (String) request.getAttribute("editFabLot");			String editDc = (String) request.getAttribute("editDc");			String editTechnology = (String) request.getAttribute("editTechnology");			String editFamily = (String) request.getAttribute("editFamily");			String editAssyProcess = (String) request.getAttribute("editAssyProcess");									if(editMode.equals("add")) {				if(editTvNumber != null && !editTvNumber.trim().equals("")) {																	if(RelTVInfo.isTVNumAlreadyUsed(connection, schema, editTvNumber.trim(), evalNum)) {						inputErrors.addElement("<B>TV NUM</B> has already existing record/s for Test Vehicle Information.");					} else {						editTvInfo.setTvNum(editTvNumber.trim());					}				}							else {					inputErrors.addElement("<B>TV NUM</B> is blank.");				}			}						if(editMfgDevice != null && !editMfgDevice.trim().equals("")) {				if (editAssyLot.trim().equals("DUMMY") && editMfgDevice.trim().equals("DUMMY")) {					inputErrors.addElement("<B>Mfg Device</B> is inconsistent with <B>Assy Lot</B>");				}				else {					editTvInfo.setMfgDevice(editMfgDevice.trim());					}			}			else {				inputErrors.addElement("<B>Mfg Device</B> is blank.");			}						if(editMktgDevice != null && !editMktgDevice.trim().equals("")) {				if (editAssyLot.trim().equals("DUMMY") && editMktgDevice.trim().equals("DUMMY")) {					inputErrors.addElement("<B>Mktg Device</B> is inconsistent with <B>Assy Lot</B>");				}				else {					editTvInfo.setMktgDevice(editMktgDevice.trim());					}			}			else {				inputErrors.addElement("<B>Mktg Device</B> is blank.");			}						if(editBuildKit != null && !editBuildKit.trim().equals("")) {				if (editAssyLot.trim().equals("DUMMY") && editBuildKit.trim().equals("DUMMY")) {					inputErrors.addElement("<B>Build Kit</B> is inconsistent with <B>Assy Lot</B>");				}				else {					editTvInfo.setBuildKit(editBuildKit.trim());					}			}			else {				inputErrors.addElement("<B>Build Kit</B> is blank.");			}						if(editTestProgram != null && !editTestProgram.trim().equals("")) {				if (editAssyLot.trim().equals("DUMMY") && editTestProgram.trim().equals("DUMMY")) {					inputErrors.addElement("<B>Test Program</B> is inconsistent with <B>Assy Lot</B>");				}				else {					editTvInfo.setTestProgram(editTestProgram.trim());					}			}			else {				inputErrors.addElement("<B>Test Program</B> is blank.");			}						if(editBin != null && !editBin.trim().equals("")) {				editTvInfo.setBin(editBin.trim());			}			else {				inputErrors.addElement("<B>Bin</B> is blank.");			}						if(editAssyLocation != null && !editAssyLocation.trim().equals("")) {				editTvInfo.setAssyLoc(editAssyLocation.trim());			}			else {				inputErrors.addElement("<B>Assy Location</B> is blank.");			}						if(editMarkLot != null && !editMarkLot.trim().equals("")) {				editTvInfo.setMLot(editMarkLot.trim());			}			else {				inputErrors.addElement("<B>Mark Lot</B> is blank.");			}						if(editAssyLot != null && !editAssyLot.trim().equals("")) {				editTvInfo.setAssyLot(editAssyLot.trim());			}			else {				inputErrors.addElement("<B>Assy Lot</B> is blank.");			}						if(editFabLot != null && !editFabLot.trim().equals("")) {				if (editAssyLot.trim().equals("DUMMY") && editFabLot.trim().equals("DUMMY")) {					inputErrors.addElement("<B>Fab Lot</B> is inconsistent with <B>Assy Lot</B>");				}				else {					editTvInfo.setFabLot(editFabLot.trim());					}			}			else {				inputErrors.addElement("<B>Fab Lot</B> is blank.");			}						if(editDc != null && !editDc.trim().equals("")) {				if (editAssyLot.trim().equals("DUMMY") && editDc.trim().equals("DUMMY")) {					inputErrors.addElement("<B>Date Code</B> is inconsistent with <B>Assy Lot</B>");				}				else {					editTvInfo.setDc(editDc.trim());					}			}			else {				inputErrors.addElement("<B>Date Code</B> is blank.");			}						if(editTechnology != null && !editTechnology.trim().equals("")) {				editTvInfo.setTechnology(editTechnology.trim());			}			else {				inputErrors.addElement("No <B>Technology</B> selected.");			}						if(editFamily != null && !editFamily.trim().equals("")) {								editTvInfo.setFamily(editFamily.trim());							}			else {				inputErrors.addElement("No <B>Family</B> selected.");			}						if(editAssyProcess != null && !editAssyProcess.trim().equals("")) {				editTvInfo.setAssyProcess(editAssyProcess.trim());						}			else {				inputErrors.addElement("<B>Assy Process</B> is blank.");			}									if(inputErrors.size() > 0) {				setTVDataLists(request, connection, schema);				request.setAttribute("inputErrors", inputErrors);				session.setAttribute("editTvInfo", editTvInfo);				request.setAttribute("MAIN_SECTION", "qtpTVDataEdit.jsp");				request.setAttribute("editMode", editMode);			}			else {								saveSuccess = editTvInfo.put(connection, schema);				if(saveSuccess.booleanValue()) {					String userID = (String) request.getAttribute("userID");					RelTVInfo.logDBTransaction(connection, schema, userID, SQLUtil.sqlGetTimestamp(), editTvInfo.getTvDataID(), RelConstants.ACTION_SAVE);				}												if(editMode != null && editMode.equals("edit")) {					RelTVInfo resultTvInfo = RelTVInfo.getInstance(connection, schema, editTvInfo.getTvNum(), evalNum);					ArrayList resultStressList = RelStressInfo.getStresses(connection, schema, editTvInfo.getTvNum(), resultTvInfo.getEvalNum());										request.setAttribute("resultTvInfo", resultTvInfo);					request.setAttribute("resultStressList", resultStressList);											request.setAttribute("MAIN_SECTION", "qtpTVDataView.jsp");					}				else if(editMode != null && editMode.equals("add")) {					RelQTPMainInfo resultMainInfo = RelQTPMainInfo.getInstance(connection, schema, editTvInfo.getEvalNum());					ArrayList resultTVList = RelTVInfo.getTVs(connection, schema, editTvInfo.getEvalNum());										request.setAttribute("resultMainInfo", resultMainInfo);					request.setAttribute("resultTVList", resultTVList);											request.setAttribute("MAIN_SECTION", "qtpDataView.jsp");				}					}							}					request.setAttribute("TOP_SECTION", "qtpSearch.jsp");					showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");	}			protected void doSaveStress(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			RelStressInfo editStressInfo = null;		Vector inputErrors = new Vector();				Boolean saveSuccess = null;				String editMode = (String) request.getAttribute("editMode");				HttpSession session = request.getSession();				String evalNum = null;				if(session != null) {			editStressInfo = (RelStressInfo) session.getAttribute("editStressInfo");			evalNum = (String) session.getAttribute("evalNum");		}				if(editStressInfo != null) {									String editStressCode = (String) request.getAttribute("editStressCode");			String editStressLevel = (String) request.getAttribute("editStressLevel");			String editDCommitted = (String) request.getAttribute("editDCommitted");			String editDReceived = (String) request.getAttribute("editDReceived");			String editStressClass = (String) request.getAttribute("editStressClass");			String editQty0Hr = (String) request.getAttribute("editQty0Hr");			String editProgRej = (String) request.getAttribute("editProgRej");			String editRej0Hr = (String) request.getAttribute("editRej0Hr");			String editDTest0Hr = (String) request.getAttribute("editDTest0Hr");			String editMrb = (String) request.getAttribute("editMrb");			String editEngr = (String) request.getAttribute("editEngr");			String editComment0 = (String) request.getAttribute("editComment0");			String editMethodCond = (String) request.getAttribute("editMethodCond");			String editTemp = (String) request.getAttribute("editTemp");			String editVolt = (String) request.getAttribute("editVolt");						String editVendor = (String) request.getAttribute("editVendor");			String editSpares = (String) request.getAttribute("editSpares");			String editDCompleted = (String) request.getAttribute("editDCompleted");			String editComments = (String) request.getAttribute("editComments");			String editCCode = (String) request.getAttribute("editCCode");			String editCost = (String) request.getAttribute("editCost");						if(editStressCode != null && !editStressCode.trim().equals("")) {				editStressInfo.setStressCode(editStressCode.trim());			}			else {				inputErrors.addElement("No <B>STRESS CODE</B> selected.");			}						if(editStressLevel != null && !editStressLevel.trim().equals("")) {				editStressInfo.setStressLevel(new Double(editStressLevel.trim()));			}						if(editDCommitted != null && !editDCommitted.trim().equals("")) {				SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");				java.util.Date date = df.parse(editDCommitted.trim());				editStressInfo.setDCommitted(new Timestamp(date.getTime()));			}			else {				inputErrors.addElement("<B>Date Committed</B> is blank.");			}						if(editDReceived != null && !editDReceived.trim().equals("")) {				SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");				java.util.Date date = df.parse(editDReceived.trim());				editStressInfo.setDReceived(new Timestamp(date.getTime()));			}			else {				inputErrors.addElement("<B>Date Received</B> is blank.");			}						if(editStressClass != null && !editStressClass.trim().equals("")) {				editStressInfo.setStressClass(editStressClass.trim());			}						if(editQty0Hr != null && !editQty0Hr.trim().equals("")) {				editStressInfo.setQty0Hr(new Integer(editQty0Hr.trim()));			}						if(editProgRej != null && !editProgRej.trim().equals("")) {				editStressInfo.setProgRej(new Integer(editProgRej.trim()));			}						if(editRej0Hr != null && !editRej0Hr.trim().equals("")) {				editStressInfo.setRej0Hr(new Integer(editRej0Hr.trim()));			}						if(editDTest0Hr != null && !editDTest0Hr.trim().equals("")) {				SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");				java.util.Date date = df.parse(editDTest0Hr.trim());				editStressInfo.setDTest0Hr(new Timestamp(date.getTime()));			}						if(editMrb != null && !editMrb.trim().equals("")) {				editStressInfo.setMrb(editMrb.trim());			}						if(editEngr != null && !editEngr.trim().equals("")) {				editStressInfo.setEngr(editEngr.trim());			}						if(editComment0 != null && !editComment0.trim().equals("")) {								editStressInfo.setComment0(editComment0.trim());							}						if(editMethodCond != null && !editMethodCond.trim().equals("")) {				editStressInfo.setMethodCond(editMethodCond.trim());						}			else {				inputErrors.addElement("<B>Method Cond</B> is blank.");			}						if(editTemp != null && !editTemp.trim().equals("")) {				editStressInfo.setTemp(new Integer(editTemp.trim()));						}			else {				if (editStressCode.trim().startsWith("EFR", 0) || editStressCode.trim().startsWith("LFR", 0) ||					editStressCode.trim().startsWith("DRET", 0) || editStressCode.trim().startsWith("T/C", 0) ||					editStressCode.trim().startsWith("HAST", 0) || editStressCode.trim().startsWith("PCT", 0) ||					editStressCode.trim().startsWith("HTS", 0) || editStressCode.trim().startsWith("BI", 0) ||					editStressCode.trim().startsWith("TH", 0) || editStressCode.trim().startsWith("T/SHOCK", 0) ||					editStressCode.trim().startsWith("SDERBILTY", 0) || editStressCode.trim().startsWith("BURN IN", 0) ||					editStressCode.trim().startsWith("LATCH-UP", 0) || editStressCode.trim().startsWith("LIFE TEST", 0) ||					editStressCode.trim().startsWith("LIFE VER", 0) || editStressCode.trim().startsWith("LTOL", 0) ||					editStressCode.trim().startsWith("TEMP/HUMID", 0)) {						inputErrors.addElement("<B>Temp</B> is invalid for <B>Stress Code</B>.");					}			}						if(editVolt != null && !editVolt.trim().equals("")) {				editStressInfo.setVolt(new Double(editVolt.trim()));						}			else {				if (editStressCode.trim().startsWith("EFR", 0) || editStressCode.trim().startsWith("LFR", 0) ||					editStressCode.trim().startsWith("BI", 0) || editStressCode.trim().startsWith("BURN IN", 0) ||					editStressCode.trim().startsWith("HTSSL", 0) || editStressCode.trim().startsWith("HAST", 0)) {						inputErrors.addElement("<B>Voltage</B> is invalid for <B>Stress Code</B>.");					}			}						if(editVendor != null && !editVendor.trim().equals("")) {				editStressInfo.setVendor(editVendor.trim());						}						if(editSpares != null && !editSpares.trim().equals("")) {				editStressInfo.setSpares(new Integer(editSpares.trim()));						}						if(editDCompleted != null && !editDCompleted.trim().equals("")) {				SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");				java.util.Date date = df.parse(editDCompleted.trim());				editStressInfo.setDCompleted(new Timestamp(date.getTime()));					}						if(editComments != null && !editComments.trim().equals("")) {				editStressInfo.setComments(editComments.trim());						}						if(editCCode != null && !editCCode.trim().equals("")) {				editStressInfo.setCCode(editCCode.trim());						}						if(editCost != null && !editCost.trim().equals("")) {				editStressInfo.setCost(new Double(editCost.trim()));						}							if(inputErrors.size() > 0) {				setStressDataLists(request, connection, schema);				request.setAttribute("inputErrors", inputErrors);				session.setAttribute("editStressInfo", editStressInfo);				request.setAttribute("MAIN_SECTION", "qtpStressDataEdit.jsp");				request.setAttribute("editMode", editMode);			}			else {								saveSuccess = editStressInfo.put(connection, schema);				if(saveSuccess != null && saveSuccess.booleanValue()) {					String userID = (String) request.getAttribute("userID");					RelStressInfo.logDBTransaction(connection, schema, userID, SQLUtil.sqlGetTimestamp(), editStressInfo.getStressDataID(), RelConstants.ACTION_SAVE);				}											if(editMode != null && editMode.equals("edit")) {					RelStressInfo resultStressInfo = RelStressInfo.getInstance(connection, schema, editStressInfo.getStressInfoNum());					ArrayList resultTestList = RelTestInfo.getTests(connection, schema, editStressInfo.getStressInfoNum());										request.setAttribute("resultStressInfo", resultStressInfo);					request.setAttribute("resultTestList", resultTestList);											request.setAttribute("MAIN_SECTION", "qtpStressDataView.jsp");					}				else if(editMode != null && editMode.equals("add")) {										RelStress stress = RelStress.getInstance(connection, schema, editStressInfo.getStressCode());					if(stress != null) {						ArrayList readpoints = RelStress.getReadpoints(connection, schema, stress.getReadpointSetID());						if(readpoints != null && readpoints.size() > 0) {							Iterator iter = readpoints.iterator();							while(iter.hasNext()) {								String readpoint = (String) iter.next();								RelTestInfo testInfo = new RelTestInfo();								testInfo.setTestID(RelTestInfo.getNewTestID(connection, schema));								testInfo.setReadpoint(readpoint);								testInfo.setStressInfoNum(editStressInfo.getStressInfoNum());								testInfo.put(connection, schema);							}						}					}										RelTVInfo resultTvInfo = RelTVInfo.getInstance(connection, schema, editStressInfo.getTvNum(), evalNum);					ArrayList resultStressList = RelStressInfo.getStresses(connection, schema, editStressInfo.getTvNum(), resultTvInfo.getEvalNum());										request.setAttribute("resultTvInfo", resultTvInfo);					request.setAttribute("resultStressList", resultStressList);											request.setAttribute("MAIN_SECTION", "qtpTVDataView.jsp");				}											}							}					request.setAttribute("TOP_SECTION", "qtpSearch.jsp");					showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");	}		protected void doSaveTest(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			ArrayList resultTestList = null;				int failedSave = 0;		Boolean saveSuccess = null;				Vector inputErrors = new Vector();				HttpSession session = request.getSession();				if(session != null) {			resultTestList = (ArrayList) session.getAttribute("resultTestList");		}				if(resultTestList != null) {						Iterator iter = resultTestList.iterator();						while(iter.hasNext()) {				RelTestInfo testInfo = (RelTestInfo) iter.next();				Integer testID = testInfo.getTestID();								Vector errors = new Vector();									String editReadpt = (String) request.getAttribute("editReadpt_" + testID);				String editQtyIn = (String) request.getAttribute("editQtyIn_" + testID);				String editDateIn = (String) request.getAttribute("editDateIn_" + testID);				String editQtyOut = (String) request.getAttribute("editQtyOut_" + testID);				String editDateOut = (String) request.getAttribute("editDateOut_" + testID);				String editQtyInTst = (String) request.getAttribute("editQtyInTst_" + testID);				String editDateInTst = (String) request.getAttribute("editDateInTst_" + testID);				String editQtyOutTst = (String) request.getAttribute("editQtyOutTst_" + testID);				String editDateOutTst = (String) request.getAttribute("editDateOutTst_" + testID);				String editRej = (String) request.getAttribute("editRej_" + testID);				String editFA = (String) request.getAttribute("editFA_" + testID);				String editDateInFA = (String) request.getAttribute("editDateInFA_" + testID);				String editDateOutFA = (String) request.getAttribute("editDateOutFA_" + testID);				String editComment = (String) request.getAttribute("editComment_" + testID);				if(editReadpt != null && !editReadpt.trim().equals("")) {					testInfo.setReadpoint(editReadpt.trim());				}								if(editQtyIn != null && !editQtyIn.trim().equals("")) {					testInfo.setQtyIn(new Integer(editQtyIn.trim()));				}									if(editDateIn != null && !editDateIn.trim().equals("")) {					SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDateIn.trim());					testInfo.setDIn(new Timestamp(date.getTime()));				}									if(editQtyOut != null && !editQtyOut.trim().equals("")) {						testInfo.setQtyOut(new Integer(editQtyOut.trim()));				}									if(editDateOut != null && !editDateOut.trim().equals("")) {					SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDateOut.trim());					testInfo.setDOut(new Timestamp(date.getTime()));				}									if(editQtyInTst != null && !editQtyInTst.trim().equals("")) {					testInfo.setQtyInTst(new Integer(editQtyInTst.trim()));				}									if(editDateInTst != null && !editDateInTst.trim().equals("")) {					SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDateInTst.trim());					testInfo.setDInTst(new Timestamp(date.getTime()));				}									if(editQtyOutTst != null && !editQtyOutTst.trim().equals("")) {					testInfo.setQtyOutTst(new Integer(editQtyOutTst.trim()));				}									if(editDateOutTst != null && !editDateOutTst.trim().equals("")) {					SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDateOutTst.trim());					testInfo.setDOutTst(new Timestamp(date.getTime()));				}									if(editRej != null && !editRej.trim().equals("")) {					testInfo.setRej(new Integer(editRej.trim()));				}									if(editFA != null && !editFA.trim().equals("")) {					testInfo.setFa(editFA.trim());				}									if(editDateInFA != null && !editDateInFA.trim().equals("")) {						SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDateInFA.trim());					testInfo.setDInFa(new Timestamp(date.getTime()));					}									if(editDateOutFA != null && !editDateOutFA.trim().equals("")) {					SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDateOutFA.trim());					testInfo.setDOutFa(new Timestamp(date.getTime()));					}									if(editComment != null && !editComment.trim().equals("")) {					testInfo.setComments(editComment.trim());				}								// Date Validation					if(!isDateValid(editDateIn, editDateOut)) {					errors.addElement("<B>Date In</B> should not come after <B>Date Out</B>");				}				if(!isDateValid(editDateInTst, editDateOutTst)) {					errors.addElement("<B>Date In Test</B> should not come after <B>Date Out Test</B>");				}					if(errors.size() > 0) {					inputErrors.addAll(errors);					failedSave++;				}				else {					saveSuccess = testInfo.put(connection, schema);					if(saveSuccess.booleanValue()) {						String userID = (String)request.getAttribute("userID");						RelTestInfo.logDBTransaction(connection, schema, userID, SQLUtil.sqlGetTimestamp(), testInfo.getTestDataID(), RelConstants.ACTION_SAVE);					}					else {						failedSave++;					}				}										}						if(failedSave > 0) {				saveSuccess = new Boolean(false);			}								}				// refresh stress info and tests list from db				String editStressInfoNum = (String) request.getAttribute("editStressInfoNum");				RelStressInfo resultStressInfo = null;				if(editStressInfoNum != null && !editStressInfoNum.trim().equals("")) {			resultStressInfo = RelStressInfo.getInstance(connection, schema, editStressInfoNum.trim());			resultTestList = RelTestInfo.getTests(connection, schema, editStressInfoNum.trim());		}				request.setAttribute("resultStressInfo", resultStressInfo);									if(session != null) {			session.setAttribute("resultTestList", resultTestList);		}				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpStressDataView.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");	}		protected void doEditQTP(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				String editQtpNumber = (String) request.getAttribute("editQtpNumber");		RelQTPMainInfo editMainInfo = null;				if(editQtpNumber != null && !editQtpNumber.trim().equals("")) {			editMainInfo = RelQTPMainInfo.getInstance(connection, schema, editQtpNumber.trim());		}				HttpSession session = request.getSession(true);				if(session != null) {			session.setAttribute("editMainInfo", editMainInfo);		}				setQTPDataLists(request, connection, schema);					request.setAttribute("editMode", "edit");		request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpDataEdit.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}		protected void doEditTV(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				String editTvNum = (String) request.getAttribute("editTvNum");		RelTVInfo editTvInfo = null;				HttpSession session = request.getSession(true);		String evalNum = null;				if(session != null) {			evalNum = (String) session.getAttribute("evalNum");		}				if(editTvNum != null && !editTvNum.trim().equals("")) {			editTvInfo = RelTVInfo.getInstance(connection, schema, editTvNum.trim(), evalNum);		}								if(session != null) {			session.setAttribute("editTvInfo", editTvInfo);		}				setTVDataLists(request, connection, schema);					request.setAttribute("editMode", "edit");		request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpTVDataEdit.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}		protected void doEditStress(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				String editStressInfoNum = (String) request.getAttribute("editStressInfoNum");		RelStressInfo editStressInfo = null;				if(editStressInfoNum != null && !editStressInfoNum.trim().equals("")) {			editStressInfo = RelStressInfo.getInstance(connection, schema, editStressInfoNum.trim());		}				HttpSession session = request.getSession(true);				if(session != null) {			session.setAttribute("editStressInfo", editStressInfo);		}				setStressDataLists(request, connection, schema);					request.setAttribute("editMode", "edit");		request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpStressDataEdit.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}		protected void doCancelQTP(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				String editMode = (String) request.getAttribute("editMode");				HttpSession session = request.getSession();		RelQTPMainInfo editMainInfo = (RelQTPMainInfo) session.getAttribute("editMainInfo");				if(editMainInfo != null && editMode != null && editMode.equals("edit")) {						RelQTPMainInfo resultMainInfo = RelQTPMainInfo.getInstance(connection, schema, editMainInfo.getEvalNum());			ArrayList resultTVList = RelTVInfo.getTVs(connection, schema, editMainInfo.getEvalNum());						request.setAttribute("resultMainInfo", resultMainInfo);			request.setAttribute("resultTVList", resultTVList);							request.setAttribute("MAIN_SECTION", "qtpDataView.jsp");			}				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");				showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}		protected void doCancelTV(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				String editMode = (String) request.getAttribute("editMode");				HttpSession session = request.getSession();		String evalNum = null;				if(session != null) {			evalNum = (String) session.getAttribute("evalNum");		}				RelTVInfo editTvInfo = (RelTVInfo) session.getAttribute("editTvInfo");				if(editTvInfo != null) {						if(editMode != null && editMode.equals("edit")) {				RelTVInfo resultTvInfo = RelTVInfo.getInstance(connection, schema, editTvInfo.getTvNum(), evalNum);				ArrayList resultStressList = RelStressInfo.getStresses(connection, schema, editTvInfo.getTvNum(), resultTvInfo.getEvalNum());								request.setAttribute("resultTvInfo", resultTvInfo);				request.setAttribute("resultStressList", resultStressList);									request.setAttribute("MAIN_SECTION", "qtpTVDataView.jsp");				}			else if(editMode != null && editMode.equals("add")) {				RelQTPMainInfo resultMainInfo = RelQTPMainInfo.getInstance(connection, schema, editTvInfo.getEvalNum());				ArrayList resultTVList = RelTVInfo.getTVs(connection, schema, editTvInfo.getEvalNum());								request.setAttribute("resultMainInfo", resultMainInfo);				request.setAttribute("resultTVList", resultTVList);									request.setAttribute("MAIN_SECTION", "qtpDataView.jsp");			}		}				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");				showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}		protected void doCancelStress(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				String editMode = (String) request.getAttribute("editMode");				HttpSession session = request.getSession();		String evalNum = null;				if(session != null) {			evalNum = (String) session.getAttribute("evalNum");		}		RelStressInfo editStressInfo = (RelStressInfo) session.getAttribute("editStressInfo");				if(editStressInfo != null) {						if(editMode != null && editMode.equals("edit")) {				RelStressInfo resultStressInfo = RelStressInfo.getInstance(connection, schema, editStressInfo.getStressInfoNum());				ArrayList resultTestList = RelTestInfo.getTests(connection, schema, editStressInfo.getStressInfoNum());								request.setAttribute("resultStressInfo", resultStressInfo);				request.setAttribute("resultTestList", resultTestList);									request.setAttribute("MAIN_SECTION", "qtpStressDataView.jsp");				}			else if(editMode != null && editMode.equals("add")) {				RelTVInfo resultTvInfo = RelTVInfo.getInstance(connection, schema, editStressInfo.getTvNum(), evalNum);				ArrayList resultStressList = RelStressInfo.getStresses(connection, schema, editStressInfo.getTvNum(), resultTvInfo.getEvalNum());								request.setAttribute("resultTvInfo", resultTvInfo);				request.setAttribute("resultStressList", resultStressList);									request.setAttribute("MAIN_SECTION", "qtpTVDataView.jsp");			}		}				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");				showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}		protected void doCancelTest(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{							String editStressInfoNum = (String) request.getAttribute("editStressInfoNum");		RelStressInfo resultStressInfo = null;		ArrayList resultTestList = null;				if(editStressInfoNum != null && !editStressInfoNum.trim().equals("")) {			resultStressInfo = RelStressInfo.getInstance(connection, schema, editStressInfoNum.trim());			resultTestList = RelTestInfo.getTests(connection, schema, editStressInfoNum.trim());		}						request.setAttribute("resultStressInfo", resultStressInfo);				HttpSession session = request.getSession(true);				if(session != null) {			session.setAttribute("resultTestList", resultTestList);		}				request.setAttribute("MAIN_SECTION", "qtpStressDataView.jsp");						request.setAttribute("TOP_SECTION", "qtpSearch.jsp");				showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}		protected void doSetStressInfo(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			HttpSession session = request.getSession();		RelStressInfo editStressInfo = null;				if(session != null) {			editStressInfo = (RelStressInfo) session.getAttribute("editStressInfo");			if(editStressInfo != null) {								String editStressCode = (String) request.getAttribute("editStressCode");				String editStressLevel = (String) request.getAttribute("editStressLevel");				String editDCommitted = (String) request.getAttribute("editDCommitted");				String editDReceived = (String) request.getAttribute("editDReceived");				String editStressClass = (String) request.getAttribute("editStressClass");				String editQty0Hr = (String) request.getAttribute("editQty0Hr");				String editProgRej = (String) request.getAttribute("editProgRej");				String editRej0Hr = (String) request.getAttribute("editRej0Hr");				String editDTest0Hr = (String) request.getAttribute("editDTest0Hr");				String editMrb = (String) request.getAttribute("editMrb");				String editEngr = (String) request.getAttribute("editEngr");				String editComment0 = (String) request.getAttribute("editComment0");				String editMethodCond = (String) request.getAttribute("editMethodCond");				String editTemp = (String) request.getAttribute("editTemp");				String editVolt = (String) request.getAttribute("editVolt");							String editVendor = (String) request.getAttribute("editVendor");				String editSpares = (String) request.getAttribute("editSpares");				String editDCompleted = (String) request.getAttribute("editDCompleted");				String editComments = (String) request.getAttribute("editComments");				String editCCode = (String) request.getAttribute("editCCode");				String editCost = (String) request.getAttribute("editCost");								if(editStressCode != null && !editStressCode.trim().equals("")) {					editStressInfo.setStressCode(editStressCode.trim());				}								if(editStressLevel != null && !editStressLevel.trim().equals("")) {					editStressInfo.setStressLevel(new Double(editStressLevel.trim()));				}								if(editDCommitted != null && !editDCommitted.trim().equals("")) {					SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDCommitted.trim());					editStressInfo.setDCommitted(new Timestamp(date.getTime()));				}								if(editDReceived != null && !editDReceived.trim().equals("")) {					SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDReceived.trim());					editStressInfo.setDReceived(new Timestamp(date.getTime()));				}								if(editStressClass != null && !editStressClass.trim().equals("")) {					editStressInfo.setStressClass(editStressClass.trim());				}								if(editQty0Hr != null && !editQty0Hr.trim().equals("")) {					editStressInfo.setQty0Hr(new Integer(editQty0Hr.trim()));				}								if(editProgRej != null && !editProgRej.trim().equals("")) {					editStressInfo.setProgRej(new Integer(editProgRej.trim()));				}								if(editRej0Hr != null && !editRej0Hr.trim().equals("")) {					editStressInfo.setRej0Hr(new Integer(editRej0Hr.trim()));				}								if(editDTest0Hr != null && !editDTest0Hr.trim().equals("")) {					SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDTest0Hr.trim());					editStressInfo.setDTest0Hr(new Timestamp(date.getTime()));				}								if(editMrb != null && !editMrb.trim().equals("")) {					editStressInfo.setMrb(editMrb.trim());				}								if(editEngr != null && !editEngr.trim().equals("")) {					editStressInfo.setEngr(editEngr.trim());				}								if(editComment0 != null && !editComment0.trim().equals("")) {									editStressInfo.setComment0(editComment0.trim());								}								if(editMethodCond != null && !editMethodCond.trim().equals("")) {					editStressInfo.setMethodCond(editMethodCond.trim());							}								if(editTemp != null && !editTemp.trim().equals("")) {					editStressInfo.setTemp(new Integer(editTemp.trim()));							}								if(editVolt != null && !editVolt.trim().equals("")) {					editStressInfo.setVolt(new Double(editVolt.trim()));							}								if(editVendor != null && !editVendor.trim().equals("")) {					editStressInfo.setVendor(editVendor.trim());							}								if(editSpares != null && !editSpares.trim().equals("")) {					editStressInfo.setSpares(new Integer(editSpares.trim()));							}								if(editDCompleted != null && !editDCompleted.trim().equals("")) {					SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDCompleted.trim());					editStressInfo.setDCompleted(new Timestamp(date.getTime()));						}								if(editComments != null && !editComments.trim().equals("")) {					editStressInfo.setComments(editComments.trim());							}								if(editCCode != null && !editCCode.trim().equals("")) {					editStressInfo.setCCode(editCCode.trim());							}								if(editCost != null && !editCost.trim().equals("")) {					editStressInfo.setCost(new Double(editCost.trim()));							}								// set applicable stress info based on stress code				if(editStressCode != null && !editStressCode.trim().equals("")) {					RelStress stress = RelStress.getInstance(connection, schema, editStressCode.trim());					if(stress != null) {						editStressInfo.setTemp(stress.getTemp());						editStressInfo.setVolt(stress.getVolt());						editStressInfo.setCost(stress.getCost());					}									}			}						session.setAttribute("editStressInfo", editStressInfo);		}					setStressDataLists(request, connection, schema);						request.setAttribute("editMode", "add");		request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpStressDataEdit.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}		protected void doAddNewTV(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			HttpSession session = request.getSession(true);				if(session != null) {			String editQtpNumber = (String) request.getAttribute("editQtpNumber");			if(editQtpNumber != null && !editQtpNumber.trim().equals("")) {				RelTVInfo editTvInfo = new RelTVInfo();				editTvInfo.setEvalNum(editQtpNumber.trim());				session.setAttribute("editTvInfo", editTvInfo);			}		}					setTVDataLists(request, connection, schema);						request.setAttribute("editMode", "add");		request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpTVDataEdit.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}			protected void doAddNewStress(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			HttpSession session = request.getSession(true);				String evalNum = null;				if(session != null) {			evalNum = (String) session.getAttribute("evalNum");		}				if(session != null) {			String editTvNum = (String) request.getAttribute("editTvNum");			if(editTvNum != null && !editTvNum.trim().equals("")) {				RelStressInfo editStressInfo = new RelStressInfo();				editStressInfo.setTvNum(editTvNum.trim());				editStressInfo.setEvalNum(evalNum.trim());				editStressInfo.setStressInfoNum(RelStressInfo.getNewStressInfoNum(connection, schema).toString());				session.setAttribute("editStressInfo", editStressInfo);			}		}					setStressDataLists(request, connection, schema);						request.setAttribute("editMode", "add");		request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpStressDataEdit.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}		protected void doAddNewTest(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{				String editStressInfoNum = (String) request.getAttribute("editStressInfoNum");		RelStressInfo resultStressInfo = null;		ArrayList resultTestList = null;		ArrayList updatedList = new ArrayList();				// refresh stress info		if(editStressInfoNum != null && !editStressInfoNum.trim().equals("")) {			resultStressInfo = RelStressInfo.getInstance(connection, schema, editStressInfoNum.trim());		}				request.setAttribute("resultStressInfo", resultStressInfo);			// update current list		HttpSession session = request.getSession();				if(session != null) {			resultTestList = (ArrayList) session.getAttribute("resultTestList");		}				if(resultTestList != null) {						Iterator iter = resultTestList.iterator();						while(iter.hasNext()) {				RelTestInfo testInfo = (RelTestInfo) iter.next();				Integer testID = testInfo.getTestID();									String editReadpt = (String) request.getAttribute("editReadpt_" + testID);				String editQtyIn = (String) request.getAttribute("editQtyIn_" + testID);				String editDateIn = (String) request.getAttribute("editDateIn_" + testID);				String editQtyOut = (String) request.getAttribute("editQtyOut_" + testID);				String editDateOut = (String) request.getAttribute("editDateOut_" + testID);				String editQtyInTst = (String) request.getAttribute("editQtyInTst_" + testID);				String editDateInTst = (String) request.getAttribute("editDateInTst_" + testID);				String editQtyOutTst = (String) request.getAttribute("editQtyOutTst_" + testID);				String editDateOutTst = (String) request.getAttribute("editDateOutTst_" + testID);				String editRej = (String) request.getAttribute("editRej_" + testID);				String editFA = (String) request.getAttribute("editFA_" + testID);				String editDateInFA = (String) request.getAttribute("editDateInFA_" + testID);				String editDateOutFA = (String) request.getAttribute("editDateOutFA_" + testID);				String editComment = (String) request.getAttribute("editComment_" + testID);								if(editReadpt != null && !editReadpt.trim().equals("")) {					testInfo.setReadpoint(editReadpt.trim());				}								if(editQtyIn != null && !editQtyIn.trim().equals("")) {					testInfo.setQtyIn(new Integer(editQtyIn.trim()));				}								if(editDateIn != null && !editDateIn.trim().equals("")) {					SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDateIn.trim());					testInfo.setDIn(new Timestamp(date.getTime()));				}								if(editQtyOut != null && !editQtyOut.trim().equals("")) {									testInfo.setQtyOut(new Integer(editQtyOut.trim()));				}								if(editDateOut != null && !editDateOut.trim().equals("")) {					SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDateOut.trim());					testInfo.setDOut(new Timestamp(date.getTime()));				}								if(editQtyInTst != null && !editQtyInTst.trim().equals("")) {					testInfo.setQtyInTst(new Integer(editQtyInTst.trim()));				}								if(editDateInTst != null && !editDateInTst.trim().equals("")) {					SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDateInTst.trim());					testInfo.setDInTst(new Timestamp(date.getTime()));				}								if(editQtyOutTst != null && !editQtyOutTst.trim().equals("")) {					testInfo.setQtyOutTst(new Integer(editQtyOutTst.trim()));				}								if(editDateOutTst != null && !editDateOutTst.trim().equals("")) {					SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDateOutTst.trim());					testInfo.setDOutTst(new Timestamp(date.getTime()));				}								if(editRej != null && !editRej.trim().equals("")) {					testInfo.setRej(new Integer(editRej.trim()));				}								if(editFA != null && !editFA.trim().equals("")) {					testInfo.setFa(editFA.trim());				}								if(editDateInFA != null && !editDateInFA.trim().equals("")) {									SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDateInFA.trim());					testInfo.setDInFa(new Timestamp(date.getTime()));						}								if(editDateOutFA != null && !editDateOutFA.trim().equals("")) {					SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");					java.util.Date date = df.parse(editDateOutFA.trim());					testInfo.setDOutFa(new Timestamp(date.getTime()));						}								if(editComment != null && !editComment.trim().equals("")) {					testInfo.setComments(editComment.trim());				}								updatedList.add(testInfo);						}						resultTestList = updatedList;															}				// add new test to list		if(resultTestList == null) {			resultTestList = new ArrayList();		}				RelTestInfo newTest = new RelTestInfo();		newTest.setTestID(RelTestInfo.getNewTestID(connection, schema));		newTest.setStressInfoNum(editStressInfoNum.trim());					resultTestList.add(newTest);				if(session != null) {			session.setAttribute("resultTestList", resultTestList);		}				request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpStressDataView.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}			protected void doDeleteQTP(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			String editQtpNumber = (String) request.getAttribute("editQtpNumber");		Boolean deleteSuccess = null;				if(editQtpNumber != null && !editQtpNumber.trim().equals("")) {			RelQTPMainInfo editMainInfo = RelQTPMainInfo.getInstance(connection, schema, editQtpNumber.trim());			if(editMainInfo != null) {						deleteSuccess = RelQTPMainInfo.deleteQTPMainInfo(connection, schema, editQtpNumber.trim());				if(deleteSuccess.booleanValue()) {					String userID = (String) request.getAttribute("userID");					RelQTPMainInfo.logDBTransaction(connection, schema, userID, SQLUtil.sqlGetTimestamp(), editMainInfo.getRelQtpDataID(), RelConstants.ACTION_DELETE);				}			}		}				request.setAttribute("deleteSuccess", deleteSuccess);				request.setAttribute("MAIN_SECTION", "qtpDataView.jsp");					request.setAttribute("TOP_SECTION", "qtpSearch.jsp");				showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");						}		protected void doDeleteTV(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{					String[] deleteTVNums = (String[]) request.getParameterValues("removeTvNum");				Boolean deleteSuccess = null;		int failedDelete = 0;				HttpSession session = request.getSession();		String evalNum = null;				if(session != null) {			evalNum = (String) session.getAttribute("evalNum");		}				if(deleteTVNums != null && deleteTVNums.length > 0) {						deleteSuccess = new Boolean(true);						for(int x = 0; x < deleteTVNums.length; x++) {				if(!deleteTVNums[x].trim().equals("")) {					String tvNum = deleteTVNums[x].trim(); 																				RelTVInfo tvInfo = RelTVInfo.getInstance(connection, schema, tvNum, evalNum);					if(tvInfo != null) {						deleteSuccess = RelTVInfo.deleteTVInfo(connection, schema, tvNum, tvInfo.getEvalNum());						if(deleteSuccess.booleanValue()) {							String userID = (String) request.getAttribute("userID");							RelTVInfo.logDBTransaction(connection, schema, userID, SQLUtil.sqlGetTimestamp(), tvInfo.getTvDataID(), RelConstants.ACTION_DELETE);						}						else {							failedDelete++;						}					}									}							}						if(failedDelete > 0) {				deleteSuccess = new Boolean(false);			}		}				request.setAttribute("deleteSuccess", deleteSuccess);				// refresh qtp info and tv list from db				String editQtpNumber = (String) request.getAttribute("editQtpNumber");						RelQTPMainInfo resultMainInfo = null;				ArrayList resultTVList = null;				if(editQtpNumber != null && !editQtpNumber.trim().equals("")) {			resultMainInfo = RelQTPMainInfo.getInstance(connection, schema, editQtpNumber.trim());			resultTVList = RelTVInfo.getTVs(connection, schema, editQtpNumber.trim());		}				request.setAttribute("resultMainInfo", resultMainInfo);						request.setAttribute("resultTVList", resultTVList);			request.setAttribute("MAIN_SECTION", "qtpDataView.jsp");					request.setAttribute("TOP_SECTION", "qtpSearch.jsp");				showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");			}		protected void doDeleteStress(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			String[] deleteStressInfoNums = (String[]) request.getParameterValues("removeStressInfoNum");				Boolean deleteSuccess = null;		int failedDelete = 0;				if(deleteStressInfoNums != null && deleteStressInfoNums.length > 0) {						deleteSuccess = new Boolean(true);						for(int x = 0; x < deleteStressInfoNums.length; x++) {				if(!deleteStressInfoNums[x].trim().equals("")) {					String stressInfoNum = deleteStressInfoNums[x].trim(); 																				RelStressInfo editStressInfo = RelStressInfo.getInstance(connection, schema, stressInfoNum);					if(editStressInfo != null) {													deleteSuccess = RelStressInfo.deleteStressInfo(connection, schema, stressInfoNum);																		if(deleteSuccess.booleanValue()) {							String userID = (String) request.getAttribute("userID");							RelStressInfo.logDBTransaction(connection, schema, userID, SQLUtil.sqlGetTimestamp(), editStressInfo.getStressDataID(), RelConstants.ACTION_DELETE);						}						else {							failedDelete++;						}					}									}							}						if(failedDelete > 0) {				deleteSuccess = new Boolean(false);			}		}				request.setAttribute("deleteSuccess", deleteSuccess);				// refresh tv info and stress list from DB				String editTvNum = (String) request.getAttribute("editTvNum");				RelTVInfo resultTvInfo = null;				ArrayList resultStressList = null;				HttpSession session = request.getSession();		String evalNum = null;				if(session != null) {			evalNum = (String) session.getAttribute("evalNum");		}				if(editTvNum != null && !editTvNum.trim().equals("")) {			resultTvInfo = RelTVInfo.getInstance(connection, schema, editTvNum.trim(), evalNum);			resultStressList = RelStressInfo.getStresses(connection, schema, editTvNum.trim(), resultTvInfo.getEvalNum());		}				request.setAttribute("resultTvInfo", resultTvInfo);		request.setAttribute("resultStressList", resultStressList);					request.setAttribute("TOP_SECTION", "qtpSearch.jsp");		request.setAttribute("MAIN_SECTION", "qtpTVDataView.jsp");		showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		protected void doDeleteTest(			HttpServletRequest request,			HttpServletResponse response,					Connection connection, 			String schema)			throws Exception{			String[] deleteTestIDs = (String[]) request.getParameterValues("removeTestID");				Boolean deleteSuccess = null;		int failedDelete = 0;				if(deleteTestIDs != null && deleteTestIDs.length > 0) {						deleteSuccess = new Boolean(true);						for(int x = 0; x < deleteTestIDs.length; x++) {				if(!deleteTestIDs[x].trim().equals("")) {					Integer testID = new Integer(deleteTestIDs[x].trim()); 																				RelTestInfo editTestInfo = RelTestInfo.getInstance(connection, schema, testID);					if(editTestInfo != null) {						deleteSuccess = RelTestInfo.deleteTestInfo(connection, schema, testID);						if(deleteSuccess.booleanValue()) {							String userID = (String) request.getAttribute("userID");							RelTestInfo.logDBTransaction(connection, schema, userID, SQLUtil.sqlGetTimestamp(), editTestInfo.getTestDataID(), RelConstants.ACTION_DELETE);						}						else {							failedDelete++;						}					}									}							}						if(failedDelete > 0) {				deleteSuccess = new Boolean(false);			}		}				request.setAttribute("deleteSuccess", deleteSuccess);				// refresh stress info and tests list from db				String editStressInfoNum = (String) request.getAttribute("editStressInfoNum");				RelStressInfo resultStressInfo = null;				ArrayList resultTestList = null;				if(editStressInfoNum != null && !editStressInfoNum.trim().equals("")) {			resultStressInfo = RelStressInfo.getInstance(connection, schema, editStressInfoNum.trim());			resultTestList = RelTestInfo.getTests(connection, schema, editStressInfoNum.trim());		}				request.setAttribute("resultStressInfo", resultStressInfo);								HttpSession session = request.getSession(true);				if(session != null) {			session.setAttribute("resultTestList", resultTestList);		}			request.setAttribute("MAIN_SECTION", "qtpStressDataView.jsp");					request.setAttribute("TOP_SECTION", "qtpSearch.jsp");				showPage(request, connection, schema, "admin/rel/qtpTemplate.jsp");					}		private void setQTPDataLists(			HttpServletRequest request,				Connection connection, 			String schema) throws Exception{		ArrayList allRelSitesList = RelSite.getAllSites(connection, schema);		ArrayList allDivisionsList = RelDivision.getAllDivisions(connection, schema);		ArrayList allBizUnitsList = RelBizUnit.getAllBizUnits(connection, schema);		ArrayList allFabSitesList = RelFabSite.getAllFabSites(connection, schema);				ArrayList allStatusList = RelStatus.getAllStatus(connection, schema);		ArrayList allQTPCategoriesList = RelQTPCategory.getAllQTPCategories(connection, schema);		ArrayList allMoistureLevelsList = RelMoistureLevel.getAllMoistureLevels(connection, schema);		ArrayList allAssySitesList = RelAssySite.getAllAssySites(connection, schema);		ArrayList allSolderReflowTempsList = RelSolderReflowTemp.getAllSolderReflowTemps(connection, schema);						request.setAttribute("allRelSitesList", allRelSitesList);		request.setAttribute("allDivisionsList", allDivisionsList);		request.setAttribute("allBizUnitsList", allBizUnitsList);		request.setAttribute("allFabSitesList", allFabSitesList);				request.setAttribute("allStatusList", allStatusList);		request.setAttribute("allQTPCategoriesList", allQTPCategoriesList);		request.setAttribute("allMoistureLevelsList", allMoistureLevelsList);		request.setAttribute("allAssySitesList", allAssySitesList);		request.setAttribute("allSolderReflowTempsList", allSolderReflowTempsList);	}		private void setTVDataLists(			HttpServletRequest request,				Connection connection, 			String schema) throws Exception{				ArrayList allTechnologiesList = RelTechnology.getAllTechnologies(connection, schema);		ArrayList allFamiliesList = RelFamily.getAllFamilies(connection, schema);						request.setAttribute("allFamiliesList", allFamiliesList);		request.setAttribute("allTechnologiesList", allTechnologiesList);			}		private void setStressDataLists(			HttpServletRequest request,				Connection connection, 			String schema) throws Exception{		ArrayList allStressCodesList = RelStress.getAllRelStressCodes(connection, schema);						request.setAttribute("allStressCodesList", allStressCodesList);			}		private void setCustomSearchLists(			HttpServletRequest request,				Connection connection, 			String schema) throws Exception{		String[] searchFields = RelQTPMainInfo.SEARCH_FIELDS;		String[] types = RelQTPMainInfo.FIELD_TYPES;		request.setAttribute("searchFields", searchFields);				request.setAttribute("types", types);						String[] searchFieldsTV = RelTVInfo.SEARCH_FIELDS;		String[] typesTV = RelTVInfo.FIELD_TYPES;		request.setAttribute("searchFieldsTV", searchFieldsTV);				request.setAttribute("typesTV", typesTV);				String[] searchFieldsStress = RelStressInfo.SEARCH_FIELDS;		String[] typesStress = RelStressInfo.FIELD_TYPES;		request.setAttribute("searchFieldsStress", searchFieldsStress);				request.setAttribute("typesStress", typesStress);				String[] searchFieldsTest = RelTestInfo.SEARCH_FIELDS;		String[] typesTest = RelTestInfo.FIELD_TYPES;		request.setAttribute("searchFieldsTest", searchFieldsTest);				request.setAttribute("typesTest", typesTest);			}		private void setSearchLists(			HttpServletRequest request,				Connection connection, 			String schema) throws Exception{				ArrayList allRelSitesList = RelSite.getAllSites(connection, schema);		ArrayList allDivisionsList = RelDivision.getAllDivisions(connection, schema);		ArrayList allBizUnitsList = RelBizUnit.getAllBizUnits(connection, schema);						ArrayList allStatusList = RelStatus.getAllStatus(connection, schema);		ArrayList allQTPCategoriesList = RelQTPCategory.getAllQTPCategories(connection, schema);				request.setAttribute("allRelSitesList", allRelSitesList);		request.setAttribute("allDivisionsList", allDivisionsList);		request.setAttribute("allBizUnitsList", allBizUnitsList);						request.setAttribute("allStatusList", allStatusList);		request.setAttribute("allQTPCategoriesList", allQTPCategoriesList);			}		private void updateCustomSearchInputs(			HttpServletRequest request,				Connection connection, 			String schema) throws Exception{				HttpSession session = request.getSession();				ArrayList rulesList = null;		String equation = null;		ArrayList orderList = null;				ArrayList rulesListTV = null;		String equationTV = null;		ArrayList orderListTV = null;				ArrayList rulesListStress = null;		String equationStress = null;		ArrayList orderListStress = null;				ArrayList rulesListTest = null;		String equationTest = null;		ArrayList orderListTest = null;				if(session != null) {												// Main info filters						rulesList = (ArrayList) session.getAttribute("rulesList");						if(rulesList != null) {				Iterator iter = rulesList.iterator();				int ruleNum = 0;				while(iter.hasNext()) {										RelCustomSearchRule rule = (RelCustomSearchRule) iter.next();					String field = (String) request.getAttribute("field_" + ruleNum);					String operator = (String) request.getAttribute("operator_" + ruleNum);					String value = (String) request.getAttribute("value_" + ruleNum);										rule.setField(field);					rule.setOperator(operator);					rule.setValue(value);												ruleNum++;				}			}						equation = (String) request.getAttribute("equation");						orderList = (ArrayList) session.getAttribute("orderList");			ArrayList updatedOrderList = new ArrayList();						if(orderList != null) {				Iterator iter = orderList.iterator();				int orderNum = 0;				while(iter.hasNext()) {					String order = (String) request.getAttribute("order_" + orderNum);					updatedOrderList.add(order);					orderNum++;					iter.next();				}			}						session.setAttribute("rulesList", rulesList);			session.setAttribute("equation", equation);			session.setAttribute("orderList", updatedOrderList);									// tv filters						rulesListTV = (ArrayList) session.getAttribute("rulesListTV");						if(rulesListTV != null) {				Iterator iter = rulesListTV.iterator();				int ruleNum = 0;				while(iter.hasNext()) {										RelCustomSearchRule rule = (RelCustomSearchRule) iter.next();					String fieldTV = (String) request.getAttribute("fieldTV_" + ruleNum);					String operatorTV = (String) request.getAttribute("operatorTV_" + ruleNum);					String valueTV = (String) request.getAttribute("valueTV_" + ruleNum);										rule.setField(fieldTV);					rule.setOperator(operatorTV);					rule.setValue(valueTV);												ruleNum++;				}			}						equationTV = (String) request.getAttribute("equationTV");						orderListTV = (ArrayList) session.getAttribute("orderListTV");			ArrayList updatedOrderListTV = new ArrayList();						if(orderListTV != null) {				Iterator iter = orderListTV.iterator();				int orderNum = 0;				while(iter.hasNext()) {					String orderTV = (String) request.getAttribute("orderTV_" + orderNum);					updatedOrderListTV.add(orderTV);					orderNum++;					iter.next();				}			}						session.setAttribute("rulesListTV", rulesListTV);			session.setAttribute("equationTV", equationTV);			session.setAttribute("orderListTV", updatedOrderListTV);									// stress info						rulesListStress = (ArrayList) session.getAttribute("rulesListStress");						if(rulesListStress != null) {				Iterator iter = rulesListStress.iterator();				int ruleNum = 0;				while(iter.hasNext()) {										RelCustomSearchRule rule = (RelCustomSearchRule) iter.next();					String fieldStress = (String) request.getAttribute("fieldStress_" + ruleNum);					String operatorStress = (String) request.getAttribute("operatorStress_" + ruleNum);					String valueStress = (String) request.getAttribute("valueStress_" + ruleNum);										rule.setField(fieldStress);					rule.setOperator(operatorStress);					rule.setValue(valueStress);												ruleNum++;				}			}						equationStress = (String) request.getAttribute("equationStress");						orderListStress = (ArrayList) session.getAttribute("orderListStress");			ArrayList updatedOrderListStress = new ArrayList();						if(orderListStress != null) {				Iterator iter = orderListStress.iterator();				int orderNum = 0;				while(iter.hasNext()) {					String orderStress = (String) request.getAttribute("orderStress_" + orderNum);					updatedOrderListStress.add(orderStress);					orderNum++;					iter.next();				}			}						session.setAttribute("rulesListStress", rulesListStress);			session.setAttribute("equationStress", equationStress);			session.setAttribute("orderListStress", updatedOrderListStress);						// test info						rulesListTest = (ArrayList) session.getAttribute("rulesListTest");						if(rulesListTest != null) {				Iterator iter = rulesListTest.iterator();				int ruleNum = 0;				while(iter.hasNext()) {										RelCustomSearchRule rule = (RelCustomSearchRule) iter.next();					String fieldTest = (String) request.getAttribute("fieldTest_" + ruleNum);					String operatorTest = (String) request.getAttribute("operatorTest_" + ruleNum);					String valueTest = (String) request.getAttribute("valueTest_" + ruleNum);										rule.setField(fieldTest);					rule.setOperator(operatorTest);					rule.setValue(valueTest);												ruleNum++;				}			}						equationTest = (String) request.getAttribute("equationTest");						orderListTest = (ArrayList) session.getAttribute("orderListTest");			ArrayList updatedOrderListTest = new ArrayList();						if(orderListTest != null) {				Iterator iter = orderListTest.iterator();				int orderNum = 0;				while(iter.hasNext()) {					String orderTest = (String) request.getAttribute("orderTest_" + orderNum);					updatedOrderListTest.add(orderTest);					orderNum++;					iter.next();				}			}						session.setAttribute("rulesListTest", rulesListTest);			session.setAttribute("equationTest", equationTest);			session.setAttribute("orderListTest", updatedOrderListTest);					}			}		}