Java tutorial
/*L * Copyright SAIC-F Inc. * * Distributed under the OSI-approved BSD 3-Clause License. * See http://ncip.github.com/cadsr-cde-browser/LICENSE.txt for details. * * Portions of this source file not modified since 2008 are covered by: * * Copyright 2000-2008 Oracle, Inc. * * Distributed under the caBIG Software License. For details see * http://ncip.github.com/cadsr-cde-browser/LICENSE-caBIG.txt */ package gov.nih.nci.ncicb.cadsr.cdebrowser.process; import gov.nih.nci.ncicb.cadsr.common.base.process.BasePersistingProcess; import gov.nih.nci.ncicb.cadsr.common.ProcessConstants; import gov.nih.nci.ncicb.cadsr.common.lov.ClassificationsLOVBean; import gov.nih.nci.ncicb.cadsr.common.resource.Context; import gov.nih.nci.ncicb.cadsr.common.util.AppScanValidator; import gov.nih.nci.ncicb.cadsr.common.util.CDEBrowserParams; import gov.nih.nci.ncicb.cadsr.common.util.DBUtil; import gov.nih.nci.ncicb.cadsr.common.util.TabInfoBean; import java.util.Collection; import java.util.Iterator; import javax.servlet.http.HttpServletRequest; import oracle.cle.process.ProcessInfoException; import oracle.cle.process.Service; import oracle.cle.util.statemachine.TransitionCondition; import oracle.cle.util.statemachine.TransitionConditionException; import org.apache.commons.lang.StringEscapeUtils; //CDE Browser Application Imports //import oracle.cle.process.ProcessConstants; // Framework imports // java imports /** * @author Ram Chilukuri * @version: $Id: GetClassificationsLOV.java,v 1.9 2009-03-17 19:04:47 davet Exp $ */ public class GetClassificationsLOV extends BasePersistingProcess { public GetClassificationsLOV() { this(null); DEBUG = false; } public GetClassificationsLOV(Service aService) { super(aService); DEBUG = false; } /** * Registers all the parameters and results (<code>ProcessInfo</code>) for * this process during construction. */ public void registerInfo() { try { registerResultObject(ProcessConstants.CS_LOV); registerResultObject("tib"); registerParameterObject("SEARCH"); registerStringParameter("P_PARAM_TYPE"); registerStringParameter("P_CONTEXT"); registerStringParameter("P_CONTE_IDSEQ"); registerParameterObject(ProcessConstants.DEC_LOV); registerStringParameter("performQuery"); registerStringResult("performQuery"); registerParameterObject("dbUtil"); registerStringParameter("SBR_DSN"); registerStringParameter("INITIALIZED"); } catch (ProcessInfoException pie) { reportException(pie, true); } catch (Exception e) { } } /** * persist: called by start to do all persisting work for this process. If * this method throws an exception, then the condition returned by the * <code>getPersistFailureCondition()</code> is set. Otherwise, the * condition returned by <code>getPersistSuccessCondition()</code> is set. */ public void persist() throws Exception { HttpServletRequest myRequest = null; TabInfoBean tib = null; String[] searchParam = null; ClassificationsLOVBean cslb = null; String performQuery = null; DBUtil dbUtil = null; String dsName = null; try { if (getStringInfo("INITIALIZED") == null) { CDEBrowserParams params = CDEBrowserParams.getInstance(); //dsName = params.getSbrDSN(); dbUtil = new DBUtil(); } else { dbUtil = (DBUtil) getInfoObject("dbUtil"); //dsName = getStringInfo("SBR_DSN"); } tib = new TabInfoBean("cdebrowser_lov_tabs"); myRequest = (HttpServletRequest) getInfoObject("HTTPRequest"); tib.processRequest(myRequest); if (tib.getMainTabNum() != 0) { tib.setMainTabNum(0); } searchParam = getInfoStringArray("SEARCH"); if (searchParam != null) { int numberOfSearchFields = searchParam.length; } performQuery = StringEscapeUtils.escapeHtml(getStringInfo("performQuery")); if (performQuery == null) { //dbUtil = (DBUtil) getInfoObject("dbUtil"); //dsName = getStringInfo("SBR_DSN"); dbUtil.getConnectionFromContainer(); String contextIdSeq = StringEscapeUtils.escapeHtml(getStringInfo("P_CONTE_IDSEQ")); if (contextIdSeq != null) { if (!AppScanValidator.validateElementIdSequence(contextIdSeq)) throw new Exception("Invalidate ID sequence"); } String chk = StringEscapeUtils.escapeHtml(getStringInfo("chkContext")); String[] contexts = null; if ((chk != null) && chk.equals("always")) { Collection coll = (Collection) myRequest.getSession().getAttribute("userContexts"); contexts = new String[coll.size()]; int i = 0; for (Iterator it = coll.iterator(); it.hasNext(); i++) contexts[i] = ((Context) it.next()).getConteIdseq(); myRequest.setAttribute("chkContext", chk); } else { if ((contextIdSeq != null) && (contextIdSeq.length() > 0)) { contexts = new String[1]; contexts[0] = contextIdSeq; } else contexts = new String[0]; } // build additional query filters String additionalWhere = ""; if (contexts.length > 0) additionalWhere += " and (upper(nvl(cs_conte.conte_idseq,'%')) like upper ( '%" + contexts[0] + "%') "; for (int i = 1; i < contexts.length; i++) { additionalWhere += " or upper(nvl(cs_conte.conte_idseq,'%')) like upper ( '%" + contexts[i] + "%') "; } if (contexts.length > 0) additionalWhere += ")"; // String additionalWhere = // " and upper(nvl(cs_conte.conte_idseq,'%')) like upper ( '%" + // conteIdseq + "%') "; cslb = new ClassificationsLOVBean(myRequest, dbUtil, additionalWhere); dbUtil.returnConnection(); } else { cslb = (ClassificationsLOVBean) getInfoObject(ProcessConstants.CS_LOV); cslb.getCommonLOVBean().resetRequest(myRequest); } setResult(ProcessConstants.CS_LOV, cslb); setResult("tib", tib); setResult("performQuery", null); setCondition(SUCCESS); } catch (Exception ex) { try { setCondition(FAILURE); //dbUtil.returnConnection(); } catch (TransitionConditionException tce) { reportException(tce, DEBUG); } catch (Exception e) { reportException(e, DEBUG); } reportException(ex, DEBUG); } finally { if (dbUtil != null) { dbUtil.returnConnection(); } } } protected TransitionCondition getPersistSuccessCondition() { return getCondition(SUCCESS); } protected TransitionCondition getPersistFailureCondition() { return getCondition(FAILURE); } private void initialize() { if (getStringInfo("INITIALIZED") == null) { //CDEBrowserParams params = CDEBrowserParams.getInstance("cdebrowser"); //setResult("SBREXT_DSN", params.getSbrextDSN()); //setResult("SBR_DSN", params.getSbrDSN()); } } }