Mappers


Overview

Mapper Interface

package edu.jbs.ooc.mappers;

import edu.jbs.ooc.databeans.*;

/**
 * Insert the type's description here.
 * Creation date: (2/20/2002 8:32:37 AM)
 * @author: Administrator
 */
public interface ObjectBeanMapperInterface {

/**
 * Insert the method's description here.
 * Creation date: (3/27/2002 10:58:11 AM)
 * @param tpBean edu.jbs.ooc.databeans.TransportBean
 */
TransportBean processAction(TransportBean tpBean);
}

Mapper Factory

package edu.jbs.ooc.mappers;

import edu.jbs.ooc.databeans.*;

/**
 * Insert the type's description here.
 * Creation date: (2/20/2002 9:09:09 AM)
 * @author: Administrator
 */
public class ObjectBeanMapperFactory {
/**
 * ObjectBeanMapperFactory constructor comment.
 */
public ObjectBeanMapperFactory() {
	super();
}
/**
 * Insert the method's description here.
 * Creation date: (2/20/2002 9:10:51 AM)
 * @return edu.jbs.ooc.databeans.ObjectBeanMapperInterface
 * @param mapperType int
 */
public static ObjectBeanMapperInterface getMapper(int objectBeanType) {
	
	if ( objectBeanType == ObjectBean.PERSON ) {
		 return new OBMapperPerson();  
	 }
	if ( objectBeanType == ObjectBean.CONTENT ) {
		 return new OBMapperContent();  
	 }
	if ( objectBeanType == ObjectBean.FILE ) {
		 return new OBMapperFile();  
	 }
	  
	 return null;
	
}
}

Mapper for Person

package edu.jbs.ooc.mappers;

import java.lang.reflect.*;
import java.util.*;
import edu.jbs.ooc.ui.*;
import javax.naming.*;

import java.rmi.RemoteException;
import java.security.Identity;
import java.util.Properties;
import javax.ejb.*;
import javax.rmi.*;

import com.ibm.ejs.ns.jndi.*;

import edu.jbs.ooc.beans.*;
import edu.jbs.ooc.databeans.*;
import edu.jbs.ooc.util.*;

/**
 * Insert the type's description here.
 * Creation date: (1/30/2002 1:36:08 PM)
 * @author: Administrator
 */
public class OBMapperPerson implements ObjectBeanMapperInterface {
	
	public edu.jbs.ooc.beans.DBPerson ejb;
	public edu.jbs.ooc.beans.DBPersonHome ejbHome;
	
/**
 * DBPersonMapper constructor comment.
 */
public OBMapperPerson() {
	
	super();
	ejbHome = buildEJBHome();
	
}
/**
 * Insert the method's description here.
 * Creation date: (1/30/2002 1:43:36 PM)
 * @return edu.jbs.ooc.beans.DBPersonHome
 */
private DBPersonHome buildEJBHome() {
	
	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/DBPerson" ); 
	    	    	    
	    DBPersonHome home = (DBPersonHome)
	    	javax.rmi.PortableRemoteObject.narrow( initialReference, DBPersonHome.class );
	    	    
	    return home;
	    	
	}
	catch(Throwable theException)
	{
		
	    System.out.println( "Error in DBPersonMapper: buildAddressHome" );
	    theException.printStackTrace();
	    return null;
	    
	}
}



/**
 * Insert the method's description here.
 * Creation date: (3/27/2002 11:02:18 AM)
 * @return edu.jbs.ooc.databeans.TransportBean
 */
public TransportBean processAction( TransportBean tpBean ) {
	
	TransportBean respBean = new TransportBean();
	
	if ( tpBean == null )  { 
		respBean.setResponseCode ( "400" );
		respBean.setResponseMessage ("OBMapperPerson.processAction error: null TransportBean received" );
		return respBean;
	}

	String action = tpBean.getAction();
	
	if ( action.equalsIgnoreCase("Add") )    return this.add( tpBean );
	if ( action.equalsIgnoreCase("Search") ) return this.search( tpBean );
	if ( action.equalsIgnoreCase("Update") ) return this.update( tpBean );
	if ( action.equalsIgnoreCase("Delete") ) return this.delete( tpBean );

	respBean.setResponseCode ( "400" );
	respBean.setResponseMessage ("OBMapperPerson.processAction error: invalid action" );
	return respBean;
	
}
 
