Java progam assignment.

 Case Study: The COVID-19 global pandemic had changed and affected our day to day lives, in our health, careers, social activity etc. Since the start of the outbreak in the first quarter of 2020, many countries have gradually implemented lockdowns in order to contain the spread of COVID-19. This means, laws have been in force to set restriction on all citizens. Preventing outdoor, social or any activities that allows human to human interaction. In the context of Singapore, instead of lockdown, the government have implemented the Circuit Breaker that consist of THREE phases. Each with a gradual ease of restriction on sets of activities from a Phases ONE to THREE. In order to allow moving between phases, a certain set of results and measures must be achieved and instilled. On 9 May 2020, the tripartite partners (Ministry of Manpower (MOM), the National Trades Union Congress (NTUC) and the Singapore National Employers Federation (SNEF)) issued an advisory on Safe Management Measures required of employers when they are allowed to resume operations. Digital solutions are made available to help busines implement some of the Safe Management Measure. These include the TraceTogether app and SafeEntry. Many other measures are provided and stated on their website. You may read more on the Digital Solutions provided on the IMDA website: https://www.imda.gov.sg/programme-listing/smes-go-digital/Digital-Solutions-ForSafe-Reopening The individual task: To have a better management of multiple digital solutions to implement Safe Management Measures. Your task is to write a Safe Management Measure Management Java application, using an Integrated Development Environment. Project Requirement With what you have learned from the module, you are task to develop the Java application with the following: 1. Study the case study and research on the available Digital Solutions for Safe Management Measure. You are to use the Digital Solutions data/information provided in the website link above. 2. You are required to write THREE (3) Java classes. a. DigitalSolutionsCategory b. DigitalSolution c. DigitalSolutionsManagement For each Java classes, you are to meet the following requirements: DigitalSolutionsCategory class Fields: solution category: String (holds the type of solution as per stated on the website) digital solution storage: ArrayList of DigitalSolution (This is used to store each digital solution object) Constructor: Arguments: Solution Category. Create the digital solution storage Arraylist. Methods: addDigitalSolution o Add a DigitalSolution object to the digitalsolutionlist arraylist. o Return true if success, return false if arraylist is full. o Return false if duplicated DigitalSolution object is added. RemoveDigitalObject o Remove a DigitalSolution object from the digitalsolutionlist arraylist. getDigitalSolution o Return one of the DigitalSolution in the digitalsolutionlist arraylist. o Return null if digitalsolutionlist arraylist is empty. getHighestSolutionCategory o Return solution category with the highest number of DigitalSolution object. getLowestSolutionCategory o Return solution category with the lowest number of DigitalSolution object. DigitalSolution class Fields: ID: String (unique) Name: String Vendor: String Solution Category: String Constructor: Arguments: Name, Description, Vendor and Solution Category. DigitalSolutionsManagement class Note: This would be the main class among the THREE (3) classes stated above. Fields: DigitalSolutionsCategory ArrayList (To store the category list in order to store Digital Solution object) Constructor: Initialize the DigitalSolutionsCategory ArrayList using the solution categories data stated in the website link. Load the DigitalSolution data from a text file into the solution categories arraylist. (Note: You are to retrieve the list of Digital Solutions from the website link and add them to a text file) Methods: Insert new DigitalSolution data: o Select DigitalSolution Name and enter ID. (Note: You are to check if the ID is unique) o Search for the Solution Category that stores the same category of Digital Solution. o Insert the DigitalSolution object into the DigitalSolutionCategory array. Retrieve DigitalSolution information: o Select DigitalSolution Name. o Display the Solution Category with the highest number of Digital Objects. o Display the Solution Category with the lowest number of Digital Objects. o Display all the Digital Solution information in a Solution Category. Remove a DigitalSolution: o Select DigitalSolution Name. o Search for the Solution Category that holds the DigitalSolution object. o Remove the DigitalSolution object from the digitalsolutionlist arraylist. Exit and Save o Save all the updated DigitalSolution objects in the digitalsolutionlist arrays back to the data files and exit the program. 3. Implement Error Handling methods on relevant function. Note: The user can keep selecting the Insert, List and Remove functions until exiting of the program. You are required to satisfy all requirements mentioned above. You are free to add more appropriate fields and methods to the above Java classes. You need to handle all possible errors that will occur during the program execution. Documentation On top of the Java Programming code section, you will also be required to submit a report with the following documentation: A short reflection on this assignment. For each function that you have implemented: For each step do a screenshot and state the purpose of that step in that function. The error checking methods you have implemented. Do a screenshot of the error check and state the purpose of that error check. A screenshot and explanation on unresolved/unachievable requirement