package org.tgdb.model.availablegeneticbackgrounds;
import javax.ejb.*;
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.UserRemoteHome;
import org.tgdb.servicelocator.ServiceLocator;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import javax.ejb.CreateException;
import javax.ejb.EJBException;
import javax.ejb.FinderException;
import javax.ejb.ObjectNotFoundException;
public class AvailableGeneticBackgroundBean extends AbstractTgDbBean implements EntityBean, AvailableGeneticBackgroundRemoteBusiness {
private EntityContext context;
private int aid, pid;
private String avbackname;
private boolean dirty;
private UserRemoteHome userHome;
private ExpModelRemoteHome modelHome;
private ProjectRemoteHome projectHome;
//ejb infrastructure methods
// <editor-fold>
/**
* @see javax.ejb.EntityBean#setEntityContext(javax.ejb.EntityContext)
*/
public void setEntityContext(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);
}
/**
* @see javax.ejb.EntityBean#ejbActivate()
*/
public void ejbActivate() {
}
/**
* @see javax.ejb.EntityBean#ejbPassivate()
*/
public void ejbPassivate() {
}
/**
* @see javax.ejb.EntityBean#ejbRemove()
*/
public void ejbRemove() {
makeConnection();
PreparedStatement ps = null;
try {
ps = conn.prepareStatement("delete from available_genetic_back where aid=?");
ps.setInt(1, aid);
ps.execute();
} catch (Exception e) {
throw new EJBException("AvailableGeneticBackgroundBean#ejbRemove: Unable to delete Available Genetic Background.\n"+e.getMessage());
} finally {
releaseConnection();
}
}
/**
* @see javax.ejb.EntityBean#unsetEntityContext()
*/
public void unsetEntityContext() {
context = null;
}
/**
* @see javax.ejb.EntityBean#ejbLoad()
*/
public void ejbLoad() {
makeConnection();
Integer pk = (Integer)context.getPrimaryKey();
PreparedStatement ps = null;
try {
ps = conn.prepareStatement("select aid, avbackname, pid " +
"from available_genetic_back where aid=?");
ps.setInt(1, pk.intValue());
ResultSet rs = ps.executeQuery();
if (rs.next()) {
aid = rs.getInt("aid");
avbackname = rs.getString("avbackname");
pid = rs.getInt("pid");
dirty = false;
} else
throw new EJBException("AvailableGeneticBackgroundBean#ejbLoad: Error loading Available Genetic Background");
} catch (Exception e) {
throw new EJBException("AvailableGeneticBackgroundBean#ejbLoad: error loading Available Genetic Background. \n"+e.getMessage());
} finally {
releaseConnection();
}
}
/**
* @see javax.ejb.EntityBean#ejbStore()
*/
public void ejbStore() {
if (dirty)
{
makeConnection();
PreparedStatement ps = null;
try {
ps = conn.prepareStatement("update available_genetic_back set avbackname=? " +
"where aid=?");
ps.setString(1, avbackname);
ps.setInt(2, aid);
ps.execute();
} catch (Exception e) {
throw new EJBException("AvailableGeneticBackgroundBean#ejbStore: error storing Available Genetic Background. \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 aid from available_genetic_back where aid = ?");
ps.setInt(1,key.intValue());
result = ps.executeQuery();
if (!result.next()) {
throw new ObjectNotFoundException("AvailableGeneticBackgroundBean#ejbFindByPrimaryKey: Cannot find Available Genetic Background. No next in resultset");
}
} catch (SQLException se) {
throw new FinderException("AvailableGeneticBackgroundBean#ejbFindByPrimaryKey: Cannot find Available Genetic Background. \n"+se.getMessage());
} finally {
releaseConnection();
}
return key;
}
public Collection ejbFindByProject(int pid) throws javax.ejb.FinderException {
makeConnection();
Collection arr = new ArrayList();
PreparedStatement ps = null;
ResultSet result = null;
try {
ps = conn.prepareStatement("select aid from available_genetic_back where pid = ? order by avbackname");
ps.setInt(1,pid);
result = ps.executeQuery();
while (result.next()) {
arr.add(new Integer(result.getInt("aid")));
}
} catch (SQLException se) {
throw new FinderException("AvailableGeneticBackgroundBean#ejbFindByProject: Cannot find repositories by project "+pid+" \n"+se.getMessage());
} finally {
releaseConnection();
}
return arr;
}
//</editor-fold>
//set+get methods
//<editor-fold>
public int getAid() {
return aid;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
dirty = true;
}
public String getAvbackname() {
return avbackname;
}
public void setAvbackname(String avbackname) {
this.avbackname = avbackname;
dirty = true;
}
public ProjectRemote getProject() throws ApplicationException {
try
{
ProjectRemote prj = projectHome.findByPrimaryKey(new Integer(pid));
return prj;
}
catch (Exception e)
{
throw new ApplicationException("Could not get project");
}
}
//</editor-fold>
//create+postcreate methods
//<editor-fold>
public Integer ejbCreate(int aid, String avbackname, int pid, org.tgdb.project.project.ProjectRemote project) throws javax.ejb.CreateException {
makeConnection();
Integer pk = null;
try {
this.aid = aid;
this.avbackname = avbackname;
this.pid = project.getPid();
pk = new Integer(aid);
PreparedStatement ps = conn.prepareStatement("insert into available_genetic_back (aid, avbackname, pid) values (?,?,?)");
ps.setInt(1, aid);
ps.setString(2, avbackname);
ps.setInt(3, pid);
ps.execute();
dirty = false;
} catch (Exception e) {
e.printStackTrace();
throw new CreateException("AvailableGeneticBackgroundBean#ejbCreate: Unable to create Available Genetic Background. \n"+e.getMessage());
} finally {
releaseConnection();
}
return pk;
}
public void ejbPostCreate(int aid, String avbackname, int pid, org.tgdb.project.project.ProjectRemote project) throws javax.ejb.CreateException {
//TODO implement ejbPostCreate
}
//</editor-fold>
}