Do it in Java Please ExamPrep4_Spring2023 Source Packages locklear.DB DBConnect.java QueryTest.sql locklear.ENUMS Status.java locklear.FACTORY ComponentBuilder.java WidgetFactory.java locklear.INTERFACES Communicating.java Displayable.java locklear.MAIN Gene.java locklear.NETWORKS CommNetwork.java DataNetwork.java Network.java VideoNetwork.java locklear.WIDGETS Device.java Pad.java Terminal.java Widget.java locklear. WIDGETSPT Site.java Technician.java Test Packages Libraries mysql-connector-java-8.0.23.jar JDK 11 (Default) Test LibrariesWidget ClassesWidget Subclasses Device -WType = "Device" +Device(String WID, Network AssignedTo, Site Location, String AccessCode, boolean Secure, Technician User) +displayDevice(): void +transmit(): void Pad -WType = "Pad" +Pad(String WID, Network AssignedTo, Site Location, String AccessCode, boolean Secure, Technician User) +displayPad(): void +transmit(): void Terminal - WType = "Terminal" +Terminal(String WID, Network AssignedTo, Site Location, String AccessCode, boolean Secure, Technician User) +displayTerminal(): void +transmit(): voidNetwork Class +Network(String NetName, String NetType, double Bandwidth, double OptimumBW, double MaxBW, double MinBW, boolean Cswitched, Status NetStatus) begin{tabular}{|c|c|} hline DataNetwork & VideoNetwork hline See Slide & CommNetwork hline end{tabular}Network Subclasses -NetType = "DATA" DataNetwork +DataNetwork(String NetName, double Bandwidth, double OptimumBW, double MaxBW, double MinBW, boolean Cswitched, Status NetStatus) VideoNetwork -NetType = "VIDEO" +VideoNetwork(String NetName, double Bandwidth, double OptimumBW, double MaxBW, double MinBW, boolean Cswitched, Status NetStatus) CommNetwork - NetType = "COMM" +CommNetwork(String NetName, double Bandwidth, double OptimumBW, double MaxBW, double MinBW, boolean Cswitched, Status NetStatus)Site Class Site -String SiteName -String SitelD - Status SiteStatus -int XCoord -int YCoord +Site(String SiteName, String SiteID, Status SiteStatus, int XCoord, int YCoord) +tostring(): String +display Site(): void Class Method Specifications Site tostring()...returns a String representation of the Site object displaySite()...prints to the console a String representation of the Site object.Technician ClassComponentBuilder Class Status Enumerationpublic class DBConnect { public static Connection establishConnection () throws SQLException Connection conn = null; Properties connectProp = new Properties ) : connectProp.put ("dbms", "mysq1"); connectProp.put ("user", "root"); connectProp.put ("password", root"); connectProp.put ("usessL", false"); String P1 = "jdb: mysql://localhost:3306/"; conn = DriverManager.getconnection (P1, connectProp): return conn; }Method SpecificationsMethod Specifications.