public static void main(String[] args) {
    String host = args[0];
    int port = Integer.parseInt(args[1]);
    long id = Long.parseLong(args[2]);
    String character = args[3];
    long actorId = Long.parseLong(args[4]);

    // Install an RMISecurityManager, if there is not a
    // SecurityManager already installed
    if (System.getSecurityManager() == null) {
      System.setSecurityManager(new RMISecurityManager());
    }

    String name = "rmi://" + host + ":" + port + "/MovieDatabase";

    try {
      MovieDatabase db = (MovieDatabase) Naming.lookup(name);
      db.noteCharacter(id, character, actorId);

      Movie movie = db.getMovie(id);
      out.println(movie.getTitle());
      for (Map.Entry entry : movie.getCharacters().entrySet()) {
        out.println("  " + entry.getKey() + "\t" + entry.getValue());
      }

    } catch (RemoteException | NotBoundException | MalformedURLException ex) {
      ex.printStackTrace(System.err);
    }
  }
예제 #2
0
 public ArrayList<Rating> getAverageRatingsByFilter(int minimalRaters, Filter filter) {
   ArrayList<Rating> ratings = new ArrayList<Rating>();
   ArrayList<String> movies = MovieDatabase.filterBy(filter); // it pass all movie.
   for (String movieID : movies) {
     double average = getAverageByID(movieID, minimalRaters);
     if (average == 0.0) continue;
     ratings.add(new Rating(movieID, average));
   }
   return ratings;
 }
예제 #3
0
 /*
 	Pass all candidate that is no earlier than myYear
 */
 @Override
 public boolean satisfies(String id) {
   return MovieDatabase.getYear(id) >= myYear;
 }