ProcessUserAction
package edu.jbs.ooc.ui; import java.io.*; import java.util.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; import com.ibm.ejs.ns.jndi.*; import javax.naming.*; import javax.ejb.*; import edu.jbs.ooc.databeans.*; import edu.jbs.ooc.beans.*; import edu.jbs.ooc.util.*; public class ProcessUserAction { private String message; private SessionDB session; private java.lang.String type; private java.util.Date lastAccess; private java.util.Vector tableNames; private java.util.Hashtable multipleResults; // ********************* public ProcessUserAction ( ) { super (); Vector v = new Vector(); v.add("Person"); v.add("Content Object"); v.add("File"); setTableNames ( v ); multipleResults = new Hashtable(); buildSession( ); } // end constructor //********************* /** * Insert the method's description here. * Creation date: (9/21/2001 2:47:27 PM) */ public void buildSession() { try { Properties properties = new Properties(); properties.put( javax.naming.Context.PROVIDER_URL, "IIOP://localhost:900/" ); properties.put( javax.naming.Context.INITIAL_CONTEXT_FACTORY, "com.ibm.ejs.ns.jndi.CNInitialContextFactory" ); InitialContext initialContext = new InitialContext( properties ); Object initialReference = initialContext.lookup( "edu/jbs/ooc/beans/SessionDB" ); SessionDBHome home = (SessionDBHome) javax.rmi.PortableRemoteObject.narrow( initialReference, SessionDBHome.class ); session = home.create(); } catch(Throwable theException) { System.out.println( "Error in Servlet: UIServlet.buildSession" ); theException.printStackTrace(); } } //********************* public String add ( UIBean uiBean ) { TransportBean reqBean = buildTransportBean( uiBean ); reqBean.setAction("Add"); ViewBean viewBean = getViewBean( reqBean ); if ( reqBean == null ) { viewBean.setMessage( "Add failed; error building parameters." ); return formFilled( viewBean ); } try { TransportBean respBean = (TransportBean)session.processAction( reqBean ); if ( respBean != null ) { viewBean.setMessage( respBean.getResponseMessage() ); ObjectBean objBean = (ObjectBean)(respBean.getBeanCurrent()); if ( objBean != null ) viewBean.setValues( objBean.getValues() ); return formFilled( viewBean ); } else { viewBean.setMessage( "Add failed." ); return formFilled( viewBean ); } } catch(Throwable e) { System.out.println( "Error in processUserAction.add" ); e.printStackTrace(); viewBean.setMessage( "Add failed in processUserAction.catch." ); return formFilled( viewBean ); } } //********************* /** * Insert the method's description here. * Creation date: (9/20/2001 3:41:13 PM) * @return boolean * @param up java.util.Hashtable */ public TransportBean buildTransportBean( UIBean uiBean ) { Hashtable up = uiBean.getUserParams(); if ( up == null ) return null; TransportBean trptBean = new TransportBean(); ObjectBean objBean = new ObjectBean(); String dataObject = uiBean.getDataObject(); if ( dataObject.equalsIgnoreCase("person") ) trptBean.setTarget( ObjectBean.PERSON ); else if ( dataObject.equalsIgnoreCase("content") ) trptBean.setTarget( ObjectBean.CONTENT ); else if ( dataObject.equalsIgnoreCase("file") ) trptBean.setTarget( ObjectBean.FILE ); else trptBean.setTarget( 0 ); Enumeration keys = up.keys(); while ( keys.hasMoreElements() ) { String key = (String)keys.nextElement(); String value = (String)(up.get(key)); objBean.setValue( key, value ); } trptBean.add( objBean ); return trptBean; } //********************* public String clear ( UIBean uiBean ) { ViewBean viewBean = this.getViewBeanClear( uiBean ); viewBean.setMessage("Fields cleared."); return formClear( viewBean ); } //********************* public String delete ( UIBean uiBean ) { TransportBean reqBean = buildTransportBean( uiBean ); reqBean.setAction("Delete"); ViewBean viewBean = getViewBean( reqBean ); if ( reqBean == null ) { viewBean.setMessage( "Delete failed; error building parameters." ); return formFilled( viewBean ); } try { TransportBean respBean = (TransportBean)session.processAction( reqBean ); if ( respBean != null ) { viewBean.setMessage( respBean.getResponseMessage() ); ObjectBean objBean = (ObjectBean)(respBean.getBeanCurrent()); if ( objBean != null ) viewBean.setValues( objBean.getValues() ); return formFilled( viewBean ); } else { viewBean.setMessage( "Delete failed." ); return formFilled( viewBean ); } } catch(Throwable e) { System.out.println( "Error in processUserAction.delete" ); e.printStackTrace(); viewBean.setMessage( "Delete failed in catch." ); return formFilled( viewBean ); } } //********************* public static String errorAction ( String message ) { String xmlString = "<return_report>\n"; xmlString += "<return_message>" + message + "</return_message>\n"; xmlString += "</return_report>\n"; return xmlString; } /** * Insert the method's description here. * Creation date: (3/19/2002 2:30:47 PM) * @return java.lang.String * @param uiBean edu.jbs.ooc.databeans.UIBean */ public String fileUpload(UIBean uiBean) { if ( !( ((Boolean)(uiBean.getSysParam("writeFileOK"))).booleanValue() ) ) { ViewBean viewBean = new ViewBean(); viewBean.setMessage( "File Upload failed; error writing file." ); return formFilled( viewBean ); } TransportBean reqBean = buildTransportBean( uiBean ); ViewBean viewBean = getViewBean( reqBean ); if ( reqBean == null ) { viewBean.setMessage( "Add failed; error building parameters." ); return formFilled( viewBean ); } return update( uiBean ); } // ********************* Forms *********************// public String formClear ( ViewBean viewBean ) { /* String xmlString = "<?xml version='1.0'?>\n"; xmlString += "<return_form>\n"; xmlString += "<return_message>" + message + "</return_message>\n"; xmlString += "<form_person>\n"; xmlString += "<form_item>\n"; xmlString += "<name_first></name_first>\n"; xmlString += "<name_middle></name_middle>\n"; xmlString += "<name_last></name_last>\n"; xmlString += "<address></address>\n"; xmlString += "<city></city>\n"; xmlString += "<state></state>\n"; xmlString += "<zip></zip>\n"; xmlString += "</form_item>\n"; xmlString += "</form_person>\n"; xmlString += "</return_form>\n"; */ return formFilled ( viewBean ); } //********************* public String formFilled ( ViewBean viewBean ) { String urlString = ""; if ( viewBean instanceof ViewBeanFile ) { urlString = ((ViewBeanFile)viewBean).getXMLforURL() + "\n"; } String xmlString = "<?xml version='1.0'?>\n"; xmlString += "<form_data_object>\n"; xmlString += "<data_object_name>" + viewBean.getTargetName() + "</data_object_name>\n"; xmlString += "<data_object_id>" + viewBean.getObjectID() + "</data_object_id>\n"; xmlString += "<response_message>" + viewBean.getMessage() + "</response_message>\n"; xmlString += "<entries>\n"; xmlString += "<item>\n"; xmlString += viewBean.getXML(); xmlString += "</item>\n"; xmlString += "</entries>\n"; xmlString += urlString; xmlString += "</form_data_object>\n"; return xmlString; } /** * Insert the method's description here. * Creation date: (3/5/2002 4:12:25 PM) * @return java.lang.String */ public String formLogon() { String xmlString = "<?xml version='1.0'?>\n"; xmlString += "<form_logon>\n"; xmlString += "<response_message>" + "Logon." + "</response_message>\n"; xmlString += "</form_logon>"; return xmlString; } /** * Insert the method's description here. * Creation date: (3/6/2002 9:53:06 AM) * @return java.lang.String */ private String formSelectTable( ViewBean viewBean ) { String xmlString = "<?xml version='1.0'?>\n"; xmlString += "<form_select_table>\n"; xmlString += "<form_select_table_entries>\n"; xmlString += getTableNamesAsXml(); xmlString += "</form_select_table_entries>\n"; xmlString += "<response_message>" + viewBean.getMessage() +"</response_message>\n"; xmlString += "</form_select_table>\n"; return xmlString; } /** * Insert the method's description here. * Creation date: (3/5/2002 4:24:32 PM) * @return java.lang.String */ public String formWelcome() { String xmlString = "<?xml version='1.0'?>\n"; xmlString += "<form_welcome>\n"; xmlString += "</form_welcome>\n"; return xmlString; } //********************* public String getForm ( UIBean uiBean ) { // dummy implementation for testing ViewBeanPerson vfp = new ViewBeanPerson(); vfp.setMessage( "Data for a person." ); return formFilled( vfp ); } /** * Insert the method's description here. * Creation date: (2/25/2002 9:14:03 AM) * @return java.util.Date */ public java.util.Date getLastAccess() { return lastAccess; } /** * Insert the method's description here. * Creation date: (3/5/2002 4:09:57 PM) * @return java.lang.String * @param uiBean edu.jbs.ooc.databeans.UIBean */ public String getLogon() { return formLogon(); } /** * Insert the method's description here. * Creation date: (4/2/2002 7:55:40 AM) * @return java.util.Hashtable */ private TransportBean getMultipleResults( String objectID) { return (TransportBean)multipleResults.get( objectID );; } //********************* public String getReport ( UIBean uiBean ) { ViewBean vb = new ViewBean(); vb.setMessage( "Report." ); return report( vb ); } /** * Insert the method's description here. * Creation date: (3/6/2002 10:41:46 AM) * @return java.lang.String */ public String getTableNamesAsXml() { String xmlString = ""; if ( tableNames != null ) { for (int i=0;i<tableNames.size();i++) { String name = (String)tableNames.elementAt(i); xmlString += "<table_item>\n"; xmlString += "<name>" + "table" + "</name>\n"; xmlString += "<value>" + name + "</value>\n"; xmlString += "</table_item>\n"; } return xmlString; } else return null; } /** * Insert the method's description here. * Creation date: (3/8/2002 2:30:11 PM) * @return edu.jbs.ooc.databeans.ResponseBean * @param reqBean edu.jbs.ooc.databeans.RequestBean */ private ViewBean getViewBean(TransportBean reqBean) { ViewBean viewBean; int target = reqBean.getTarget(); if ( target == ObjectBean.PERSON ) { viewBean = new ViewBeanPerson(); } else if ( target == ObjectBean.CONTENT ) { viewBean = new ViewBeanContent(); } else if ( target == ObjectBean.FILE ) { viewBean = new ViewBeanFile(); } else return null; ObjectBean objBean = (ObjectBean)reqBean.getBeanCurrent(); if ( objBean != null ) viewBean.setValues( objBean.getValues() ); return viewBean; } /** * Insert the method's description here. * Creation date: (3/8/2002 2:30:11 PM) * @return edu.jbs.ooc.databeans.ResponseBean * @param reqBean edu.jbs.ooc.databeans.RequestBean */ private ViewBean getViewBeanClear(UIBean uiBean) { ViewBean viewBean; String target = uiBean.getUserParam( "dataObject" ); if ( target.equalsIgnoreCase("person") ) { viewBean = new ViewBeanPerson(); } else if ( target.equalsIgnoreCase("content") ) { viewBean = new ViewBeanContent(); } else { viewBean = new ViewBeanFile(); } return viewBean; } // ********************* public String initialContact ( ) { ViewBeanPerson viewBean = new ViewBeanPerson(); viewBean.setMessage("Welcome.\nAdd data for a person."); return formClear( viewBean ); } //********************* public String nullAction () { String xmlString = "<?xml version='1.0'?>\n"; message = "No action specified for ooc UIServlet"; xmlString += "<return_report>\n"; xmlString += "<return_message>" + message + "</return_message>\n"; xmlString += "</return_report>\n"; return xmlString; } /** * Insert the method's description here. * Creation date: (3/6/2002 1:25:36 PM) * @return java.lang.String * @param uiBean edu.jbs.ooc.databeans.UIBean */ public String openTable(UIBean uiBean) { String tableName = uiBean.getUserParam("tableName"); if ( tableName == null ) { ViewBeanPerson viewBean = new ViewBeanPerson(); viewBean.setMessage( "No table selected; click one of the buttons on the left." ); return formSelectTable( (ViewBean)viewBean ); } else if ( tableName.equalsIgnoreCase("person") ) { ViewBeanPerson viewBean = new ViewBeanPerson(); return formFilled( (ViewBean)viewBean ); } else if ( tableName.equalsIgnoreCase("content object") ) { ViewBeanContent viewBean = new ViewBeanContent(); return formFilled( (ViewBean)viewBean ); } else if ( tableName.equalsIgnoreCase("file") ) { ViewBeanFile viewBean = new ViewBeanFile(); return formFilled( (ViewBean)viewBean ); } else { ViewBean viewBean = new ViewBean(); viewBean.setMessage( "System error." ); return formSelectTable( (ViewBean)viewBean ); } } //********************* public String quit ( UIBean uiBean ) { ViewBean vb = new ViewBean(); vb.setMessage( "Ending session." ); return report( vb ); } // ********************* Reports *********************// public String report ( ViewBean viewBean ) { String xmlString = "<?xml version='1.0'?>\n"; xmlString += "<report_data_object>\n"; xmlString += "<data_object_name>" + viewBean.getTargetName() + "</data_object_name>\n"; xmlString += "<response_message>" + viewBean.getMessage() + "</response_message>\n"; xmlString += "<entries>\n"; xmlString += "<item>\n"; xmlString += viewBean.getXML(); xmlString += "</item>\n"; xmlString += "</entries>\n"; xmlString += "</report_data_object>\n"; return xmlString; } //********************* public String search ( UIBean uiBean ) { TransportBean reqBean = buildTransportBean( uiBean ); reqBean.setAction("Search"); ViewBean viewBean = getViewBean( reqBean ); if ( reqBean == null ) { viewBean.setMessage( "Search failed; error building parameters." ); return formFilled( viewBean ); } try { TransportBean respBean = (TransportBean)session.processAction( reqBean ); if ( respBean != null ) { String objectID = BeanUtils.getUniqueID(); respBean.setObjectID( objectID ); viewBean.setObjectID( objectID ); viewBean.setMessage( respBean.getResponseMessage() ); ObjectBean objBean = (ObjectBean)(respBean.getBeanCurrent()); if ( objBean != null ) viewBean.setValues( objBean.getValues() ); setMultipleResults( objectID, respBean ); viewBean.setMessage( "Search succeeded; number of entries found: " + respBean.size() ); return formFilled( viewBean ); } else { viewBean.setMessage( "Search failed. No entries were found." ); return formFilled( viewBean ); } } catch(Throwable e) { System.out.println( "Error in processUserAction.search" ); e.printStackTrace(); viewBean.setMessage( "Search failed in catch." ); return formFilled( viewBean ); } } /** * Insert the method's description here. * Creation date: (3/7/2002 3:59:47 PM) * @return java.lang.String * @param param edu.jbs.ooc.databeans.UIBean */ public String selectTable(UIBean param) { ViewBean viewBean = new ViewBean(); viewBean.setMessage( "Select table.." ); return formSelectTable( viewBean ); } /** * Insert the method's description here. * Creation date: (2/25/2002 9:14:03 AM) * @param newLastAccess java.util.Date */ public void setLastAccess() { lastAccess = new java.util.Date(); } /** * Insert the method's description here. * Creation date: (4/2/2002 7:55:40 AM) * @param newMultipleResults java.util.Hashtable */ private boolean setMultipleResults( String objectID, TransportBean tpBean ) { if ( (objectID == null) || (tpBean == null) ) return false; multipleResults.put( objectID, tpBean ); return true; } /** * Insert the method's description here. * Creation date: (3/6/2002 10:40:08 AM) * @param newTableNames java.util.Vector */ public void setTableNames(java.util.Vector newTableNames) { tableNames = newTableNames; } /** * Insert the method's description here. * Creation date: (4/1/2002 11:25:09 AM) * @return java.lang.String * @param uiBean edu.jbs.ooc.databeans.UIBean */ public String stepResults(UIBean uiBean) { ViewBean viewBean; String objectID = uiBean.getUserParam( "objectID" ); if ( objectID == null ) { return errorAction( "Error in stepResults: no objectID recieved." ); } TransportBean tpBean = getMultipleResults( objectID ); if ( tpBean == null ) { return errorAction( "Error in stepResults: not multiple results." ); } int current; int size = tpBean.size(); String userAction = uiBean.getUserAction(); if ( (userAction.trim()).equals( "<<" ) ) current = tpBean.getIndexFirst(); else if ( (userAction.trim()).equals( "<" ) ) current = tpBean.getIndexPrevious(); else if ( (userAction.trim()).equals( ">" ) ) current = tpBean.getIndexNext(); else if ( (userAction.trim()).equals( ">>" ) ) current = tpBean.getIndexLast(); else return errorAction( "Error in stepResults: unrecognized action" ); viewBean = getViewBean( tpBean ); viewBean.setObjectID( objectID ); viewBean.setMessage( "Row " + (current+1) + " of " + size + " displayed."); return formFilled( viewBean ); } //********************* public String update ( UIBean uiBean ) { TransportBean reqBean = buildTransportBean( uiBean ); reqBean.setAction("Update"); ViewBean viewBean = getViewBean( reqBean ); if ( reqBean == null ) { viewBean.setMessage( "Update failed; error building parameters." ); return formFilled( viewBean ); } try { TransportBean respBean = (TransportBean)session.processAction( reqBean ); if ( respBean != null ) { viewBean.setMessage( respBean.getResponseMessage() ); ObjectBean objBean = (ObjectBean)(respBean.getBeanCurrent()); if ( objBean != null ) viewBean.setValues( objBean.getValues() ); return formFilled( viewBean ); } else { viewBean.setMessage( "Update failed." ); return formFilled( viewBean ); } } catch(Throwable e) { System.out.println( "Error in processUserAction.update" ); e.printStackTrace(); viewBean.setMessage( "Update failed in catch." ); return formFilled( viewBean ); } } /** * Insert the method's description here. * Creation date: (3/6/2002 9:26:26 AM) * @return java.lang.String * @param param edu.jbs.ooc.databeans.UIBean */ public String verifyLogon(UIBean uiBean) { if ( true ) { return windowMainFrameset(); //return selectTable(); } else return null; } /** * Insert the method's description here. * Creation date: (3/5/2002 4:23:34 PM) * @return java.lang.String */ public String welcome() { return formWelcome();; } /** * Insert the method's description here. * Creation date: (4/24/2002 9:47:23 AM) * @return java.lang.String */ private String windowMainFrameset() { String xmlString = "<?xml version='1.0'?>\n"; xmlString += "<window_main_frameset>\n"; xmlString += "<user_type>" + "super" + "</user_type>\n"; xmlString += "</window_main_frameset>"; return xmlString; } } // end ProcessUserAction