?? agendaclient.java
字號:
import java.io.*;
import java.net.MalformedURLException;
import java.rmi.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import commonResource.Meeting;
import agendaClient.*;
import agendaServer.agendaManagerInterface;
import agendaServer.userManagerInterface;
/**
* 客戶端程序
* @author Crise.Lee
* @version 1.0
*/
public class AgendaClient {
private static Boolean success;
public static final String format="yyyy-MM-dd HH:mm";
private static ArrayList<Meeting> meetinglist=null;
public static void main(String[] args)
{
AnalyzeString analyze=new AnalyzeString();
Object[] command=null;
System.out.println("******************************************************************************");
System.out.println("******************************************************************************");
System.out.println(" 歡迎使用分布式議程服務(wù)系統(tǒng) ");
// System.out.println("****************************************************************************");
printCommand.printCommandFormat();
try {
BufferedReader read=new BufferedReader(new FileReader("clearMeeting"));
String readline=read.readLine();
while(readline!=null)
{
try {
command=analyze.AnalyzeCommand(readline);
// for(int i=0;i<command.length;i++)
// {
///** */ System.out.println("command["+i+"]="+command[i]);
// }
handle(command);
}catch (CommandFatmatException e) {
System.err.println(e.getMessage());
try {
Thread.sleep(100);
} catch (InterruptedException e1) {
//e1.printStackTrace();
}
printCommand.printCommandFormat();
//e.printStackTrace();
}catch (Exception e) {
System.err.println(e.getMessage());
try {
Thread.sleep(100);
} catch (InterruptedException e1) {
//e1.printStackTrace();
}
//e.printStackTrace();
}finally
{
// try {
// Thread.sleep(1000*1);
// } catch (InterruptedException e) {
// //e.printStackTrace();
// }
System.out.println();
System.out.println("******************************************************************************");
}
readline=read.readLine();
}
} catch (FileNotFoundException e) {
System.err.println(e.getMessage());
System.err.println("錯誤:沒有發(fā)現(xiàn)文件");
//e.printStackTrace();
} catch (IOException e) {
System.err.println(e.getMessage());
System.err.println("錯誤:輸入輸出流發(fā)生錯誤");
//e.printStackTrace();
}
}
/**
* 處理放回的命令參數(shù),并且調(diào)用遠程的方法實現(xiàn)用戶想要的功能
* @param command
* @return
* @throws RemoteException
* @throws MalformedURLException
* @throws NotBoundException
*/
public static Boolean handle(Object[] command) throws RemoteException, MalformedURLException, NotBoundException
{
Iterator<Meeting> iterator=null;
Meeting meeting=null;
int commType;
//得到命令的類型
commType=(Integer)command[0];
int portNum;
String hostName=null;
String registryURL=null,agendaURL=null;
//get the hostName and portNum
hostName=(String)command[1];
portNum=(Integer)command[2];
registryURL="rmi://"+hostName+":"+portNum+"/user";
agendaURL="rmi://"+hostName+":"+portNum+"/agenda";
userManagerInterface users=(userManagerInterface)Naming.lookup(registryURL);
agendaManagerInterface agendas=(agendaManagerInterface)Naming.lookup(agendaURL);
switch(commType)
{
case 1:
success=false;
success=users.register((String)command[3], (String)command[4]);
if(success)
System.out.println("操作成功");
else
System.out.println("操作失敗");
break;
case 2:
success=false;
success=agendas.add((String)command[3], (String)command[4], (String)command[5],
(Date)command[6], (Date)command[7], (String)command[8]);
if(success)
System.out.println("操作成功");
else
System.out.println("操作失敗");
break;
case 3:
meetinglist=null;
meetinglist=agendas.query((String)command[3], (String)command[4],(Date)command[5], (Date)command[6]);
if(meetinglist==null)
System.out.println(" 會議查詢錯誤,沒有從服務(wù)器返回結(jié)果。。。");
else if(meetinglist.size()==0)
System.out.println(" 在輸入的查詢時間內(nèi),您沒有會議。。。");
else{
iterator=meetinglist.iterator();
int i=0;
while(iterator.hasNext())
{
i++;
meeting=iterator.next();
System.out.println("第 "+i+" 個會議 "+"會議名:"+meeting.getTitle());
System.out.println(" 發(fā)起人:"+meeting.getUserName());
System.out.println(" 邀請人:"+meeting.gerOtherName());
System.out.println(" 起始時間:"+dataToStr(meeting.getStartTime()));
System.out.println(" 結(jié)束時間:"+dataToStr(meeting.getEndTime()));
}
}
break;
case 4:
success=false;
success=agendas.delete((String)command[3], (String)command[4],(String)command[5]);
if(success)
System.out.println("操作成功");
else
System.out.println("操作失敗");
break;
case 5:
success=false;
success=agendas.clear((String)command[3], (String)command[4]);
if(success)
System.out.println("操作成功");
else
System.out.println("操作失敗");
break;
default:
System.out.println("參數(shù)錯誤");
}
return success;
}
/**
* 轉(zhuǎn)換日期的格式,使其按照設(shè)置的格式打印出來
* @param date
* @return
*/
public static String dataToStr(Date date)
{
String dateStr=null;
SimpleDateFormat dateTimeFormat = new SimpleDateFormat(format);
dateStr = dateTimeFormat.format(date);
return dateStr;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -