ProcessPaymentBeanpublic class ProcessPaymentBean extends Object implements javax.ejb.SessionBean
Fields Summary |
---|
public static final String | CASH | public static final String | CREDIT | public static final String | CHECK | public javax.ejb.SessionContext | context |
Methods Summary |
---|
public boolean | byCash(CustomerRemote customer, double amount)
return process(getCustomerID(customer),amount,
CASH,null,-1,null,null);
| public boolean | byCheck(CustomerRemote customer, CheckDO check, double amount)
int minCheckNumber = getMinCheckNumber();
if (check.checkNumber > minCheckNumber) {
return process(getCustomerID(customer), amount, CHECK,
check.checkBarCode,check.checkNumber, null,null);
}
else {
throw new PaymentException(
"Check number is too low. Must be at least "+
minCheckNumber);
}
| public boolean | byCredit(CustomerRemote customer, CreditCardDO card, double amount)
if (card.expiration.before(new java.util.Date())) {
throw new PaymentException("Expiration date has"+
" passed");
}
else {
return process(getCustomerID(customer), amount,
CREDIT, null,-1, card.number,
new java.sql.Date(card.expiration.getTime()));
}
| public void | ejbActivate()
| public void | ejbCreate()
| public void | ejbPassivate()
| public void | ejbRemove()
| private java.sql.Connection | getConnection()
try {
InitialContext jndiCntx = new InitialContext();
DataSource ds = (DataSource)
jndiCntx.lookup("java:comp/env/jdbc/titanDB");
return ds.getConnection();
} catch(NamingException ne){throw new EJBException(ne);}
| private java.lang.Integer | getCustomerID(CustomerRemote customer)
try {
return (Integer)customer.getPrimaryKey();
} catch(RemoteException re) {
throw new EJBException(re);
}
| private int | getMinCheckNumber()
try {
InitialContext jndiCntx = new InitialContext( );
Integer value = (Integer)
jndiCntx.lookup("java:comp/env/minCheckNumber");
return value.intValue();
} catch(NamingException ne){throw new EJBException(ne);}
| private boolean | process(java.lang.Integer customerID, double amount, java.lang.String type, java.lang.String checkBarCode, int checkNumber, java.lang.String creditNumber, java.sql.Date creditExpDate)
Connection con = null;
PreparedStatement ps = null;
try {
con = getConnection();
ps = con.prepareStatement
("INSERT INTO payment (customer_id, amount, type,"+
"check_bar_code,check_number,credit_number,"+
"credit_exp_date) VALUES (?,?,?,?,?,?,?)");
ps.setInt(1,customerID.intValue());
ps.setDouble(2,amount);
ps.setString(3,type);
ps.setString(4,checkBarCode);
ps.setInt(5,checkNumber);
ps.setString(6,creditNumber);
ps.setDate(7,creditExpDate);
int retVal = ps.executeUpdate();
if (retVal!=1) {
System.out.println("Exception caught in process() update returnval != 1");
throw new EJBException("Payment insert failed");
}
return true;
} catch(SQLException sql) {
System.out.println("Exception caught in process(): " + sql);
throw new EJBException(sql);
} finally {
try {
if (ps != null) ps.close();
if (con!= null) con.close();
} catch(SQLException se){se.printStackTrace();}
}
| public void | setSessionContext(javax.ejb.SessionContext ctx)
context = ctx;
|
|