/**
 * Insert the method's description here.
 * Creation date: (1/30/2002 1:36:08 PM)
 * @return boolean
 * @param p edu.jbs.ooc.ui.Person
 */
public TransportBean add( TransportBean tpBean ) {

try  
	{
		
		TransportBean respBean = new TransportBean();
		
		ObjectBean objBean = (ObjectBean)(tpBean.getBeanCurrent());
		if ( objBean == null )  {
			respBean.setResponseMessage("OBMapperPerson.add: null ObjectBean");
			System.out.println( "OBMapperPerson.add: null ObjectBean");
			return respBean;
		}
		
		String id = BeanUtils.getUniqueID();
		DBPerson ejb = ejbHome.create( id );  // creates a new item in DB
		
		ObjectBean rb = setEJBValues( ejb, objBean );  // fills in fields and generates ObjectBean
		
		respBean.add( rb );
		respBean.setTarget( ObjectBean.PERSON );
		respBean.setResponseCode("200" );
		respBean.setResponseMessage( "Person add ok." );
		System.out.println( "OBMapperPerson.add: returning normally");

		return respBean;

		
	}  catch ( CreateException e )  {
		System.out.println( "CreateException " + e + " caught in DBPersonMapper.add" );
		return null;
	}  catch ( RemoteException e )  {
		System.out.println( "RemoteException " + e + " caught in DBPersonMapper.add" );
		return null;
	}
	
}

/**
 * Insert the method's description here.
 * Creation date: (4/5/2002 11:31:26 AM)
 * @return java.lang.String[]
 * @param objBean edu.jbs.ooc.databeans.ObjectBean
 */
private String[] buildParamsForSearchByValues(ObjectBean objBean) {

	String params[] = new String[13];
	String temp;

	temp = (String)objBean.getValue("nameFirst");
	if (temp == null || temp.equals("") ) temp = "%";
	params[0] = temp;
	
	temp = (String)objBean.getValue("nameMiddle");
	if ( temp == null || temp.equals("") ) temp = "%";
	params[1] = temp;

	temp = (String)objBean.getValue("nameLast");
	if ( temp == null || temp.equals("") ) temp = "%";
	params[2] = temp;
	
	temp = (String)objBean.getValue("address");
	if ( temp == null || temp.equals("") ) temp = "%";
	params[3] = temp;
	
	temp = (String)objBean.getValue("city");
	if ( temp == null || temp.equals("") ) temp = "%";
	params[4] = temp;
	
	temp = (String)objBean.getValue("state");
	if ( temp == null || temp.equals("") ) temp = "%";
	params[5] = temp;

	temp = (String)objBean.getValue("zip");
	if ( temp == null || temp.equals("") ) temp = "%";
	params[6] = temp;
	
	temp = (String)objBean.getValue("phoneHome");
	if ( temp == null || temp.equals("") ) temp = "%";
	params[7] = temp;
	
	temp = (String)objBean.getValue("phoneWork");
	if ( temp == null || temp.equals("") ) temp = "%";
	params[8] = temp;
	
	temp = (String)objBean.getValue("phoneFax");
	if ( temp == null || temp.equals("") ) temp = "%";
	params[9] = temp;

	temp = (String)objBean.getValue("phoneCell");
	if ( temp == null || temp.equals("") ) temp = "%";
	params[10] = temp;
	
	temp = (String)objBean.getValue("email");
	if ( temp == null || temp.equals("") ) temp = "%";
	params[11] = temp;
	
	temp = (String)objBean.getValue("url");
	if ( temp == null || temp.equals("") ) temp = "%";
	params[12] = temp;
	
	return params;
	
}
/**
 * Insert the method's description here.
 * Creation date: (1/30/2002 1:36:08 PM)
 * @return boolean
 * @param p edu.jbs.ooc.ui.Person
 */
