Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- class User {
- private Integer id;
- private String name;
- private Set<User> followers;
- private Set<User> following;
- public User(Integer id, String name) {
- this.id = id;
- this.name = name;
- this.followers = new HashSet<>();
- this.following = new HashSet<>();
- }
- public String getName() {
- return name;
- }
- // Receive notification
- public void update(String message, User followee) {
- System.out.println(name + " received notification: " +
- followee.getName() + " posted: \"" + message + "\".");
- }
- public void addFollower(User user) {
- followers.add(user);
- }
- public void removeFollower(User user) {
- followers.remove(user);
- }
- public void notifyFollowers(String message) {
- for (User follower : followers) {
- follower.update(message, this);
- }
- }
- public void post(String content) {
- System.out.println(name + " posted: \"" + content + "\".");
- notifyFollowers(content);
- }
- public void follow(User user) {
- following.add(user);
- user.addFollower(this);
- }
- public void unfollow(User user) {
- following.remove(user);
- user.removeFollower(this);
- }
- }
- class Platform {
- private Map<Integer, User> users;
- public Platform() {
- users = new HashMap<>();
- }
- public void addUser(Integer id, String name) {
- User user = new User(id, name);
- users.put(id, user);
- System.out.println(name + " added successfully.");
- }
- public void follow(Integer followerId, Integer followeeId) {
- User follower = users.get(followerId);
- User followee = users.get(followeeId);
- if (follower != null && followee != null) {
- follower.follow(followee);
- System.out.println(follower.getName() +
- " is now following " + followee.getName() + ".");
- }
- }
- public void unfollow(Integer followerId, Integer followeeId) {
- User follower = users.get(followerId);
- User followee = users.get(followeeId);
- if (follower != null && followee != null) {
- follower.unfollow(followee);
- System.out.println(follower.getName() +
- " has unfollowed " + followee.getName() + ".");
- }
- }
- public void post(Integer userId, String content) {
- User user = users.get(userId);
- if (user != null) {
- user.post(content);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment