JAVA PROGRAM You’ll create two supplier classes that interact with each other (through a “has a”rela

JAVA PROGRAM You’ll create two supplierclasses that interact with each other (through a “has a”relationship). Here are UML Class Diagrams for the objects you areto create. Pay attention to the diagram notation indicating whethermethods are public (+) or private (-); ask questions if you needclarification. Understanding the model is of criticalimportance here. 3   Constraints and Assumptions •       Create no staticmethods except for the test methods. •       Mark eachinstance variable and each method as either public orprivate; follow the UML where it gives guidance and make smartdecisions where it doesn’t. •       Use exactly the methodnames shown. Look carefully at the parameter data types and thereturn data types; they give you clues. •       Department’s addStudentmethod maintains the appropriate total students of each group andthe total balance. •       Department’s getTotalGr…methods calculate how many groups need for each class (28 studentsin the class). •       The toString method shoulddo their best to summarize the state of the object instance inquestions; include newlines in the strings to make the resultdisplayable and attractive. •       Create a test method foreach class that checks every constructor and every method excepttoString. •       One credit equals 5, and onecredit costs $110. •       Throw anIllegalArgumentException if any of these preconditions areviolated: o A first name, last name, and IDcan’t be empty. o Total students of each group can’tbe negative. Don’t duplicate code; avoid this wherever possible. As anexample, don’t forget it’s legal for one constructor to callanother constructor; this is good practice and helps avoidduplication and the creation of extra code paths to test. Attached