public TransportBean delete( TransportBean tpBean ) {

	try  
	{
		TransportBean respBean = new TransportBean();
		
		ObjectBean objBean = (ObjectBean)(tpBean.getBeanCurrent());
		if ( objBean == null )  {
			respBean.setResponseMessage("OBMapperPerson.delete: null ObjectBean");
			return respBean;
		}
		
		String id = (String)objBean.getValue( "personID" );
		DBPerson ejb = ejbHome.findByPrimaryKey( new DBPersonKey(id) );
			
		ejb.remove();

		respBean.setTarget( ObjectBean.PERSON );
		respBean.setResponseCode("200" );
		respBean.setResponseMessage( "Person delete ok." );
		
		return respBean;
		
	}  catch ( FinderException e )  {
		System.out.println( "FinderException " + e + " caught in DBPersonMapper.delete" );
		return null;
	}  catch ( RemoteException e )  {
		System.out.println( "RemoteException " + e + " caught in DBPersonMapper.delete" );
		return null;
	}  catch ( RemoveException e )  {
		System.out.println( "RemoveException " + e + " caught in DBPersonMapper.delete" );
		return null;
	}  
}
/**
 * Insert the method's description here.
 * Creation date: (1/30/2002 2:24:47 PM)
 * @return java.lang.String
 */
public String getMessage() {
	return new String("DBPersonMapper is alive");
}
/**
 * Insert the method's description here.
 * Creation date: (3/8/2002 11:10:32 AM)
 * @return edu.jbs.ooc.databeans.ObjectBean
 * @param dbBean edu.jbs.ooc.beans.DBPerson
 */
private ObjectBean getObjectBean(DBPerson ejb) {

	ObjectBean objBean = new ObjectBean();
	
	try  {
		
	objBean.setValue( "personID", ejb.getPersonID() );
	objBean.setValue( "nameFirst", ejb.getNameFirst() );
	objBean.setValue( "nameMiddle", ejb.getNameMiddle() );
	objBean.setValue( "nameLast", ejb.getNameLast() );
	objBean.setValue( "address", ejb.getAddress() );
	objBean.setValue( "city", ejb.getCity() );
	objBean.setValue( "state", ejb.getState() );
	objBean.setValue( "zip", ejb.getZip() );
	objBean.setValue( "phoneHome", ejb.getPhoneHome() );
	objBean.setValue( "phoneWork", ejb.getPhoneWork() );
	objBean.setValue( "phoneFax", ejb.getPhoneFax() );
	objBean.setValue( "phoneCell", ejb.getPhoneCell() );
	objBean.setValue( "email", ejb.getEmail() );
	objBean.setValue( "url", ejb.getUrl() );
	
	objBean.setValue( "dateCreated", ejb.getDateCreated() );
	objBean.setValue( "dateModified", ejb.getDateModified() );

	}  catch ( RemoteException e )  {
		System.out.println( "RemoteException " + e + " caught in AddressMapperCMP.add" );
		return null;
	}
	
	
	return objBean;
}

/**
 * Insert the method's description here.
 * Creation date: (1/30/2002 1:36:08 PM)
 * @return edu.jbs.ooc.ui.Person
 * @param p edu.jbs.ooc.ui.Person
 */
