Project 3: Frozen Yogurt with Mix-ins Assignment For this project, you get to build off of the FrozenYogurt class from Project 2 and exercise using loops in Java! A very common application of loops is input validation. You will get to do that in this project. Additionally, you get to use either a StringBuilder or StringBuffer object to store multiple toppings in a FrozenYogurt object. FrozenYogurt class For the FrozenYogurt class make the following changes to that class: (Driver class will be separate) 1.Change the instance variable for the topping to be either a StringBuilder or StringBuffer object to appropriately support a comma-separated list of toppings (instead of just a single topping) 2.Change the setPrice method so that it returns a String. If the new price is negative, do not update the price and return a String with the following value: ALERT: Unable to set <name>'s price to <price> (negative values are not allowed) Where <name> is the name of the frozen yogurt and <price> is the parameter's value. If the price is 100.0 or greater, do not update the price and return a String with the following value: ALERT: Unable to set <name>'s price to <price> (value is too high (>=100.00)) Otherwise, return an empty string. 3.Change setYogurtFlavor method so that it returns a String. If the new flavor is not "chocolate" nor "vanilla", do not update the base flavor and return a String with the following value: ALERT: <new yogurt flavor> is not one of the valid yogurt flavors (chocolate or vanilla)! Where <new yogurt flavor> is the value of the parameter. If the new flavor is valid, then return an empty string. 4.Add an addTopping method that take a String as a parameter. If the instance variable already has a topping, then separate the previous value and the new value with ", ". Otherwise, just use the new topping as the value (without a ","). For each additional topping added, add $0.49 to the price. import java.util.Scanner; public class FrozenYogurt{ //private instance variables private String name; private double price; private String flavor; private String topping; //constructor with no parameters public FrozenYogurt(){ this.name = ""; this.price = 0.0; this.flavor = ""; this.topping = ""; } // constructor with parameters public FrozenYogurt(String name, double price, String flavor, String topping){ this.name = name; this.price = price; this.flavor = flavor; this.topping = topping; } // mutator methods public void setName(String name){ this.name = name; } public void setPrice(double price){ this.price = price; } public void setYogurtFlavor(String flavor){ this.flavor = flavor; } public void setTopping(String topping){ this.topping = topping; } //Accessor methods public String getName(){ return name; } public double getPrice(){ return price; } public String getYogurtFlavor(){ return flavor; } public String getTopping(){ return topping; } //toString method public String toString(){ return "Frozen Yogurt: " + name + "\nPrice: $" + price .