Advertisement
Guest User

Untitled

a guest
Feb 12th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.56 KB | None | 0 0
  1. import java.io.FileInputStream;
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. import java.io.ObjectInputStream;
  5. import java.io.ObjectOutputStream;
  6. import java.io.Serializable;
  7. import java.util.ArrayList;
  8. import java.util.Collections;
  9. import java.util.Comparator;
  10. import java.util.HashSet;
  11. import java.util.Scanner;
  12. import java.util.Set;
  13.  
  14. public class FacebookUser extends UserAccount implements Serializable {
  15. private static final long serialVersionUID = 42L;
  16. private String passwordHint;
  17. private ArrayList<FacebookUser> friends;
  18.  
  19. public FacebookUser(String username, String password) {
  20. super(username, password);
  21. friends = new ArrayList<FacebookUser>();
  22. }
  23.  
  24. @Override
  25. public void getPasswordHelp() {
  26. System.out.println("Password Hint: " + passwordHint);
  27. }
  28.  
  29. public void getPasswordHelp(String username) {
  30. if (friends.size() == 0) {
  31. System.out.println("There is no user with that username.");
  32. } else {
  33. for (int i = 0; i < friends.size(); i++) {
  34. if (friends.get(i).toString().equals(username)) {
  35. friends.get(i).getPasswordHelp();
  36. break;
  37. }
  38. if (i == friends.size() - 1) {
  39. System.out.println("There is no user with that username.");
  40. break;
  41. }
  42. }
  43. }
  44. }
  45.  
  46. void setPasswordHint(String hint) {
  47. passwordHint = hint;
  48. }
  49.  
  50. void friend(String username1, String password) {
  51. Scanner s = new Scanner(System.in);
  52. String username2;
  53. if (friends.size() == 0) {
  54. System.out.println("That user does not exist.");
  55. } else {
  56. mainloop:
  57. for (int i = 0; i < friends.size(); i++) {
  58. if (friends.get(i).toString().equals(username1)) {
  59. if (friends.get(i).getPassword().equals(password)) {
  60. System.out.println("Username of user to add: ");
  61. username2 = s.nextLine();
  62. if (username2.equals(friends.get(i).toString())) {
  63. System.out.println("Users cannot add themsleves as their own friend.");
  64. break;
  65. }
  66. for (int j = 0; j < friends.size(); j++) {
  67. if (username2.equals(friends.get(j).toString())) {
  68. friends.get(i).friend(friends.get(j));
  69. break mainloop;
  70. }
  71. if (!username2.equals(friends.get(j).toString()) && j == friends.size() - 1) {
  72. System.out.println("That user does not exist.");
  73. break mainloop;
  74. }
  75. }
  76. } else {
  77. System.out.println("Incorrect Password");
  78. break;
  79. }
  80. } else if (!friends.get(i).toString().equals(username1) && i == friends.size() - 1) {
  81. System.out.println("That user does not exist.");
  82. }
  83. }
  84. }
  85. }
  86.  
  87. void defriend(String username1, String password) {
  88. Scanner s = new Scanner(System.in);
  89. String username2;
  90. if (friends.size() == 0) {
  91. System.out.println("That user does not exist.");
  92. } else {
  93. mainloop:
  94. for (int i = 0; i < friends.size(); i++) {
  95. if (friends.get(i).toString().equals(username1)) {
  96. if (friends.get(i).getPassword().equals(password)) {
  97. System.out.println("Username of user to defriend: ");
  98. username2 = s.nextLine();
  99. if (friends.get(i).friends.size() == 0) {
  100. System.out.println("That person's friends list is empty.");
  101. break;
  102. } else {
  103. for (int j = 0; j < friends.get(i).friends.size(); j++) {
  104. if (friends.get(i).friends.get(j).toString().equals(username2)) {
  105. friends.get(i).friends.remove(j);
  106. break mainloop;
  107. } else if (!friends.get(i).friends.get(j).toString().equals(username2) && j == friends.get(i).friends.size() - 1) {
  108. System.out.println("That person is not in the users friends list");
  109. break mainloop;
  110. }
  111. }
  112. }
  113. } else {
  114. System.out.println("Incorrect Password");
  115. break;
  116. }
  117. } else if (!friends.get(i).toString().equals(username1) && i == friends.size() - 1) {
  118. System.out.println("That user does not exist.");
  119. }
  120. }
  121. }
  122. }
  123.  
  124. void listFriends(String username1, String password) {
  125. if (friends.size() == 0) {
  126. System.out.println("That user does not exist.");
  127. } else {
  128. for (int i = 0; i < friends.size(); i++) {
  129. if (friends.get(i).toString().equals(username1)) {
  130. if (friends.get(i).getPassword().equals(password)) {
  131. System.out.println(friends.get(i).getFriends());
  132. break;
  133. } else {
  134. System.out.println("Incorrect Password");
  135. break;
  136. }
  137. } else if (!friends.get(i).toString().equals(username1) && i == friends.size() - 1) {
  138. System.out.println("That user does not exist.");
  139. }
  140. }
  141. }
  142. }
  143.  
  144. private void friend(FacebookUser facebookUser) {
  145. friends.add(facebookUser);
  146. }
  147.  
  148. void friend(String username) {
  149. Scanner s = new Scanner(System.in);
  150. if (friends.size() == 0) {
  151. System.out.println("Please create a password: ");
  152. String password = s.nextLine();
  153. System.out.println("Please create a password hint: ");
  154. String passHint = s.nextLine();
  155. FacebookUser fbu = new FacebookUser(username, password);
  156. fbu.setPasswordHint(passHint);
  157. friends.add(fbu);
  158. } else {
  159. for (int i = 0; i < friends.size(); i++) {
  160. if (friends.get(i).toString().equals(username)) {
  161. System.out.println("That person is already your friend.");
  162. break;
  163. }
  164. if (i == friends.size() - 1) {
  165. System.out.println("Please create a password: ");
  166. String password = s.nextLine();
  167. System.out.println("Please create a password hint: ");
  168. String passHint = s.nextLine();
  169. FacebookUser fbu = new FacebookUser(username, password);
  170. fbu.setPasswordHint(passHint);
  171. friends.add(fbu);
  172. break;
  173. }
  174. }
  175. }
  176. }
  177.  
  178. void defriend(FacebookUser formerFriend) {
  179. if (friends.contains(formerFriend)) {
  180. friends.remove(formerFriend);
  181. } else {
  182. System.out.println("That person is not your friend.");
  183. }
  184.  
  185. }
  186.  
  187. void defriend(String username) {
  188. Scanner s = new Scanner(System.in);
  189. if (friends.size() == 0) {
  190. System.out.println("That person is not your friend.");
  191. } else {
  192. for (int i = 0; i < friends.size(); i++) {
  193. if (friends.get(i).toString().equals(username)) {
  194. System.out.println("Password for " + username + ": ");
  195. String passw = s.nextLine();
  196. if (friends.get(i).getPassword().equals(passw)) {
  197. friends.remove(i);
  198. break;
  199. } else {
  200. System.out.println("Incorrect Password");
  201. break;
  202. }
  203. }
  204. if (i == friends.size() - 1) {
  205. System.out.println("That person is not your friend.");
  206. break;
  207. }
  208. }
  209. }
  210. }
  211.  
  212. ArrayList<FacebookUser> getRecommendations(String username) {
  213. ArrayList<FacebookUser> recoFriends = new ArrayList<FacebookUser>();
  214. Set<FacebookUser> set = new HashSet<FacebookUser>();
  215. if (friends.size() == 0) {
  216. System.out.println("That user does not exist.");
  217. } else {
  218. for (int i = 0; i < friends.size(); i++) {
  219. if (friends.get(i).toString().equals(username)) {
  220. if (friends.get(i).friends.size() == 0) {
  221. System.out.println("That user has no friends to use to find recommendations.");
  222. break;
  223. }
  224. recoFriends.addAll(friends.get(i).friends);
  225. for (int j = 0; j < friends.get(i).friends.size(); j++) {
  226. if (recoFriends.size() > 1) {
  227. set.addAll(recoFriends);
  228. recoFriends.clear();
  229. recoFriends.addAll(set);
  230. }
  231. friends.get(i).friends.get(j).friend(friends.get(i).friends.get(j));
  232. recoFriends.addAll(friends.get(i).friends.get(j).getRecommendations(friends.get(i).friends.get(j).toString()));
  233.  
  234. }
  235. }
  236. if (!friends.get(i).toString().equals(username) && i == friends.size() - 1) {
  237. System.out.println("That user does not exist..");
  238. break;
  239. }
  240. }
  241. }
  242.  
  243.  
  244. return recoFriends;
  245. }
  246.  
  247. ArrayList<FacebookUser> getFriends() {
  248. ArrayList<FacebookUser> friendsCopy = new ArrayList<FacebookUser>();
  249. for (int i = 0; i < friends.size(); i++) {
  250. friendsCopy.add(friends.get(i));
  251. }
  252. Collections.sort(friendsCopy, new Comparator<FacebookUser>() {
  253. @Override
  254. public int compare(FacebookUser fb1, FacebookUser fb2) {
  255. return fb1.toString().compareToIgnoreCase(fb2.toString());
  256. }
  257. });
  258. return friendsCopy;
  259. }
  260.  
  261. public static void writeToFile(FacebookUser facebookUser) throws IOException {
  262. ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("FacebookUser.bin"));
  263. oos.writeObject(facebookUser); // This saves the data.
  264. }
  265.  
  266. public static FacebookUser readFile() throws IOException, ClassNotFoundException {
  267. ObjectInputStream ois = new ObjectInputStream(new FileInputStream("FacebookUser.bin"));
  268. FacebookUser facebookUser = (FacebookUser) ois.readObject();
  269. return facebookUser;
  270. }
  271.  
  272. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement