📄 administrator.java
字号:
/*
* @(#)Administrator.java 1.0 05/10/10
*
* Copyright 2005 HUST Hotel, Inc. All rights reserved.
*/
package net.husthotel.beans;
import java.sql.SQLException;
import java.util.ArrayList;
//import javax.faces.model.DataModel;
//import javax.faces.model.ArrayDataModel;
import net.husthotel.datebase.AdminDAO;
import net.husthotel.datebase.NoRoomAvailableException;
/**
* 该类代表管理员,管理房间信息.
* @author icerain
* @version 1.0, 05/10/10
*
*/
public class Administrator extends BasicManager {
//private ArrayList<Order> orderList = new ArrayList<Order>();
private ArrayList<Room> roomList = new ArrayList<Room>();
private ArrayList<Room> queryRoomList = new ArrayList<Room> ();
//private ArrayDataModel roomDataModel = null;
private boolean markedForEditeQuery = false; //标志是否查询,为JSF页面显示
private boolean markedForDeleteQuery = false;// ..提供信息
private boolean markedForEdite = false; //标志是否编辑,为JSF页面显示
private boolean markedForDelete = false; // ..提供信息
private boolean roomNumQuery = false; //标志查询的种类
private boolean roomTypeQuery = false; //..
private boolean roomStateQuery = false;
private boolean canQueryMark = false;
private String roomNum = null;
private String roomType = null;
private String roomState = null;
public Administrator() {
super();
//roomDataModel = new ArrayDataModel();
}
@Override
public String loginAction() {
//添加调用DAO代码
try {
if(new AdminDAO().login(getName(),getPassword())) {
roomList = new AdminDAO().queryRoomInfo();
return "aLoginSuc";
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "loginFail";
}
return "loginFail";
}
/**
* 管理员在操作返回时候,更新数据.
* @return 用于JSF 导航的一个字符串
*/
public String returnAction() {
// 添加调用DAO代码
try {
roomList = new AdminDAO().queryRoomInfo();
return "amain";
} catch (SQLException e) {
e.printStackTrace();
}
return "amain";
}
@Override
public String logoutAction() {
//添加调用DAO代码
return "logout";
}
/**
* 添加房间.
* @return a string 用于JSF导航.添加成功返回"addRoomSuc" or 返回"addRoomFail".
*/
public String addRoomAction(Room r) {
//Add DAO code 调用AdminDAO.addRoom(room):boolean
try {
if(new AdminDAO().addRoom(r)) {
return "addRoomSuc";
}
return "addRoomFail";
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoRoomAvailableException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "addRoomFail";
}
/**
* 删除房间.
* @return true,如果删除房间成功;or false.
*/
public boolean deleteRoom(String roomNum) {
//Add DAO code 调用AdminDAO.deleteRoom(roomNum):boolean
try {
if(new AdminDAO().deleteRoom(roomNum)){
return true;
}
return false;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoRoomAvailableException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
/**
* 修改房间信息.
* @return a string 用于JSF导航. 修改成功返回"modifyRoomInfoSuccess" or 返回"modifyRoomInfoFail".
*/
protected String modifyRoomInfo(Room r) {
//Add DAO code 调用AdminDAO.modifyRoomInfo(newRoom...):boolean
try {
if(new AdminDAO().modifyRoomInfo(r)) {
return "modifyRoomInfoSuccess";
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "modifyRoomInfoFail";
}
/**
* 修改房间信息.
* @return a string 用于JSF导航. 修改成功返回"modifyRoomInfoSuccess" or 返回"modifyRoomInfoFail".
*/
public String modifyRoomInfoAction() {
for(Room r: queryRoomList) {
if(r.isEditable()) {
if( "modifyRoomInfoFail".equals( modifyRoomInfo(r) ) )
return "aOperateFail";
}
}
return "aOperateSuc";
}
/**
* 查询所有房间
* @return a string "queryRoomInfoSuccess" or "queryRoomInfoFail"用于JSF导航.
*/
public String queryRoomInfoAction() {
//Add DAO code 调用AdminDAO.queryRoomInfo(roomNum):Room(or ArrayList<Room>)
//如果成功返回"queryRoomInfoSuccess"(并在页面中显示房间信息)
//or返回"queryRoomInfoFail"
try {
roomList = new AdminDAO().queryRoomInfo();
return "queryRoomInfoSuccess";
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "queryRoomInfoFail";
}
/**
* 根据条件查询房间
* @return a string "queryRoomFail" or "null"用于JSF导航.
*/
public String queryRoomByConditionAction() {
StringBuffer stringBuf = new StringBuffer(100);
//构造Sql 的where 查询语句
stringBuf.append(" where");
if( roomNumQuery ) {
stringBuf.append( " roomNum='" + getRoomNum()+"'" );
} //if
if( roomStateQuery ) {
if(roomNumQuery) {
stringBuf.append(" and roomState='" + getRoomState() + "'");
} else {
stringBuf.append(" roomState='" + getRoomState() + "'");
}
} //if
if( roomTypeQuery ) {
if(roomNumQuery || roomStateQuery) {
stringBuf.append(" and roomType='" + getRoomType() +"'");
} else {
stringBuf.append(" roomType='" + getRoomType() +"'");
}
} //if
String querySql = stringBuf.toString();
System.out.println( querySql);
try {
queryRoomList = new AdminDAO().queryRoomInfoByCondition(querySql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "queryRoomFail";
}
return null;
}
/**
* 发布通知.更改通知文件 message.html
* @param message 通知内容
* @return "true" if issue Message successful, or "false".
*/
public boolean issueMessage(String message) {
//Add DAO code
return true;
}
/**
* 删除查询的房间
* @return a string "operateFail" or "null/operateSuc"用于JSF导航.
*/
public String deleteRoomsAction() {
if(! getAnyRoomsMarkedForDeletion()) {
return null;
}
ArrayList<Room> newRooms = new ArrayList<Room>();
int j = 0;
for(Room r: queryRoomList) {
if( r.isDeletable()) { //标记为删除
if(! deleteRoom(r.getRoomNum())) {//在数据库中删除数据
return "aOperateFail";
}
} else {
newRooms.add(j++,r);
}
}
queryRoomList = newRooms;
return "aOperateSuc";
}
/**
* 得到标记为删除房间的数目
* @return 标记为删除的房间的 数量
*/
public int getNumOfRoomsMarkerForDeletion() {
int cnt = 0;
for(Room r: queryRoomList) {
if(r.isDeletable())
++cnt;
}
return cnt;
}
/**
* 查看是否有任何房间标记为删除
* @return true ;如果有任何房间标记为删除;or false.
*/
public boolean getAnyRoomsMarkedForDeletion() {
for(Room r: queryRoomList) {
//System.out.println("Room is deletable" + r.isDeletable());
if (r.isDeletable())
return true;
}
return false;
}
/**
* 查看是否有任何房间标记为编辑
* @return true ;如果有任何房间标记为编辑;or false.
*/
public boolean getAnyRoomsMarkedForEditable() {
for(Room r:queryRoomList) {
if (r.isEditable())
return true;
}
return false;
}
//////////////////////-----getter/setter 方法--------------/////////////////////////
public ArrayList<Room> getRoomList() {
return roomList;
}
public void setRoomList(ArrayList<Room> roomList) {
this.roomList = roomList;
}
public boolean isMarkedForDelete() {
return markedForDelete;
}
public void setMarkedForDelete(boolean markedForDelete) {
this.markedForDelete = markedForDelete;
}
public boolean isMarkedForEdite() {
return markedForEdite;
}
public void setMarkedForEdite(boolean markedForEdite) {
this.markedForEdite = markedForEdite;
}
public boolean isRoomNumQuery() {
return roomNumQuery;
}
public void setRoomNumQuery(boolean roomNumQuery) {
this.roomNumQuery = roomNumQuery;
}
public boolean isRoomStateQuery() {
return roomStateQuery;
}
public void setRoomStateQuery(boolean roomStateQuery) {
this.roomStateQuery = roomStateQuery;
}
public boolean isRoomTypeQuery() {
return roomTypeQuery;
}
public void setRoomTypeQuery(boolean roomTypeQuery) {
this.roomTypeQuery = roomTypeQuery;
}
public String getRoomNum() {
return roomNum;
}
public void setRoomNum(String roomNum) {
this.roomNum = roomNum;
}
public String getRoomState() {
return roomState;
}
public void setRoomState(String roomState) {
this.roomState = roomState;
}
public String getRoomType() {
return roomType;
}
public void setRoomType(String roomType) {
this.roomType = roomType;
}
public ArrayList<Room> getQueryRoomList() {
return queryRoomList;
}
public boolean isMarkedForDeleteQuery() {
return markedForDeleteQuery;
}
public void setMarkedForDeleteQuery(boolean markedForDeleteQuery) {
this.markedForDeleteQuery = markedForDeleteQuery;
}
public boolean isMarkedForEditeQuery() {
return markedForEditeQuery;
}
public void setMarkedForEditeQuery(boolean markedForEditeQuery) {
this.markedForEditeQuery = markedForEditeQuery;
}
public boolean isCanQueryMark() {
if(roomNumQuery || roomStateQuery || roomTypeQuery) {
canQueryMark = false;
return ! canQueryMark;
}
return canQueryMark;
}
public void setCanQueryMark(boolean canQueryMark) {
this.canQueryMark = canQueryMark;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -