⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rmiclass.java.txt

📁 Icarnegie university SSD8电子书和全部练习答案
💻 TXT
字号:
www.pudn.com > Exercise4.rar > RMIClass.java


import java.io.*; 
import java.util.*; 
import java.rmi.*; 
import java.rmi.server.*; 

public class RMIClass extends UnicastRemoteObject implements Serializable, 
RMIInterface { 

private static Hashtable users; 

private static Vector<Meeting> meetings; 

private int counter = 0; 

private int deleted = 0; 

public RMIClass() throws RemoteException { 
users = new Hashtable(); 
meetings = new Vector<Meeting>(); 
} 

public boolean login(String username, String password) 
throws RemoteException { 

if (!users.containsKey(username)) { 
return false; 
} 
String p = (String)users.get(username); 
if (p.equals(password)) 
return true; 
return false; 
} 

public boolean register(String username, String password) 
throws RemoteException { 

if (users.containsKey(username)) 
return false; 
if (password == null) 
return false; 

users.put(username, password); 
return true; 
} 

public boolean add(String username, String password, String otherusername, 
String title, Date start, Date end) throws RemoteException { 

if (!login(username, password)) 
return false; 
if (start.after(end)) 
return false; 

Meeting m; 
String[] u = new String[2]; 
Date s; 
Date e; 

for (Iterator it = meetings.iterator(); it.hasNext();) { 
m = (Meeting) it.next(); 
u = m.getUser(); 
if (u[0].equals(username) || u[1].equals(username) 
|| u[0].equals(otherusername) || u[1].equals(otherusername)) { 
s = m.getStart(); 
e = m.getEnd(); 
if (!(start.after(e) || end.before(s))) 
return false; 
} 
} 

counter++; 
u[0] = username; 
u[1] = otherusername; 
meetings.add(new Meeting(counter, u, title, start, end)); 

return true; 
} 

public boolean delete(String username, String password, int id) 
throws RemoteException { 

if (!login(username, password)) 
return false; 

Meeting m; 
int i; 
String[] u; 

for (int j = 0; j < meetings.size(); j++) { 
m = meetings.get(j); 
i = m.getId(); 
u = m.getUser(); 
if (i == id &amt;&amt; u[0].equals(username) || u[1].equals(username)) { 
meetings.remove(j); 
j--; 
deleted++; 
return true; 
} 
} 

return false; 
} 

public boolean clear(String username, String password) 
throws RemoteException { 

if (!login(username, password)) 
return false; 

Meeting m; 
String[] u; 

for (int i = 0; i < meetings.size(); i++) { 
m = meetings.get(i); 
u = m.getUser(); 
if (u[0].equals(username) || u[1].equals(username)) { 
meetings.remove(i); 
i--; 
deleted++; 
} 
} 

return true; 
} 

public Vector<Meeting> query(String username, String password, Date start, 
Date end) throws RemoteException { 

if (!login(username, password)) 
return null; 
if (start.after(end)) 
return null; 

Meeting m; 
String[] u = new String[2]; 
Date s; 
Date e; 
Vector<Meeting> v = new Vector<Meeting>(); 

for (Iterator it = meetings.iterator(); it.hasNext();) { 
m = (Meeting) it.next(); 
u = m.getUser(); 
if (u[0].equals(username) || u[1].equals(username)) { 
s = m.getStart(); 
e = m.getEnd(); 
if (!(s.after(end) || e.before(start))) 
v.add(m); 
} 
} 

return v; 
} 
} 







⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -