package org.tgdb.genome.integrationcopy; import org.tgdb.TgDbCaller; import org.tgdb.exceptions.ApplicationException; import org.tgdb.model.expmodel.ExpModelRemoteHome; import org.tgdb.project.AbstractTgDbBean; import org.tgdb.project.project.ProjectRemote; import org.tgdb.project.project.ProjectRemoteHome; import org.tgdb.project.user.UserRemote; import org.tgdb.project.user.UserRemoteHome; import org.tgdb.search.Keyword; import org.tgdb.servicelocator.ServiceLocator; import org.tgdb.species.chromosome.ChromosomeRemote; import org.tgdb.species.chromosome.ChromosomeRemoteHome; import java.rmi.RemoteException; import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import javax.ejb.CreateException; import javax.ejb.EJBException; import javax.ejb.FinderException; import javax.ejb.ObjectNotFoundException; public class IntegrationCopyBean extends AbstractTgDbBean implements javax.ejb.EntityBean, IntegrationCopyRemoteBusiness { private javax.ejb.EntityContext context; private int iscmid; private String isite, cnumber; private boolean dirty; private UserRemoteHome userHome; private ExpModelRemoteHome modelHome; private ProjectRemoteHome projectHome; private ChromosomeRemoteHome chromosomeHome; //ejb methods // <editor-fold> public void setEntityContext(javax.ejb.EntityContext aContext) { context = aContext; userHome = (UserRemoteHome)locator.getHome(ServiceLocator.Services.USER); modelHome = (ExpModelRemoteHome)locator.getHome(ServiceLocator.Services.EXPMODEL); projectHome = (ProjectRemoteHome)locator.getHome(ServiceLocator.Services.PROJECT); chromosomeHome = (ChromosomeRemoteHome)locator.getHome(ServiceLocator.Services.CHROMOSOME); } public void ejbActivate() { } public void ejbPassivate() { } public void ejbRemove() { makeConnection(); PreparedStatement ps = null; try { ps = conn.prepareStatement("delete from is_cm where iscmid=?"); ps.setInt(1, iscmid); ps.execute(); } catch (Exception e) { throw new EJBException("IntegrationCopyBean#ejbRemove: Unable to delete integration copy data set.\n"+e.getMessage()); } finally { releaseConnection(); } } public void unsetEntityContext() { context = null; } public void ejbLoad() { makeConnection(); Integer pk = (Integer)context.getPrimaryKey(); PreparedStatement ps = null; try { ps = conn.prepareStatement("select iscmid, isite, cnumber from is_cm where iscmid=?"); ps.setInt(1, pk.intValue()); ResultSet rs = ps.executeQuery(); if (rs.next()) { iscmid = rs.getInt("iscmid"); isite = rs.getString("isite"); cnumber = rs.getString("cnumber"); dirty = false; } else throw new EJBException("IntegrationCopyBean#ejbLoad: Error loading integration copy data set"); } catch (Exception e) { throw new EJBException("IntegrationCopyBean#ejbLoad: error loading integration copy data set. \n"+e.getMessage()); } finally { releaseConnection(); } } public void ejbStore() { if (dirty) { makeConnection(); PreparedStatement ps = null; try { ps = conn.prepareStatement("update is_cm set isite=?,cnumber=? where iscmid=?"); ps.setString(1, isite); ps.setString(2, cnumber); ps.setInt(3, iscmid); ps.execute(); } catch (Exception e) { throw new EJBException("IntegrationCopyBean#ejbStore: error storing integration copy data set. \n"+e.getMessage()); } finally { releaseConnection(); dirty = false; } } } // </editor-fold> //finder methods //<editor-fold> public Integer ejbFindByPrimaryKey(Integer key) throws FinderException { makeConnection(); PreparedStatement ps = null; ResultSet result = null; try { ps = conn.prepareStatement("select iscmid from is_cm where iscmid = ?"); ps.setInt(1,key.intValue()); result = ps.executeQuery(); if (!result.next()) { throw new ObjectNotFoundException("IntegrationCopyBean#ejbFindByPrimaryKey: Cannot find integration copy data set. No next in resultset"); } } catch (SQLException se) { throw new FinderException("IntegrationCopyBean#ejbFindByPrimaryKey: Cannot find integration copy data set. \n"+se.getMessage()); } finally { releaseConnection(); } return key; } public java.util.Collection ejbFindByModel(int eid) throws javax.ejb.FinderException { makeConnection(); Collection arr = new ArrayList(); PreparedStatement ps = null; ResultSet result = null; try { ps = conn.prepareStatement("select g.iscmid from is_cm g, is_cm_model_r r where g.iscmid=r.iscmid and r.eid = ?"); ps.setInt(1,eid); result = ps.executeQuery(); while (result.next()) { arr.add(new Integer(result.getInt("iscmid"))); } } catch (SQLException se) { throw new FinderException("IntegrationCopyBean#ejbFindByModel: Cannot find integration copy data set by model "+eid+" \n"+se.getMessage()); } finally { releaseConnection(); } return arr; } //</editor-fold> //setter+getter methods //<editor-fold> public int getIscnid() { return iscmid; } public String getIsite() { return isite; } public void setIsite(String isite) { this.isite = isite; dirty = true; } public String getCnumber() { return cnumber; } public void setCnumber(String cnumber) { this.cnumber = cnumber; dirty = true; } //</editor-fold> //create+postcreate methods //<editor-fold> public java.lang.Integer ejbCreate(int iscmid, java.lang.String isite, java.lang.String cnumber) throws javax.ejb.CreateException { makeConnection(); Integer pk = null; try { this.iscmid = iscmid; this.isite = isite; this.cnumber = cnumber; pk = new Integer(iscmid); PreparedStatement ps = conn.prepareStatement("insert into is_cm (iscmid,isite,cnumber) values (?,?,?)"); ps.setInt(1, iscmid); ps.setString(2, isite); ps.setString(3, cnumber); ps.execute(); dirty = false; } catch (Exception e) { e.printStackTrace(); throw new CreateException("IntegrationCopyBean#ejbCreate: Unable to create integration copy data set. \n"+e.getMessage()); } finally { releaseConnection(); } return pk; } public void ejbPostCreate(int iscmid, java.lang.String isite, java.lang.String cnumber) throws javax.ejb.CreateException {} //</editor-fold> }