Using the following UML please create this java code ( I specifically need the Communicating, Displayable, enum which is the enumeration and the componentbuilder methods) (also I have a question, do I need to write something in the main class?) <Abstract> Widget -String WID -String WType -Network AssignedTo -Site Location -String AccessCode -boolean Secure -Technician User +Widget(String WID, String WType, Network AssignedTo, Site Location, String AccessCode, boolean Secure, Technician User) +toString(): String +abstract displayWidget():void 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(): void <<Communicating>> +abstract transmit(): void <Abstract> Network -String NetName -String NetType -double Bandwidth -double OptimumBW -double MaxBW -double MinBW -boolean CSwitched -Status NetStatus +Network(String NetName, String NetType, double Bandwidth, double OptimumBW, double MaxBW, double MinBW, boolean Cswitched, Status NetStatus) DataNetwork -NetType = DATA +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) <<Displayable>> +static displayNetwork(): void Site -String SiteName -String SiteID -Status SiteStatus -int XCoord -int YCoord +Site(String SiteName, String SiteID, Status SiteStatus, int XCoord, int YCoord) +toString(): String +displaySite(): void Technician -String FName -String LName -String Password +Site(String FName, String LName, String Password) +toString(): String +displayTechnician(): void ComponentBuilder +static buildDataNetwork(String NetName): DataNetwork +static buildVideoNetwork(String NetName): VideoNetwork +static buildCommNetwork(String NetName): CommNetwork +static buildSite(String SiteName): Site <<ENUM>> Status ONLINE, OFFLINE public class DBConnect { public static Connection establishConnection() throws SQLException{ Connection conn = null; Properties connectProp = new Properties(); connectProp.put("dbms","mysql"); connectProp.put("user","root"); connectProp.put("password","root"); connectProp.put("useSSL","false"); String P1 = "jdbc:mysql://localhost:3306/"; conn = DriverManager.getConnection(P1,connectProp); return conn; } }.