RemoteDictionaryImpl.java



/** RemoteDictionary の実装のクラス */
import java.util.*;
import java.rmi.*;
import java.rmi.server.*;
public class RemoteDictionaryImpl extends UnicastRemoteObject
                                  implements RemoteDictionary {
  /** 辞書のデータベース */
    private Hashtable dictionary;

  /** コンストラクタ */
    public RemoteDictionaryImpl() throws RemoteException {
        super();
        dictionary = new Hashtable();
        dictionary.put( "maruyama",
          "丸山不二夫\n教授\n学長\n秋田県出身" );
        dictionary.put( "tatsuo",
          "植田龍男\n教授\n経営情報学科長\n静岡県出身" );
        dictionary.put( "himemiya",
          "姫宮利融\n教授\n教務部長\n愛媛県出身" );
        dictionary.put( "fujiki",
          "藤木文彦\n教授\n学生部長\nアンドロメダ出身" );
        dictionary.put( "sakamoto",
          "坂本寛\n教授\nインターネット管理者\n広島県出身" );
        dictionary.put( "kanayama",
          "金山典世\n教授\nネットワーク管理者\n関西出身" );
        dictionary.put( "momma",
          "門間ジョージ\n助教授\nバレー部顧問\n岩見沢市出身" );
        dictionary.put( "saga",
          "佐賀孝博\n助教授\nOB会事務局長\n枝幸町出身" );
        dictionary.put( "tetuo",
          "及川鉄夫\n副手\n化石研究家\n登別市出身" );
    }

  /** クライアントに返答を返すメソッド */
    public Object answer( Object key ) throws RemoteException {

        return dictionary.get( key.toString() );
    }

  /** クライアントにキーの一覧を返すメソッド */
    public Object[] keys() throws RemoteException {

        Enumeration enum = dictionary.keys();
        Vector vector = new Vector();
        while( enum.hasMoreElements() )
            vector.addElement( enum.nextElement() );
        Object[] keys = new Object[ vector.size() ];
        for( int i=0; i<vector.size(); i++ )
            keys[i] = vector.elementAt(i);

        return keys;
    }
}