public static void addMovieReview(User user, Movie movie) { Scanner sc = new Scanner(System.in); int i = 0; double newRating = 0; MovieSerializer movieSerializer = new MovieSerializer(); UserSerializer userSerializer = new UserSerializer(); MovieReview reviewForThisMovie = new MovieReview(); if (user.getMovieReviewedByUser() != null) { while (i < user.getMovieReviewedByUser().size()) { if (user.getMovieReviewedByUser().get(i).getMovieName().equals(movie.getMovieTitle())) { System.out.println("You have rated this movie."); user.getMovieReviewedByUser().get(i).print(); System.out.println("Do you want to modify the review? (Y/N)"); if (UserApp.YN()) { modifyReview(user, i); return; } else return; } else i++; } } reviewForThisMovie.setMovieName(movie.getMovieTitle()); reviewForThisMovie.setReviewer(user.getUserName()); while ((newRating > 5) || (newRating < 1)) { System.out.print("Rating(1 - 5 [best]): "); newRating = sc.nextInt(); if ((newRating > 5) || (newRating < 1)) System.out.println("You can only give a rating between 1 to 5!"); } reviewForThisMovie.setRating(newRating); System.out.print("Review: "); sc.nextLine(); reviewForThisMovie.setReview(sc.nextLine()); movie.addReviewForThisMovie(reviewForThisMovie); user.getMovieReviewedByUser().add(reviewForThisMovie); movieSerializer.serializeMovie(movie); userSerializer.serializeUser(user); return; }
public static void modifyReview(User user, int index) { Scanner sc = new Scanner(System.in); UserSerializer userSerializer = new UserSerializer(); MovieSerializer movieSerializer = new MovieSerializer(); int choice = -1, i = user.getMovieReviewedByUser().size() - 1 - index, newRating = 0; Movie movie = movieSerializer.deSerializeMovie(user.getMovieReviewedByUser().get(i).getMovieName()); String newReview; int movieReviewIndex; for (movieReviewIndex = 0; movieReviewIndex < movie.getReviewForThisMovie().size(); movieReviewIndex++) if (movie .getReviewForThisMovie() .get(movieReviewIndex) .getReviewer() .equals(user.getUserName())) break; System.out.println("\n===== Modify Rating =====\n"); System.out.println("Review " + index); user.getMovieReviewedByUser().get(i).print(); while (choice != 0) { System.out.println("\n1: Edit review"); System.out.println("2: Edit rating"); System.out.println("3: Remove Rating"); System.out.println("0: Back to previous page"); System.out.println("What do you want to do?"); choice = sc.nextInt(); switch (choice) { case 1: System.out.print("Review: "); newReview = sc.next(); user.getMovieReviewedByUser().get(i).setReview(newReview); ; movie.getReviewForThisMovie().get(movieReviewIndex).setReview(newReview); System.out.println("The review is changed successfully."); break; case 2: while ((newRating > 5) || (newRating < 1)) { System.out.print("Rating(1 - 5 [best]): "); newRating = sc.nextInt(); if ((newRating > 5) || (newRating < 1)) System.out.println("You can only give a rating between 1 to 5!"); } user.getMovieReviewedByUser().get(i).setRating(newRating); movie.getReviewForThisMovie().get(movieReviewIndex).setRating(newRating); System.out.println("The rating is changed successfully."); break; case 3: System.out.println("Are you sure you want to remove this rating? (Y/N)"); if (UserApp.YN()) { movie.getReviewForThisMovie().remove(user.getMovieReviewedByUser().get(i)); user.getMovieReviewedByUser().remove(i); break; } else break; case 0: break; default: System.out.println("Please input a valid option!"); break; } } userSerializer.serializeUser(user); movieSerializer.serializeMovie(movie); }