// EDS CORBA 2.6 Xuepeng Deng 28/02/07 // JDK1.4.2 with JacORB 2.2 // bank\ManagerImpl.java // servant implementation package bank; import java.io.*; import org.omg.CORBA.ORB; import java.lang.Math; import javax.naming.*; import java.rmi.*; import java.util.Vector; import java.util.Hashtable; import org.omg.PortableServer.*; import org.omg.CosNaming.*; public class ManagerImpl extends ManagerPOA { //This is from the variable mapping from bank.idl(typedef sequence AccountList;); private String[] accountList; private Account bankAccount; private ORB orb; private int credit; //private Dictionary _accountsTable = new Hashtable (); //Need this for createing interface: Account; public ManagerImpl(ORB orb) { this.orb = orb; //When server start, automatic create 3 account for example; //createAccount("Mike", 100); }; //This is the method to return a array of all accounts. public String[] findAllAccounts() { return accountList; } //This is the method to create a new account. public Account createAccount(String name, int balance) { AccountImpl newAccount = new AccountImpl(name,balance); Account obj = newAccount._this(orb); // Creat a hashtable to store the info, also in BankClient.java to look up in the context for the table and the name try { //Vector accountVector = new Vector(); //accountVector.add(newAccount); Hashtable test = new Hashtable(); //ORB orb = ORB.init(); //org.omg.CORBA.Object o = orb.resolve_initial_references("NameService"); //NamingContextExt rootContext = NamingContextExtHelper.narrow( o ); // get the root naming context // bind the Object Reference in Naming //NameComponent path[] = rootContext.to_name( name ); //rootContext.rebind(path, test); //rootContext. //Context ctx = new InitialContext(test); // Register our Account with the CORBA naming service //ctx.rebind("Mike", newAccount); } catch (Exception e) { System.out.println("Error while looking up account:"); //e.printStackTrace(); } //obj.setAccountName(name); //obj.setBalance(balance); return obj; } //Retrun a specific account object; public Account findAccount(String name){ //Method here //orb.getAccountName(); return bankAccount; } }