I need someone to help me with interpreting this question
program01WI23 CST 283 Programming Assignment 1 Winter 2023 Instructor: T. Klingler Objective This program provides an opportunity to practice Java files, String objects, and basic array searching. Overview & Instructions Write a program that will allow a user to perform queries on a (very large) data set of (actual) severe weather reports. A meteorologist is requesting that a command-line API (application program interface) be created to allow basic queries to be performed on the dataset with minimum keystrokes. Initially, read the entire contents of the data file to an array-based data structure. You can choose parallel arrays, a Java ArrayList, or an array of objects. You will then be be performing searches on the array(s). Be sure to read the file into your data structure only once. The (zipped) file stormdata.txt contains a substantial number of U.S. severe weather reports from 2010 through 2020. The file format is comma-delimiated with the following fields: {yearMoDa},{stormType},{state},{countyCode},{deaths},{injuries} Valid storm storm types include RF Heavy Rain and/or Flooding TO Tornado or Funnel Cloud HA Hail LI Lightning WI Strong and/or Damaging Winds WS Winter Storm or Significant Snow CO Freeze, Frozen Precipitation, or Extreme Cold County codes are defined as five-character FIPS codes and are unique for each U.S. county. Michigan FIPS codes begin with "26". An online search would return FIPS codes, if interested. A sample line of data would be: 20140904,LI,MI,26109,1,0 Defining a lightning event for Benzie County, MI (FIPS code 26019) on September 4, 2014 causing one death. For your interface use simple console input (via the Scanner class). Similarly, output can be directed to the Java console to restrict your weather data system to a command-line application. A simple query could likely generate a long list of severe weather events. Pull all matching events from your data (stored in the array-based data structure) and list all that satisfy the query. Utilize a loop to offer a simple menu or set of instructions. Invite a query, answer it, and then reset for another query. As noted above, the data should already be stored in an array for any sequence of queries. Required queries to offer include: https://www.deltacst.net/cs2/programs/data/stormdata.txt.zip D,minDate,maxDate,countyCode List all storm events from minDate to maxDate for a given county. S,stormType,state List all events of a given storm type for a given state T,stormType,year Return total number of occurrences of a given storm type (i.e. just a number, not all events) J,state,year Return the total number of deaths and injuries for the given state and year. ?,?????????? You are also invited (i.e. required) to create your own query option that uses another character designation and also uses the county code. It could be a count or listing of data. Queries must be validated prior to processing. First, validate that the format matches one of the patterns above. This implies that each must begin with a a valid character from the query list. Next, be sure that the number of comma-delimited tokens match the expected pattern. Finally, be sure that the storm type code is valid for any queries including this parameter. While further error checking is warranted, additional validation of input would be prohibitive for this size of assignment. For any queries that do not match this format, provide an error message and allow the user to start again. Some example valid sample queries could be: D,20120301,20121031,26111 T,TO,2014 S,HA,MI J,OH,2015 For output of a list of events, some additional formatting is required to make the "raw" data of a query more readable. For example, if this line is returned from a user request: 20140904,LI,MI,26109,1,0 write it to the console as: 04 SEP 2014 - Lightning - County 26109 - Deaths: 1 - Injuries: 0 Design your solution with appropriate modularity in mind. Either a procedural approach or an object oriented are acceptable but "one big main method" is not an acceptable solution for this program. Deliverables Deliver the following to the online course management system dropbox as your final product: ● Upload your source code (.java) file(s). Multiple file submissions preferably zipped. Notice This is an individual assignment. You must complete this assignment on your own. You may not discuss your work in detail with anyone except the instructor. You may not acquire from any source (e.g., another student or an internet site), a partial or complete solution to a problem or project that has been assigned. You may not show another student your solution to an assignment. You may not have another person (current student, former student, tutor, friend, anyone) "walk you through" how to solve the assignment.