// 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.Hashtable;
import org.omg.PortableServer.*;
import org.omg.CosNaming.*;
public class ManagerImpl extends ManagerPOA
{
//Using HashTable to store the accounts.
private Hashtable accountsList;
private Account bankAccount;
private ORB orb;
//Need this for createing interface: Account;
public ManagerImpl(ORB orb)
{
this.orb = orb;
};
//This is the method to return a array of all accounts.
public String[] findAllAccounts() {
//YOU NEED TO CONVERT THE HASHTABLE TO A STRING ARRAY!!!!!!!!!!!
//JUST CREATING AN ARRAY WITH SOME VALUES!!!!!!!1111
String[] a = new String[2];
a[0] = "String 1";
a[1] = "String 2";
//CALLING THE SIZE METHOD OF YOUR HASHTABLE NUMBER WILL GET BIGGER THE MORE ACCOUNTS THAT ARE ADDED
System.out.println("Size" + accountsList.size());
return a;
}
//This is the method to create a new account.
public Account createAccount(String name, int balance) {
AccountImpl newAccount = new AccountImpl(name,balance);
Account accountObj = newAccount._this(orb);
// Creat a hashtable to add the new account
try {
//ADD TO HASHTABLE
accountsList.put(name,accountObj);
}
catch (Exception e) {
System.out.println("Error while looking up account:");
//e.printStackTrace();
}
//obj.setAccountName(name);
//obj.setBalance(balance);
return accountObj;
}
//Retrun a specific account object;
public Account findAccount(String name){
//AccountImpl newAccount = new AccountImpl(name,0);
//Account bankAccount = newAccount._this(orb);
bankAccount = (Account) accountsList.get(name);
return bankAccount;
}
}