The document discusses code for a server and member classes that manage a group chat. The server class handles adding/removing members, electing a coordinator, and broadcasting/sending messages. The member class represents individual users that can join/leave the group, receive broadcast/private messages, and be elected as coordinator. When a member joins, it receives member details from the server and the coordinator is informed.
Why the code is not running I didnt get any main function .pdf
1. Why the code is not running? I didn't get any main function to run it import java.util.ArrayList;
import java.util.HashMap; import java.util.List; import java.util.Map; public class Server { private
List<Member> members = new ArrayList<>(); private Member coordinator; public void
addMember(Member member) { if (members.isEmpty()) { coordinator = member;
coordinator.informCoordinator(); } else { member.receiveMembers(getMemberDetails());
broadcastMessage(member.getName() + " has joined the group."); } members.add(member); }
public void removeMember(Member member) { members.remove(member); if
(member.equals(coordinator)) { coordinator = null; electNewCoordinator(); }
broadcastMessage(member.getName() + " has left the group."); } private void
electNewCoordinator() { if (members.size() > 0) { coordinator = members.get(0);
broadcastMessage(coordinator.getName() + " is now the new coordinator.");
coordinator.informCoordinator(); } } public List<Member> getMembers() { return members; }
private Map<String, MemberDetails> getMemberDetails() { Map<String, MemberDetails>
memberDetails = new HashMap<>(); for (Member member : members) {
memberDetails.put(member.getName(), new MemberDetails(member.getIpAddress(),
member.getPort())); } return memberDetails; } public void broadcastMessage(String message) { for
(Member member : members) { member.receiveBroadcastMessage(message); } } public void
sendPrivateMessage(Member sender, String recipientName, String message) { for (Member
member : members) { if (member.getName().equals(recipientName)) {
member.receivePrivateMessage(sender.getName(), message); return; } } } public void
handleUnresponsiveMember(Member member) { members.remove(member);
broadcastMessage(member.getName() + " is unresponsive."); } } public class Member { private
String name; private String ipAddress; private int port; private List<MemberDetails> members =
new ArrayList<>(); private Server server; public Member(String name, String ipAddress, int port) {
this.name = name; this.ipAddress = ipAddress; this.port = port; } public void joinGroup(Server
server) { this.server = server; server.addMember(this); } public void leaveGroup() {
server.removeMember(this); } public void receiveMembers(Map<String, MemberDetails>
memberDetails) { members.clear(); members.addAll(memberDetails.values()); } public void
informCoordinator() { System.out.println("I am the new coordinator."); } public void
receiveBroadcastMessage(String message) { System.out.println("[" + name + "] " + message); }
public void receivePrivateMessage(String senderName, String message) {
System.out.println("[Private message from " + senderName + " to " + name + "] " + message); }
public String getName() { return name; } public String getIpAddress() { return ipAddress; } public
int getPort() { return port; } } class MemberDetails { private String ipAddress; private int port; public
MemberDetails(String ipAddress, int port) { this.ipAddress = ipAddress; this.port = port; } public
String getIpAddress() { return ipAddress; } public int getPort() { return port; } }