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 + -
显示快捷键?