📄 cancel.java
字号:
/* * Cancel.java * The package functions contains the different class executing the different functions of the FlightSystem Reservation. */package reservation.system.functions;import java.util.HashSet;import java.util.Set;/** * This class hold Cancel structure. This object allows to cancel a reservation for different person or for a whole of person by calling the methods <CODE>cancel</CODE> in {@link reservation.system.FlightSystem}. * @author Texier Mathieu and Frederic Bidon */public class Cancel extends Functions { /** * Cancel several person or a whole of person if the command <CODE>cancel</CODE> and their arguments are correct. * @throws Exception if a person name is duplicated or if the person are not canceled. * @return a confimation's message if the person(s) or the bookingNumber are canceled. */ public String execute () throws Exception { boolean valid; if (arg.length > 1) { Set setPersonNames = new HashSet (); for (int i = 1; i< arg.length; i++) setPersonNames.add (arg[i]); if (setPersonNames.size () != arg.length-1) throw new Exception ("no duplicate name are allowed in reserve comande"); valid = fs.cancel (Integer.parseInt (arg[0]), setPersonNames); } else valid = fs.cancel (Integer.parseInt (arg[0])); if (valid) { return "Flight canceled \r\n" + "We are Sorry, if our compagny does not fully satified you and we hope to see you soon.\r\n"; } else {throw new Exception ("The person are not succesfully canceled");} } /** * Verify that at least one flight is created and also one reservation has been made. * Verify invariants : * <PRE> * - Arguments not null * - <CODE>bookingNumber</CODE> belongs to [1 <CODE>fs.getBookingNumberMax</CODE>] * </PRE> * @throws Exception if the invariants is violated */ void _check (String[] arg) throws Exception { try { CheckFlightListNotEmpty (); CheckBookingListNotEmpty (); ArgumentIsValid (arg, 1, (short) NUMBER_ARGUMENT_MAX); if (!checkInteger (arg[0], 1, fs.getBookingNumberMax ())) throw new Exception ("The argument booking number has to be an integer"); } catch (Exception e) { throw new Exception (e.getMessage ()+ "\r\n" + usage ()); } } /** * Display the usage for the command <CODE>cancel</code>. * @return the usage. */ static public String usage () { String usage = " Usage command cancel: cancel <bookingNumber> [personName1] [personName2] [...]\n\r"; usage += " - The <bookingNumber> is a number and cannot be inferior to 0. \r\n"; usage += " - The arguments <personNameX> which follow correspond to the name of the \n\r"; usage += " different persons that you want to register on the flight.\r\n"; usage += "\t The first letter of each passenger must be in uppercase and \n\r"; usage += " all the other in lowercase.\n\r "; usage += "\t The number of name cannot be superior to the free place of the plane.\n"; return usage; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -