📄 hoteldb.java
字号:
package db;import java.io.*;import java.util.*;public class HotelDB{ private static int s_nextId = 0; private CapacityMap m_capacityMap; private MultiMap m_nameMap; private Map m_idMap; private MultiMap m_dateMap; static int getNextId () { int ans = s_nextId; s_nextId++; return ans; } static void resetId (int id) { if (id >= s_nextId) s_nextId += 100; } public HotelDB (String filename) { m_idMap = new TreeMap (); m_nameMap = new MultiMap (); m_dateMap = new MultiMap (); m_capacityMap = new CapacityMap (); load (filename); } public Reservation getReservation (int id) { Integer idKey = new Integer (id); if (m_idMap.containsKey(idKey)) return (Reservation) m_idMap.get(idKey); else return null; } public List getReservations () { return toList (m_idMap.values()); } public List getReservations (Date date) { return toList (m_dateMap.getValues (date)); } public List getReservations (String lastName, String firstName) { return toList (m_nameMap.getValues (firstName+lastName)); } public List getCapacity (Date date) { return m_capacityMap.getCapacity(date); } public void addReservation (Reservation res) { m_idMap.put (res.getIdKey(), res); m_nameMap.put (res.getNameKey(), res); m_dateMap.put (res.getDate(), res); m_capacityMap.addReservation (res); } public boolean deleteReservation (int id) { Reservation res = getReservation (id); if (res != null) { m_idMap.remove (res.getIdKey()); m_nameMap.removeItem (res); m_dateMap.removeItem (res); m_capacityMap.removeReservation (res); return true; } else { return false; } } public static List toList (Collection coll) { List ans = new ArrayList (); for (Iterator iter = coll.iterator(); iter.hasNext(); ) { ans.add (iter.next()); } return ans; } private void load (String filename) { String filepath = DBUtilities.rootPath() + filename; BufferedReader in = null; try { in = new BufferedReader (new FileReader (filepath)); } catch (IOException e) { System.err.println ("Error opening file: " + filename + " Exiting."); System.exit(-2); } String line; Reservation reserve; try { while ((line = in.readLine()) != null) { try { reserve = new Reservation (line); addReservation (reserve); } catch (java.text.ParseException e) { System.err.println("Couldn't parse date: " + line); } } } catch (IOException e) { System.err.println ("Error reading file " + filename + " Continuing."); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -