/* * * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. * * This software is the proprietary information of Sun Microsystems, Inc. * Use is subject to license terms. * */ import java.util.*; import java.io.*; import javax.naming.Context; import javax.naming.InitialContext; import javax.rmi.PortableRemoteObject; public class AccountBean { private String action; private String id; private String firstName; private String lastName; private double balance; private double amount; private AccountHome accountHome; private Account account; public AccountBean() { try { Context ic = new InitialContext(); java.lang.Object objref = ic.lookup("java:comp/env/ejb/Account"); accountHome = (AccountHome) PortableRemoteObject.narrow(objref, AccountHome.class); System.out.println("obtained accountHome object"); } catch (Exception re) { System.err.println ("Couldn't locate Account Home"); re.printStackTrace(); } reset(); } public String processRequest() { String message = ""; System.out.println("Process request called "); System.out.println(this); try { if( action.equals("create") ) { account = accountHome.create(id, firstName, lastName, balance); message = "Created account '" + id + "'"; } else if( action.equals("debit") ) { account = accountHome.findByPrimaryKey(id); account.debit(amount); loadFromEJB(); message = "Debited account '" + id + "' by $" + amount; } else if( action.equals("credit") ) { account = accountHome.findByPrimaryKey(id); account.credit(amount); loadFromEJB(); message = "Credited account '" + id + "' by $" + amount; } else if( action.equals("find") ) { account = accountHome.findByPrimaryKey(id); loadFromEJB(); message = "Found account '" + id; } } // try catch (Exception e) { message = e.toString(); } return message; } public String getAction() { System.out.println("Getting action"); return action; } public void setAction(String a) { System.out.println("Setting action : " + a); action = a; } public String getId() { System.out.println("Getting id"); return id; } public void setId(String i) { System.out.println("Setting id : " + i); id = i; } public String getFirstName() { System.out.println("Getting firstName"); return firstName; } public void setFirstName(String f) { System.out.println("Setting first name : " + f); firstName = f; } public String getLastName() { System.out.println("Getting lastName"); return lastName; } public void setLastName(String l) { System.out.println("Setting last name : " + l); lastName = l; } public double getBalance() { System.out.println("Getting balance"); return balance; } public void setBalance(double b) { System.out.println("Setting balance : " + b); balance = b; } public double getAmount() { System.out.println("Getting amount"); return amount; } public void setAmount(double a) { System.out.println("Setting amount : " + a); amount = a; } private void reset() { System.out.println("Calling reset()"); final String emptyString = ""; final double zero = 0.0; setAction(emptyString); setId(emptyString); setFirstName(emptyString); setLastName(emptyString); setBalance(zero); setAmount(zero); } private void loadFromEJB() { System.out.println("Calling loadFromEJB()"); try { setFirstName(account.getFirstName()); setLastName(account.getLastName()); setBalance(account.getBalance()); } catch (Exception re) { System.err.println ("Failed to load AccountBean from AccountEJB."); re.printStackTrace(); } } public String toString() { StringBuffer output = new StringBuffer(); output.append("Action : " + action); output.append( " Id : " + id); output.append( " first name : " + firstName); output.append( " last name : " + lastName); output.append( " balance : " + balance); output.append( " amount : " + amount); return output.toString(); } }