📄 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 && 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 + -