Untitled
unknown
plain_text
2 years ago
9.2 kB
6
Indexable
package assignment3; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; public class SocialMedia { private List<User> users; private List<Post> posts; public SocialMedia() { users = new ArrayList<>(); posts = new ArrayList<>(); } public void addUser(User user) { users.add(user); } public void addPost(Post post) { posts.add(post); } } class User { private String username; private List<User> followers; private List<User> following; private List<Post> posts; private List<Comment> comments; public User(String username) { this.username = username; followers = new ArrayList<>(); following = new ArrayList<>(); posts = new ArrayList<>(); comments = new ArrayList<>(); } public String getUsername() { return username; } public void createPost(String text) { Post post = new Post(text, this); posts.add(post); } public void followUser(User user) { following.add(user); user.followers.add(this); } public void likePost(Post post) { post.addLike(this); } public void commentOnPost(Post post, String text) { Comment comment = new Comment(text, this, post); post.addComment(comment); comments.add(comment); } public List<Post> getPosts() { return posts; } public List<User> getFollowers() { return followers; } public List<User> getFollowing() { return following; } public List<Comment> getComments() { return comments; } } class PremiumUser extends User { private boolean isPremium; private int premiumPoints; public PremiumUser(String username) { super(username); isPremium = false; premiumPoints = 0; } public void subscribePremium() { isPremium = true; System.out.println(getUsername() + " has subscribed to premium membership."); } public boolean isPremium() { return isPremium; } public int getPremiumPoints() { return premiumPoints; } public void earnPremiumPoints(int points) { premiumPoints += points; System.out.println(getUsername() + " has earned " + points + " premium points."); } public void redeemPremiumPoints(int points) { if (points <= premiumPoints) { premiumPoints -= points; System.out.println(getUsername() + " has redeemed " + points + " premium points."); } else { System.out.println("Insufficient premium points to redeem."); } } } class Post { private String text; private User author; private List<User> likes; private List<Comment> comments; public Post(String text, User author) { this.text = text; this.author = author; likes = new ArrayList<>(); comments = new ArrayList<>(); } public void addLike(User user) { likes.add(user); } public void addComment(Comment comment) { comments.add(comment); } public String getText() { return text; } public User getAuthor() { return author; } public List<User> getLikes() { return likes; } public List<Comment> getComments() { return comments; } } class Comment { private String text; private User author; private Post post; public Comment(String text, User author, Post post) { this.text = text; this.author = author; this.post = post; } public String getText() { return text; } public User getAuthor() { return author; } public Post getPost() { return post; } } class Advertisement { private String content; public Advertisement(String content) { this.content = content; } public void displayAd() { System.out.println("Displaying ad: " + content); } } public class Main { public static void main(String[] args) { // Creating social media instance SocialMedia socialMedia = new SocialMedia(); // Creating users User user1 = new User("Fawaz"); PremiumUser user2 = new PremiumUser("Rehel"); User user3 = new User("Sarah"); // Adding users to social media socialMedia.addUser(user1); socialMedia.addUser(user2); socialMedia.addUser(user3); // User actions user1.createPost("Hello, everyone!"); if (user2.getPosts().size() > 0) { user1.likePost(user2.getPosts().get(0)); // John likes Emily's post user1.commentOnPost(user2.getPosts().get(0), "Great post, Emily!"); // John comments on Emily's post } user2.subscribePremium(); user2.createPost("I love this social media platform!"); if (user3.getPosts().size() > 0) { user1.likePost(user3.getPosts().get(0)); // John likes Sarah's post user2.commentOnPost(user3.getPosts().get(0), "I enjoy using it a lot!!"); // Emily comments on Sarah's post } user3.createPost("Good morning, World!"); if (user2.getPosts().size() > 0) { user3.likePost(user2.getPosts().get(0)); // Sarah likes Emily's post user2.commentOnPost(user2.getPosts().get(0), "This platform is amazing!"); // Emily comments on her own post } // Adding likes and comments to User 1's post if (user1.getPosts().size() > 0) { user2.likePost(user1.getPosts().get(0)); // Emily likes John's post user3.likePost(user1.getPosts().get(0)); // Sarah likes John's post user2.commentOnPost(user1.getPosts().get(0), "Nice to see you, John!"); // Emily comments on John's post } // Adding likes and comments to User 3's post if (user3.getPosts().size() > 0) { user1.likePost(user3.getPosts().get(0)); // John likes Sarah's post user2.commentOnPost(user3.getPosts().get(0), "Have a great day!"); // Emily comments on Sarah's post user1.likePost(user3.getPosts().get(0)); // John likes Sarah's post user1.commentOnPost(user3.getPosts().get(0), "Goodmorning , Sarah."); // John comments on Sarah's post } // Creating advertisements Advertisement ad1 = new Advertisement("Check out our new product!"); Advertisement ad2 = new Advertisement("Get 50% off on all items!"); // Displaying advertisements System.out.println("Advertisements:"); ad1.displayAd(); ad2.displayAd(); // Displaying user data System.out.println("User 1 Posts:"); List<Post> user1Posts = user1.getPosts(); for (Post post : user1Posts) { System.out.println("- " + post.getText()); System.out.println(" Author: " + post.getAuthor().getUsername()); System.out.println(" Likes: " + post.getLikes().size()); System.out.println(" Comments:"); List<Comment> comments = post.getComments(); for (Comment comment : comments) { System.out.println(" - " + comment.getText()); System.out.println(" Author: " + comment.getAuthor().getUsername()); } System.out.println(); } System.out.println("User 2 Posts:"); List<Post> user2Posts = user2.getPosts(); for (Post post : user2Posts) { System.out.println("- " + post.getText()); System.out.println(" Author: " + post.getAuthor().getUsername()); System.out.println(" Likes: " + post.getLikes().size()); System.out.println(" Comments:"); List<Comment> comments = post.getComments(); for (Comment comment : comments) { System.out.println(" - " + comment.getText()); System.out.println(" Author: " + comment.getAuthor().getUsername()); } System.out.println(); } System.out.println("User 3 Posts:"); List<Post> user3Posts = user3.getPosts(); for (Post post : user3Posts) { System.out.println("- " + post.getText()); System.out.println(" Author: " + post.getAuthor().getUsername()); System.out.println(" Likes: " + post.getLikes().size()); System.out.println(" Comments:"); List<Comment> comments = post.getComments(); for (Comment comment : comments) { System.out.println(" - " + comment.getText()); System.out.println(" Author: " + comment.getAuthor().getUsername()); } System.out.println(); } } }
Editor is loading...