Question: Please write this code in java. For this project, you will read in a CSV file that has statistics for 1 0 0 0 cell

Please write this code in java.
For this project, you will read in a CSV file that has statistics for 1000 cell phones. You will then create a class called Cell and assign the column as class attributes. Create getter and setter methods. The objects will be stored in a data structure native to the language. You are free to pick what your data structure is but if your language has a HashMap type data structure, I strongly encourage you using it. Data Ingestion and CleaningYou must perform transformations on the data as it comes in or after it is been ingested. This a process called data cleaning and these are the steps:Replace all missing or "-" values with null or something similar that can be ignored during calculations.Transform data in appropriate columns according to instructions. For example in the body_weight column, a typical value is '190 g (6.70 oz)'' and needs to be converted to 190.Convert data types in appropriate columns Note: Be aware: a null value can look very different in different languages. Research how your language represents null values and use what makes most sense. Below, it says to watch out for invalid or missing values. Check the specifications below about valid and invalid data. The most important part of the invalid data transformation in this is that for any column that expects a number as a final result, it should all be numbers that statistical analysis can be performed on. Here are the columns (which will be class variables): Column Name Data Type Description Notes oem String Company phone comes from Watch out for missing values, replace with null Valid data: a String composed of letters or numbers.Invalid data: Nothing is invalid here.model String Model of Phone Watch out for missing values, replace with null Valid data: a String composed of letters or numbers.Invalid data: Nothing is invalid here.launch_announced String -> Integer Year of launch announced This one will start as string but needs to be transformed to only contain the integer year. If your programming language supports using regex, it would be helpful here. Any invalid values without a year such as "V1" need to replaced with a null value.Valid data: A string that has a year in it composed of 4 digits.Invalid data: Any string that does not have a year in it composed of 4 digits.launch_status StringYear of launch This one will start as string but needs to be transformed to only contain the integer year. If your programming language supports using regex, it would be helpful here. If you have a result that is 'Discontinued' or 'Cancelled', leave it as is. This will create an issue with mathematical calculations, leaving all as strings. You will have to figure out how to do the calculation with the numeric types only.Valid data: A string that has a year in it composed of 4 digits or the string 'Discontinued' or 'Cancelled'.Invalid data: Any string that does not have a year in it composed of 4 digits or is not the string 'Discontinued' or 'Cancelled'.body_dimensions String Dimensions of the phone's body Watch out for invalid or missing values, replace with null Valid data: a String composed of letters or numbers.Invalid data: Nothing is invalid here.body_weight String -> Float Weight of phone's body This one will start as string but needs to be transformed to an float, have only the number of the grams listed. If your programming language supports using regex, it would be helpful here.Valid data: A string that has an integer in it before the letter g, such as 118 g (4.16 oz)Invalid data: Any string that does not have an integer in it before the letter g, such as just a hyphen or just a number such as 120.body_sim String Type of sim card Be aware of possible "No" values or oddities. Replace these with null. Valid data: a String composed of letters.Invalid data: The word "No" or "Yes"display_type String Type of display Watch out for missing values, replace with null Valid data: a String composed of letters or numbers.Invalid data: Nothing is invalid here.display_size String -> Float Size of display in inches Will start as string, transform to float in inches. May need to replace missing or invalid values with null values. If your programming language supports using regex, it would be helpful here.Valid data: a String composed of an integer or a float before the word "inches" with anything after it.Invalid data: Just an integer or a float such as 12 or 12.2.display_resolution String Resolution of display Watch out for missing values, replace with null Valid data: a String composed of letters or numbers.Invalid data: Nothing is invalid here.features_sensors String Any features that are sensors Watch out for invalid or missing values, replace with null. V1 is an acceptable value for this one.Valid data: a String composed of letters or numbers.Invalid data: Only a number such as 12 or 20.1.platform_os String Platform of the operating system of the phone Watch out for invalid of missing values, replace with null. Shorten this down to just the name. So if you see something like "Android 9.0(Pie), upgradable to Android 10", shorten it to "Android 9.0(Pie)". If your programming language supports using regex, it would be helpful here. The idea here is to get everything up to the first comma or if there is no comma, to get everything in the string.Valid data: a String composed of letters or numbers.Invalid data: Only a number such as 12 or 20.1. MethodsWithin each class, you will create a series of methods that will perform operations on the new objects. There must be at least 7 methods/functions in your Cell class, not including getter and setter methods or the methods you use for transformation. Be creative and think critically, its your choice on what these are. Some ideas: ToString method that will convert your objects details to a string for printing. Calculate statistics on columns, for numeric, descriptive stats such as mean, median, standard deviation, etc. For categorical columns, perhaps Mode or count of unique values. Listing of unique values for each column. Ability to add an object and input data for each object's variable. Ability to delete an object. ExceptionsEnsure that you have exceptions that can handle errors. Focus on input validation. You do not need to validate everything, but have a robust number of exception handling in your project to show you are making your program secure and able to survive poor user input. TestingIf your programming language has unit testing capability such as junit or pyunit, use that for your unit tests. If not, write your own unit tests for each method. On top of a unit test for each method, there are three tests you are required to have:Ensure the file being read is not empty.Ensure each column's final transformation matches what is stated above as its final form (ex: test if display_size is now a float)Ensure all missing or "-" data is replaced with a null value. ReportPlease include a README.md file with your repo that will serve as a survey of your explored programming language. Within it discuss several things in a few paragraphs:Which programming language and version did you pick?Why did you pick this programming language?How your programming language chosen handles: object-oriented programming, file ingestion, conditional statements, assignment statements, loops, subprograms (functions/methods), unit testing and exception handling. If one or more of these are not supported by your programming language, indicate it as so. List out 3 libraries you used from your programming language (if applicable) and explain what they are, why you chose them and what you used them for.Answer the following questions (and provide a corresponding screen showing output answering them):What company (oem) has the highest average weight of the phone body?Was there any phones that were announced in one year and released in another? What are they? Give me the oem and models.How many phones have only one feature sensor?What year had the most phones launched in any year later than 1999? Some other items of importance You are required to use Github for this project. You will be submitting your Github repo link on Canvas. I expect to see a commit history as you worked on this project. Feel free to use whatever IDE to connect to Github or use the command line.Be sure your code is clean, legible and easy to read. Feel free to go above and beyond! Add new methods and functionality, test in different ways in addition to what you are required to do, be creative! The top grades go to those who go above and beyond. Strive for excellence. Including the runtime as a comment on algorithms with loops in them will be seen as going above and beyond as well. Format Requirements Please ensure you follow the structure as listed above. Use the appropriate environment to create your code and run it. Provide reasonable amounts of comments, explaining your code. Your submissions will be by providing a link to your repo. For your README.md report, be as professional as possible. I am not putting direct limitations on its length.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Accounting Questions!