agendaservice.java
来自「Java编写个人日程管理工具, 具有添加编辑日程和自动适应功能, 程序包含完整的」· Java 代码 · 共 220 行
JAVA
220 行
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package logical;import java.util.Enumeration;import java.util.Date;import java.util.ArrayList;import exception.TimeOverlapException;import exception.MeetingException;import exception.UserException;import exception.WrongTimeException;/** * 这个类是管理agenda的所有操作和异常,同时维护用户和会议管理表 * @author zouhao */public class AgendaService { MeetingManager meetingmanager; UserManager usermanager; /** * AgendaService构造函数 */ AgendaService() { meetingmanager=new MeetingManager(); usermanager=new UserManager(); } private static AgendaService instance = null; /** * 此方法是为了实现AgendaService的Singleton * @return */ public static synchronized AgendaService getInstance() { if (instance==null) { instance=new AgendaService(); } return instance; } /** * 这个方法用于管理添加操作,判断用户,会议的合法性,并控制下层进行具体操作 * @param username 用户名 * @param password 用户密码 * @param label 会议标签 * @param callee 会议参与者 * @param starttime 会议开始时间 * @param endtime 会议结束时间 */ public boolean Add(String username,String password,String label,String callee,Date starttime,Date endtime) { boolean success = true; try{ if(usermanager.GetUserByName(username)!=null&&usermanager.GetUserByName(callee)!=null) { if(usermanager.ChecUser(username, password)) { if(!meetingmanager.CheckMeeting(label)) { TimeInterval tempt = new TimeInterval(starttime,endtime); Enumeration en = meetingmanager.meetinglist.elements(); while (en.hasMoreElements()) { Meeting temp = (Meeting)en.nextElement(); if(temp.caller.username.equalsIgnoreCase(username)||temp.callee.username.equalsIgnoreCase(username)) { if(temp.time.IsOverlaped(tempt)) { success = false; throw new TimeOverlapException(); } } if(temp.caller.username.equalsIgnoreCase(callee)||temp.callee.username.equalsIgnoreCase(callee)) { if(temp.time.IsOverlaped(tempt)) { success = false; throw new TimeOverlapException(); } } } if(starttime.before(endtime)) meetingmanager.AddAgenda(label, starttime, endtime,usermanager.GetUserByName(username),usermanager.GetUserByName(callee)); else {throw new WrongTimeException();} } else {success = false;throw new MeetingException("already exists");} } else {success = false;throw new UserException("wrong password");} } else {success = false;throw new UserException("not exists");} } catch (Exception e){} return success; } /** * 这个方法用于管理用户注册操作,判断用户的合法性,并控制下层进行具体操作 * @param username 用户名 * @param password 用户密码 */ public boolean Register(String username,String password) { boolean success = true; try{ if(usermanager.GetUserByName(username)==null) { if(!usermanager.IsTooShort(password)) { usermanager.Register(username, password); } else {success = false;throw new UserException("short password");} } else {success = false;throw new UserException("is exists");} } catch(Exception e){} return success; } /** * 这个方法用于管理删除操作,判断用户的合法性,并控制下层进行具体操作 * @param username 用户名 * @param password 用户密码 * @param label 会议标签 */ public boolean Delete(String username,String password,String label) { boolean success = true; try{ if(usermanager.GetUserByName(username)!=null) { if(usermanager.ChecUser(username, password)) { if(meetingmanager.CheckMeeting(label)) { if(meetingmanager.GetUserByName(label).caller.username.equalsIgnoreCase(username)) meetingmanager.DeleteAgenda(label); else {success = false;throw new MeetingException("not yours");} } else {success = false;throw new MeetingException("not exists");} } else {success = false;throw new UserException("wrong password");} } else {throw new UserException("not exists");} } catch(Exception e){} return success; } /** * 这个方法用于清除用户所创建的所有会议 * @param username 用户名 * @param password 用户密码 */ public boolean Clear(String username,String password) { boolean success = true; try{ if(usermanager.GetUserByName(username)!=null) { if(usermanager.ChecUser(username, password)) { Enumeration en = meetingmanager.meetinglist.elements(); while (en.hasMoreElements()) { Meeting temp = (Meeting)en.nextElement(); if(temp.caller.username.equalsIgnoreCase(username)) { meetingmanager.DeleteAgenda(temp.label); } } }else {success = false;throw new UserException("wrong password");} }else {success = false;throw new UserException("not exists");} } catch(Exception e){} return success; } /** * 这个方法用于提供查询功能,查询输入的时间段的所有会议 * @param username 用户名 * @param password 用户密码 * @param starttime 会议开始时间 * @param endtime 会议结束时间 */ public ArrayList Query(String username,String password,Date starttime,Date endtime) { try{ ArrayList<Meeting> templist = new ArrayList(); if(usermanager.GetUserByName(username)!=null) { if(usermanager.ChecUser(username, password)) { Enumeration en = meetingmanager.meetinglist.elements(); while (en.hasMoreElements()) { Meeting temp = (Meeting)en.nextElement(); if(temp.time.IsContian(starttime, endtime)) { templist.add(temp); } } return templist; }else {throw new UserException("wrong password");} }else {throw new UserException("not exists");} } catch (Exception e){} return null; } /** * 这方法用于在屏幕显示对象信息 * @return 返回字符串 */ public String ToString(String type) { if(type.equals("Meeting")) return meetingmanager.ToString(); else if(type.equals("User")) return usermanager.ToString(); else if(type.equals("")) return ""; else return "Fail to ToString"; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?