You land a summer job at a company that manages one-week rental properties and have been asked to create an application to manage the rental property inventory. At this time, only up to 12 properties may be in inventory at a given time. Each rental property has a system-generated ID (IDs start at 100 and increment by 1 for each new property), nickname (e.g. Beachside Villa) and number of rooms in the rental property. All rental properties have between 3 and 9 rooms, inclusive. The rental cost of each rental property is calculated by taking a flat fee of $400 and adding $150 for each room in the rental property.
Create an application that begins with a main menu containing the following options:
The Add New Property option must allow the user to enter the nickname and number of rooms for a property. If the maximum number of properties has already been entered, the user must see an error message.
The Delete Property option must allow the user to see a list of all property nicknames and then choose which property they would like to delete. If the user selects an invalid property, the user must see an error message and be returned back to the main menu.
The Rent Property option must allow the user to see only a list of rental property nicknames where the rental property is available to rent and then choose which rental property should be rented. Upon selecting the rental property, the rental propertys status should be marked as unavailable and the user should see all details about the rental property including the ID and rental cost. If no rental properties are available for rent, the user must see an error message. If the user selects an invalid rental property to rent, the user must see an error message and be returned back to the main menu.
The Vacate Property option must allow the user to see only list of rental property nicknames where the rental property is not available to rent and then choose which rental property should be vacated. Upon selecting the rental property, the rental propertys status should be marked as available. If no rental properties are being rented, the user must see an error message. If the user selects an invalid rental property to vacate, the user must see an error message and be returned back to the main menu.
The Quit Application option must display a summary report including the total number of rental properties, number of rental properties rented, number of rental properties vacant, and total income being generated (this is the total rental cost across all rental properties currently being rented).
Once a user selects any option other than Quit Application, and the option is finished executing, they should be re-prompted to enter another option.
Write a well-documented, efficient Java program that implements the solution design you identified. Include appropriate documentation as identified in the documentation expectations document.
Note: You may not use the Scanner or System.out classes. For input/output, you must use the JOptionPane class.