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

📄 rmiimplement.java

📁 一个rmi程序例子
💻 JAVA
字号:
import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;
import java.util.*;

/*
 * Created on 2006-6-5
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 * @author lizhao
 * 
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
public class RMIImplement extends UnicastRemoteObject implements RMIInterface {

	private Vector users;

	public RMIImplement() throws RemoteException {

		users = new Vector();
	}

	/*
	 * *register a new user.
	 */
	public String register(String name, String passWord) throws RemoteException {

		String str = "";
		int i = 0;
		for (; i < users.size(); i++) {

			User currentUser = (User) users.get(i);
			if (currentUser.getUserName().equals(name))
				break;
		}
		if (i != users.size()) {

			str = "The " + name + " has been used!!!!!";
			return str;
		}
		User newUser = new User(name, passWord);
		users.add(newUser);
		str = "You have registered succesed!!!!!";
		return str;
	}

	/*
	 * *add a meeting.
	 */
	public String addMeeting(String hostName, String passWord,
			String guestName, Date begin, Date over, String title)
			throws RemoteException {

		String str = "";
		int i = 0;
		User sendUser = findUser(hostName, passWord);
		if (sendUser == null) {

			str = "The hostName or passWord Error!!!!";
			return str;
		}

		User acceptUser = getUser(guestName);
		if (acceptUser == null) {

			str = "The guestName user do not exist!!!!";
			return str;
		}

		for (i = 0; i < sendUser.getNumberOfMeetings(); i++) {

			Meeting currentMeeting = sendUser.getMeeting(i);
			if (!(currentMeeting.getBegin().after(over) || currentMeeting
					.getOver().before(begin)))
				break;
		}

		if (i < sendUser.getNumberOfMeetings()) {

			str = "The " + hostName + "do not add meeting!!!!";
			return str;
		}

		for (i = 0; i < acceptUser.getNumberOfMeetings(); i++) {

			Meeting currentMeeting = acceptUser.getMeeting(i);
			if (!(currentMeeting.getBegin().after(over) || currentMeeting
					.getOver().before(begin)))
				break;
		}

		if (i < acceptUser.getNumberOfMeetings()) {

			str = "The " + guestName + "do not add meeting!!!!";
			return str;
		}

		if (begin.after(over)) {

			str = "The start time is after begin!!!! Please input again!!!!!";
			return str;
		}

		Meeting newMeeting = new Meeting(begin, over, guestName, title);
		sendUser.addMeeting(newMeeting);
		newMeeting = new Meeting(begin, over, hostName, title);
		acceptUser.addMeeting(newMeeting);
		str = "The meeting bettween " + hostName + " and " + guestName
				+ " has been added succesed!!!!!";

		return str;
	}

	/*
	 * *show all the meetings of the user whose name is name and password is
	 * password.
	 */
	public String queryMeeting(String name, String passWord, Date begin,
			Date over) throws RemoteException {
		String str = "";
		int i = 0;

		User newUser = findUser(name, passWord);
		if (newUser == null) {

			str = "The userName or passWord Error!!!!";
			return str;
		}

		if (newUser.getNumberOfMeetings() == 0) {

			str = "The user " + name + " has no meetings!!!!!";
			return str;
		}

		if (begin.after(over)) {

			str = "The start time is after begin!!!! Please input again!!!!!";
			return str;
		}

		for (i = 0; i < newUser.getNumberOfMeetings(); i++) {
			Meeting newMeeting = newUser.getMeeting(i);
			if (newMeeting.getBegin().after(begin)
					&& newMeeting.getOver().before(over)) {

				str += "From " + newMeeting.getBegin().toLocaleString()
						+ " to " + newMeeting.getOver().toLocaleString()
						+ "there is a meeting with "
						+ newMeeting.getAcceptUser() + "\r\n";
			}
		}

		if (str == "") {

			str = "There is no meeting betteen " + begin.toLocaleString()
					+ " and " + over.toLocaleString() + "for user " + name;
			return str;
		}
		String newstr = "The meetings list is as following " + "\r\n";
		newstr += str;

		return newstr;
	}

	/*
	 * *remove the meeting that title is title of the user whose name is name
	 * and password is password.
	 */
	public String deleteMeeting(String name, String passWord, String title)
			throws RemoteException {

		String str = "";
		int i = 0;

		User newUser = findUser(name, passWord);
		if (newUser == null) {

			str = "The userName or passWord Error!!!!";
			return str;
		}

		for (i = 0; i < newUser.getNumberOfMeetings(); i++) {

			Meeting newMeeting = (Meeting) newUser.getMeeting(i);
			if (newMeeting.getTitle().equals(title)) {

				newUser.removeMeeting(newMeeting);
				str = "You have deleted the meeting succesed!!!!!!!!!";
				return str;
			}
		}

		str = "The meeting you want to delete do not exist!!!!!!!";
		return str;
	}

	/*
	 * *remove all the meetings of the user whose name is name and password is
	 * password.
	 */
	public String clearMeeting(String name, String passWord)
			throws RemoteException {

		String str = "";
		int i = 0;

		User newUser = findUser(name, passWord);
		if (newUser == null) {

			str = "The userName or passWord Error!!!!";
			return str;
		}

		if (newUser.getNumberOfMeetings() == 0) {

			str = "There is no meeting for user " + name;
			return str;
		}

		for (i = 0; i < newUser.getNumberOfMeetings(); i++) {

			Meeting newMeeting = (Meeting) newUser.getMeeting(i);
			newUser.removeMeeting(newMeeting);

		}
		str = "You have deleted the all meetings succesed!!!!!!!!!";
		return str;
	}

	public User getUser(String name) {

		for (int i = 0; i < users.size(); i++) {
			User newUser = (User) users.get(i);
			if (newUser.getUserName().equals(name))
				return newUser;
		}
		return null;
	}

	public User findUser(String name, String password) {

		for (int i = 0; i < users.size(); i++) {

			User newUser = (User) users.get(i);
			if (newUser.getUserName().equals(name)
					&& newUser.getPassword().equals(password))
				return newUser;
		}

		return null;
	}
}

⌨️ 快捷键说明

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