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

📄 rmiclass.java

📁 Exercise 4 of SSD 8 -- JAVA 一个基于RMI远程调用方法的事物管理系统。提交的时候JAVADOC忘写清楚了
💻 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 + -