public TransportBean search ( TransportBean tpBean ) {

	try  
	{
		TransportBean respBean = new TransportBean();
		
		ObjectBean objBean = (ObjectBean)(tpBean.getBeanCurrent());
		if ( objBean == null )  {
			respBean.setResponseMessage("OBMapperPerson.search: null ObjectBean");
			return respBean;
		}
		
		String id = ((String)objBean.getValue("personID")).trim();	
		if ( id != null && !(id.equals("")) ) {
			DBPerson ejb = ejbHome.findByPrimaryKey( new DBPersonKey(id) );
			ObjectBean rb = getObjectBean( ejb );
			respBean.add( rb ); 
		}
		else {
			String params[] = buildParamsForSearchByValues( objBean );
			if ( params != null )  {
				java.util.Enumeration someEJBs = ejbHome.findByValues( params[0], params[1], params[2], params[3], params[4], params[5], params[6], params[7], params[8], params[9], params[10], params[11], params[12] );
				if ( someEJBs == null ) {
					System.out.println( "someDBPersons is null" );
					respBean.setTarget( ObjectBean.PERSON );
					respBean.setResponseCode("404" );
					respBean.setResponseMessage( "Person search returned null." );
					return respBean;
				}
				else  {
					while ( someEJBs.hasMoreElements() )  {
						DBPerson ejb = (DBPerson)javax.rmi.PortableRemoteObject.narrow( someEJBs.nextElement(), DBPerson.class );
						ObjectBean rb = getObjectBean( ejb );
						respBean.add( rb ); 
					}  // end while						
				}  // end else
			}  // end if
			else  {
				System.out.println("Error: find by neither"); // error here
				return null;
			}
		}  // end else
		
		respBean.setTarget( ObjectBean.PERSON );		
		respBean.setResponseCode("200" );
		respBean.setResponseMessage( "Person search ok." );

		return respBean;
		
	}  catch ( FinderException e )  {
		System.out.println( "FinderException " + e + " caught in DBPersonMapper.search" );
		return null;
	}  catch ( RemoteException e )  {
		System.out.println( "RemoteException " + e + " caught in DBPersonMapper.search" );
		return null;
	}
	
}
/**
 * Insert the method's description here.
 * Creation date: (1/30/2002 1:57:55 PM)
 * @return boolean
 * @param param edu.jbs.ooc.beans.DBPerson
 * @param ejb edu.jbs.ooc.ui.Person
 */
private ObjectBean setEJBValues(DBPerson ejb, ObjectBean objBean) {
		
	try  
	{	
			
		ejb.setNameFirst( (String)objBean.getValue("nameFirst") );
		ejb.setNameMiddle( (String)objBean.getValue("nameMiddle") );
		ejb.setNameLast( (String)objBean.getValue("nameLast") );
		
		ejb.setAddress( (String)objBean.getValue("address") );
		ejb.setCity( (String)objBean.getValue("city") );
		ejb.setState( (String)objBean.getValue("state") );
		ejb.setZip( (String)objBean.getValue("zip") );
		
		ejb.setEmail( (String)objBean.getValue("email") );
		ejb.setUrl( (String)objBean.getValue("zip") );
		
		ejb.setPhoneHome( (String)objBean.getValue("phoneHome") );
		ejb.setPhoneWork( (String)objBean.getValue("phoneWork") );
		ejb.setPhoneFax( (String)objBean.getValue("phoneFax") );
		ejb.setPhoneCell( (String)objBean.getValue("phoneCell") );					

		long now = (new Date()).getTime();
		if ( ejb.getDateCreated() == null )  {
			ejb.setDateCreated( new java.sql.Date ( now ) );
		}
		ejb.setDateModified( new java.sql.Date ( now ) );

		return getObjectBean( ejb );		
		
	
	}  catch ( RemoteException e )  {
		System.out.println( "RemoteException " + e + " caught in AddressMapperCMP.add" );
		return null;
	}	
	
}

/**
 * Insert the method's description here.
 * Creation date: (1/30/2002 1:36:08 PM)
 * @return boolean
 * @param p edu.jbs.ooc.ui.Person
 */
public TransportBean update( TransportBean tpBean ) {

	try  
	{
		
		TransportBean respBean = new TransportBean();
		
		ObjectBean objBean = (ObjectBean)(tpBean.getBeanCurrent());
		if ( objBean == null )  {
			respBean.setTarget( ObjectBean.PERSON );		
			respBean.setResponseMessage("OBMapperPerson.add: null ObjectBean");
			return respBean;
		}
		
		String id = (String)objBean.getValue( "personID" );
		DBPerson ejb = ejbHome.findByPrimaryKey( new DBPersonKey(id) );
					
		ObjectBean rb = setEJBValues( ejb, objBean );  // fills in fields and generates ObjectBean
		
		respBean.add( rb );
		respBean.setTarget( ObjectBean.PERSON );		
		respBean.setResponseCode("200" );
		respBean.setResponseMessage( "Person update ok." );

		return respBean;
		
	}  catch ( FinderException e )  {
		System.out.println( "FinderException " + e + " caught in AddressMapperCMP.update" );
		return null;
	}  catch ( RemoteException e )  {
		System.out.println( "RemoteException " + e + " caught in AddressMapperCMP.update" );
		return null;
	}
	
}
}