Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.HashSet;
- import java.util.Scanner;
- import java.util.Set;
- public class FacebookUser extends UserAccount implements Serializable {
- private static final long serialVersionUID = 42L;
- private String passwordHint;
- private ArrayList<FacebookUser> friends;
- public FacebookUser(String username, String password) {
- super(username, password);
- friends = new ArrayList<FacebookUser>();
- }
- @Override
- public void getPasswordHelp() {
- System.out.println("Password Hint: " + passwordHint);
- }
- public void getPasswordHelp(String username) {
- if (friends.size() == 0) {
- System.out.println("There is no user with that username.");
- } else {
- for (int i = 0; i < friends.size(); i++) {
- if (friends.get(i).toString().equals(username)) {
- friends.get(i).getPasswordHelp();
- break;
- }
- if (i == friends.size() - 1) {
- System.out.println("There is no user with that username.");
- break;
- }
- }
- }
- }
- void setPasswordHint(String hint) {
- passwordHint = hint;
- }
- void friend(String username1, String password) {
- Scanner s = new Scanner(System.in);
- String username2;
- if (friends.size() == 0) {
- System.out.println("That user does not exist.");
- } else {
- mainloop:
- for (int i = 0; i < friends.size(); i++) {
- if (friends.get(i).toString().equals(username1)) {
- if (friends.get(i).getPassword().equals(password)) {
- System.out.println("Username of user to add: ");
- username2 = s.nextLine();
- if (username2.equals(friends.get(i).toString())) {
- System.out.println("Users cannot add themsleves as their own friend.");
- break;
- }
- for (int j = 0; j < friends.size(); j++) {
- if (username2.equals(friends.get(j).toString())) {
- friends.get(i).friend(friends.get(j));
- break mainloop;
- }
- if (!username2.equals(friends.get(j).toString()) && j == friends.size() - 1) {
- System.out.println("That user does not exist.");
- break mainloop;
- }
- }
- } else {
- System.out.println("Incorrect Password");
- break;
- }
- } else if (!friends.get(i).toString().equals(username1) && i == friends.size() - 1) {
- System.out.println("That user does not exist.");
- }
- }
- }
- }
- void defriend(String username1, String password) {
- Scanner s = new Scanner(System.in);
- String username2;
- if (friends.size() == 0) {
- System.out.println("That user does not exist.");
- } else {
- mainloop:
- for (int i = 0; i < friends.size(); i++) {
- if (friends.get(i).toString().equals(username1)) {
- if (friends.get(i).getPassword().equals(password)) {
- System.out.println("Username of user to defriend: ");
- username2 = s.nextLine();
- if (friends.get(i).friends.size() == 0) {
- System.out.println("That person's friends list is empty.");
- break;
- } else {
- for (int j = 0; j < friends.get(i).friends.size(); j++) {
- if (friends.get(i).friends.get(j).toString().equals(username2)) {
- friends.get(i).friends.remove(j);
- break mainloop;
- } else if (!friends.get(i).friends.get(j).toString().equals(username2) && j == friends.get(i).friends.size() - 1) {
- System.out.println("That person is not in the users friends list");
- break mainloop;
- }
- }
- }
- } else {
- System.out.println("Incorrect Password");
- break;
- }
- } else if (!friends.get(i).toString().equals(username1) && i == friends.size() - 1) {
- System.out.println("That user does not exist.");
- }
- }
- }
- }
- void listFriends(String username1, String password) {
- if (friends.size() == 0) {
- System.out.println("That user does not exist.");
- } else {
- for (int i = 0; i < friends.size(); i++) {
- if (friends.get(i).toString().equals(username1)) {
- if (friends.get(i).getPassword().equals(password)) {
- System.out.println(friends.get(i).getFriends());
- break;
- } else {
- System.out.println("Incorrect Password");
- break;
- }
- } else if (!friends.get(i).toString().equals(username1) && i == friends.size() - 1) {
- System.out.println("That user does not exist.");
- }
- }
- }
- }
- private void friend(FacebookUser facebookUser) {
- friends.add(facebookUser);
- }
- void friend(String username) {
- Scanner s = new Scanner(System.in);
- if (friends.size() == 0) {
- System.out.println("Please create a password: ");
- String password = s.nextLine();
- System.out.println("Please create a password hint: ");
- String passHint = s.nextLine();
- FacebookUser fbu = new FacebookUser(username, password);
- fbu.setPasswordHint(passHint);
- friends.add(fbu);
- } else {
- for (int i = 0; i < friends.size(); i++) {
- if (friends.get(i).toString().equals(username)) {
- System.out.println("That person is already your friend.");
- break;
- }
- if (i == friends.size() - 1) {
- System.out.println("Please create a password: ");
- String password = s.nextLine();
- System.out.println("Please create a password hint: ");
- String passHint = s.nextLine();
- FacebookUser fbu = new FacebookUser(username, password);
- fbu.setPasswordHint(passHint);
- friends.add(fbu);
- break;
- }
- }
- }
- }
- void defriend(FacebookUser formerFriend) {
- if (friends.contains(formerFriend)) {
- friends.remove(formerFriend);
- } else {
- System.out.println("That person is not your friend.");
- }
- }
- void defriend(String username) {
- Scanner s = new Scanner(System.in);
- if (friends.size() == 0) {
- System.out.println("That person is not your friend.");
- } else {
- for (int i = 0; i < friends.size(); i++) {
- if (friends.get(i).toString().equals(username)) {
- System.out.println("Password for " + username + ": ");
- String passw = s.nextLine();
- if (friends.get(i).getPassword().equals(passw)) {
- friends.remove(i);
- break;
- } else {
- System.out.println("Incorrect Password");
- break;
- }
- }
- if (i == friends.size() - 1) {
- System.out.println("That person is not your friend.");
- break;
- }
- }
- }
- }
- ArrayList<FacebookUser> getRecommendations(String username) {
- ArrayList<FacebookUser> recoFriends = new ArrayList<FacebookUser>();
- Set<FacebookUser> set = new HashSet<FacebookUser>();
- if (friends.size() == 0) {
- System.out.println("That user does not exist.");
- } else {
- for (int i = 0; i < friends.size(); i++) {
- if (friends.get(i).toString().equals(username)) {
- if (friends.get(i).friends.size() == 0) {
- System.out.println("That user has no friends to use to find recommendations.");
- break;
- }
- recoFriends.addAll(friends.get(i).friends);
- for (int j = 0; j < friends.get(i).friends.size(); j++) {
- if (recoFriends.size() > 1) {
- set.addAll(recoFriends);
- recoFriends.clear();
- recoFriends.addAll(set);
- }
- friends.get(i).friends.get(j).friend(friends.get(i).friends.get(j));
- recoFriends.addAll(friends.get(i).friends.get(j).getRecommendations(friends.get(i).friends.get(j).toString()));
- }
- }
- if (!friends.get(i).toString().equals(username) && i == friends.size() - 1) {
- System.out.println("That user does not exist..");
- break;
- }
- }
- }
- return recoFriends;
- }
- ArrayList<FacebookUser> getFriends() {
- ArrayList<FacebookUser> friendsCopy = new ArrayList<FacebookUser>();
- for (int i = 0; i < friends.size(); i++) {
- friendsCopy.add(friends.get(i));
- }
- Collections.sort(friendsCopy, new Comparator<FacebookUser>() {
- @Override
- public int compare(FacebookUser fb1, FacebookUser fb2) {
- return fb1.toString().compareToIgnoreCase(fb2.toString());
- }
- });
- return friendsCopy;
- }
- public static void writeToFile(FacebookUser facebookUser) throws IOException {
- ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("FacebookUser.bin"));
- oos.writeObject(facebookUser); // This saves the data.
- }
- public static FacebookUser readFile() throws IOException, ClassNotFoundException {
- ObjectInputStream ois = new ObjectInputStream(new FileInputStream("FacebookUser.bin"));
- FacebookUser facebookUser = (FacebookUser) ois.readObject();
- return facebookUser;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement