/**
  * called to let us know we have processed all the META-INF entries, and if we re-read one of
  * them, don't re-process it. Also gets rid of any data structures we needed when parsing META-INF
  * entries.
  */
 void doneWithMeta() {
   parsingMeta = false;
   anyToVerify = !sigFileSigners.isEmpty();
   baos = null;
   sigFileData = null;
   pendingBlocks = null;
   signerCache = null;
   manDig = null;
   // MANIFEST.MF is always treated as signed and verified,
   // move its signers from sigFileSigners to verifiedSigners.
   if (sigFileSigners.containsKey(JarFile.MANIFEST_NAME)) {
     verifiedSigners.put(JarFile.MANIFEST_NAME, sigFileSigners.remove(JarFile.MANIFEST_NAME));
   }
 }
Example #2
0
  public static void main(String[] args) {
    num_users = 0;
    int movie_number = 0;
    MINSUP = Double.parseDouble(args[1]);
    MINCONF = Double.parseDouble(args[3]);
    MAXMOVIES = Integer.parseInt(args[5]);
    String test_raw = args[6];
    test = "";
    test = test_raw.substring(1);
    if (test.equals("comb")) {
      go_to = true;
    }

    if ((MINSUP < 0 || MINSUP > 100)
        || (MINCONF < 0 || MINCONF > 100)
        || MAXMOVIES < 0
        || test == null) {
      System.out.println("Input variables aren't correct!");
      System.exit(0);
    }
    ArrayList<User> users = new ArrayList<User>(Collections.nCopies(945, blank));
    int[] user_exists = new int[945];
    try {
      FileInputStream fstream = new FileInputStream("src/u.data"); // location of file in eclipse
      DataInputStream in = new DataInputStream(fstream);
      BufferedReader br = new BufferedReader(new InputStreamReader(in));
      String strLine;
      while ((strLine = br.readLine()) != null) {
        StringTokenizer tok = new StringTokenizer(strLine);
        String ID = tok.nextToken();
        int userID = Integer.parseInt(ID);
        String MID = tok.nextToken();
        int movieID = Integer.parseInt(MID);
        String RANK = tok.nextToken();
        int movieRating = Integer.parseInt(RANK);
        Movie current_movie = new Movie(movieID, movieRating);

        if (user_exists[userID] == 0) {
          num_users++;
          users.set(userID, new User(userID, movieID, movieRating));
          user_exists[userID] = 1;
        } else {
          users.get(userID).movies.add(current_movie);
        }
      }

      in.close();
    } catch (Exception e) {
      if (e.getMessage() != null) {
        System.err.println("Error: " + e.getMessage());
      }
    }
    try {
      FileInputStream fstream = new FileInputStream("src/u.item"); // location of file in eclipse
      DataInputStream in = new DataInputStream(fstream);
      BufferedReader br = new BufferedReader(new InputStreamReader(in));
      String strLine;
      while ((strLine = br.readLine()) != null) {
        movie_number++;
        StringTokenizer tok = new StringTokenizer(strLine, "|");
        String number = tok.nextToken();
        int movieNumber = Integer.parseInt(number);
        String movieName = tok.nextToken();
        for (int i = 0; i < users.size(); i++) {
          for (int j = 0; j < users.get(i).movies.size(); j++) {
            if (users.get(i).movies.get(j).movieID == movieNumber) {
              users.get(i).movies.get(j).setName(movieName);
            }
          }
        }
      }

      in.close();
    } catch (Exception j) {
      System.err.println("Error: " + j.getMessage());
    }

    // System.out.println("Num users is "+num_users);
    if (test.equals("pos")) {
      for (int user_num = 1; user_num < num_users + 1; user_num++) {
        for (int usermovies = 0; usermovies < users.get(user_num).movies.size(); usermovies++) {
          if (users.get(user_num).movies.get(usermovies).ranking <= 3) {
            users.get(user_num).movies.remove(usermovies);
            usermovies--;
          }
        }
      }
      MINSUP *= num_users;
      MINCONF *= 10;
      System.out.println(MINSUP);
      System.out.println(MINCONF);
      ArrayList<Movie> users_movies = new ArrayList<Movie>();
      Hashtable table = new Hashtable();
      Hashtable master_table = new Hashtable();
      for (int i = 1; i <= num_users; i++) {
        for (int k = 0; k < users.get(i).movies.size(); k++) {
          ArrayList<Integer> add = new ArrayList<Integer>();
          add.add(users.get(i).movies.get(k).movieID);
          // System.out.println(users.get(i).movies.get(k).movieID+ " is the current movie from user
          // "+i);

          // if(users.get(i).movies.get(k).ranking>3){
          if (table.containsKey(add)) {
            int table_value = (Integer) table.get(add);
            table_value++;
            table.put(add, table_value);
            // System.out.println("added 1 to the existing");
          } else {
            table.put(add, 1);
            // System.out.println("added a new");
          }
          // }
        }
      }
      System.out.println(table);
      Iterator final_iter = table.keySet().iterator();
      while (final_iter.hasNext()) {
        ArrayList<Integer> next = (ArrayList<Integer>) final_iter.next();
        // System.out.println(t.get(next));
        // System.out.println(MINSUP);
        if ((Integer) table.get(next) < MINSUP) {
          // System.out.println("hi");
          final_iter.remove();
        }
      }
      // System.out.println(table);
      master_table.putAll(table);
      // System.out.println(master_table);
      for (int i = 2; i <= MAXMOVIES; i++) {
        table = find_combos(table, users, i);
        // System.out.println("table generated is "+table);
        if (!table.isEmpty()) {
          master_table.putAll(table);
        }
        // System.out.println(master_table);
      }
      // System.out.println(master_table+" is before print_up");
      printup(master_table);
    }
    if (test.equals("neg")) {
      for (int user_num = 1; user_num < num_users + 1; user_num++) {
        for (int usermovies = 0; usermovies < users.get(user_num).movies.size(); usermovies++) {
          if (users.get(user_num).movies.get(usermovies).ranking >= 3) {
            users.get(user_num).movies.remove(usermovies);
            usermovies--;
          }
        }
      }
      MINSUP *= num_users;
      MINCONF *= 10;
      ArrayList<Movie> users_movies = new ArrayList<Movie>();
      Hashtable table = new Hashtable();
      Hashtable master_table = new Hashtable();
      for (int i = 1; i <= num_users; i++) {
        for (int k = 0; k < users.get(i).movies.size(); k++) {
          ArrayList<Integer> add = new ArrayList<Integer>();
          add.add(users.get(i).movies.get(k).movieID);
          // System.out.println(users.get(i).movies.get(k).movieID+ " is the current movie from user
          // "+i);

          // if(users.get(i).movies.get(k).ranking>3){
          if (table.containsKey(add)) {
            int table_value = (Integer) table.get(add);
            table_value++;
            table.put(add, table_value);
            // System.out.println("added 1 to the existing");
          } else {
            table.put(add, 1);
            // System.out.println("added a new");
          }
          // }
        }
      }
      // System.out.println(table);
      Iterator final_iter = table.keySet().iterator();
      while (final_iter.hasNext()) {
        ArrayList<Integer> next = (ArrayList<Integer>) final_iter.next();
        // System.out.println(t.get(next));
        // System.out.println(MINSUP);
        if ((Integer) table.get(next) < MINSUP) {
          // System.out.println("hi");
          final_iter.remove();
        }
      }
      // System.out.println(table);
      master_table.putAll(table);
      // System.out.println(master_table);
      for (int i = 2; i <= MAXMOVIES; i++) {
        table = find_combos(table, users, i);
        if (!table.isEmpty()) {
          master_table.putAll(table);
        }
      }
      // System.out.println(master_table+" is before print_up");
      printup(master_table);
    }
    if (test.equals("comb")) {
      for (int user_num = 1; user_num < num_users + 1; user_num++) {
        for (int usermovies = 0; usermovies < users.get(user_num).movies.size(); usermovies++) {
          if (users.get(user_num).movies.get(usermovies).ranking >= 3) {
            users.get(user_num).movies.remove(usermovies);
            usermovies--;
          }
        }
      }
      MINSUP *= num_users;
      MINCONF *= 10;
      ArrayList<Movie> users_movies = new ArrayList<Movie>();
      Hashtable table = new Hashtable();
      Hashtable master_table = new Hashtable();
      for (int i = 1; i <= num_users; i++) {
        for (int k = 0; k < users.get(i).movies.size(); k++) {
          ArrayList<Integer> add = new ArrayList<Integer>();
          add.add(users.get(i).movies.get(k).movieID);
          // System.out.println(users.get(i).movies.get(k).movieID+ " is the current movie from user
          // "+i);

          // if(users.get(i).movies.get(k).ranking>3){
          if (table.containsKey(add)) {
            int table_value = (Integer) table.get(add);
            table_value++;
            table.put(add, table_value);
            // System.out.println("added 1 to the existing");
          } else {
            table.put(add, 1);
            // System.out.println("added a new");
          }
          // }
        }
      }
      // System.out.println(table);
      Iterator final_iter = table.keySet().iterator();
      while (final_iter.hasNext()) {
        ArrayList<Integer> next = (ArrayList<Integer>) final_iter.next();
        // System.out.println(t.get(next));
        // System.out.println(MINSUP);
        if ((Integer) table.get(next) < MINSUP) {
          // System.out.println("hi");
          final_iter.remove();
        }
      }
      // System.out.println(table);
      master_table.putAll(table);
      // System.out.println(master_table);
      for (int i = 2; i <= MAXMOVIES; i++) {
        table = find_combos(table, users, i);
        if (!table.isEmpty()) {
          master_table.putAll(table);
        }
      }
      // System.out.println(master_table+" is before print_up");
      test = "neg";
      printup(master_table);
      test = "comb2";
    }
    if (test.equals("comb2")) {

      users = new ArrayList<User>(Collections.nCopies(945, blank));
      user_exists = new int[945];
      num_users = 0;

      try {
        FileInputStream fstream = new FileInputStream("src/u.data"); // location of file in eclipse
        DataInputStream in = new DataInputStream(fstream);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String strLine;
        while ((strLine = br.readLine()) != null) {
          StringTokenizer tok = new StringTokenizer(strLine);
          String ID = tok.nextToken();
          int userID = Integer.parseInt(ID);
          String MID = tok.nextToken();
          int movieID = Integer.parseInt(MID);
          String RANK = tok.nextToken();
          int movieRating = Integer.parseInt(RANK);
          Movie current_movie = new Movie(movieID, movieRating);

          if (user_exists[userID] == 0) {
            num_users++;
            users.set(userID, new User(userID, movieID, movieRating));
            user_exists[userID] = 1;
          } else {
            users.get(userID).movies.add(current_movie);
          }
        }

        in.close();
      } catch (Exception e) {
        if (e.getMessage() != null) {
          System.err.println("Error: " + e.getMessage());
        }
      }
      try {
        FileInputStream fstream = new FileInputStream("src/u.item"); // location of file in eclipse
        DataInputStream in = new DataInputStream(fstream);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String strLine;
        while ((strLine = br.readLine()) != null) {
          movie_number++;
          StringTokenizer tok = new StringTokenizer(strLine, "|");
          String number = tok.nextToken();
          int movieNumber = Integer.parseInt(number);
          String movieName = tok.nextToken();
          for (int i = 0; i < users.size(); i++) {
            for (int j = 0; j < users.get(i).movies.size(); j++) {
              if (users.get(i).movies.get(j).movieID == movieNumber) {
                users.get(i).movies.get(j).setName(movieName);
              }
            }
          }
        }

        in.close();
      } catch (Exception j) {
        System.err.println("Error: " + j.getMessage());
      }
      for (int user_num = 1; user_num < num_users + 1; user_num++) {
        for (int usermovies = 0; usermovies < users.get(user_num).movies.size(); usermovies++) {
          if (users.get(user_num).movies.get(usermovies).ranking <= 3) {
            users.get(user_num).movies.remove(usermovies);
            usermovies--;
          }
        }
      }

      ArrayList<Movie> users_movies = new ArrayList<Movie>();
      Hashtable table = new Hashtable();
      Hashtable master_table = new Hashtable();
      for (int i = 1; i <= num_users; i++) {
        for (int k = 0; k < users.get(i).movies.size(); k++) {
          ArrayList<Integer> add = new ArrayList<Integer>();
          add.add(users.get(i).movies.get(k).movieID);
          // System.out.println(users.get(i).movies.get(k).movieID+ " is the current movie from user
          // "+i);

          if (table.containsKey(add)) {
            int table_value = (Integer) table.get(add);
            table_value++;
            table.put(add, table_value);
            // System.out.println("added 1 to the existing");
          } else {
            table.put(add, 1);
            // System.out.println("added a new");
          }
          // }
        }
      }
      // System.out.println(table);
      Iterator final_iter = table.keySet().iterator();
      while (final_iter.hasNext()) {
        ArrayList<Integer> next = (ArrayList<Integer>) final_iter.next();
        // System.out.println(t.get(next));
        // System.out.println(MINSUP);
        if ((Integer) table.get(next) < MINSUP) {
          // System.out.println("hi");
          final_iter.remove();
        }
      }
      // System.out.println(table);
      master_table.putAll(table);
      // System.out.println(master_table);
      for (int i = 2; i < MAXMOVIES; i++) {
        table = find_combos(table, users, i);
        if (!table.isEmpty()) {
          master_table.putAll(table);
        }
      }
      // System.out.println(master_table+" is before print_up");
      test = "pos";
      printup(master_table);
    }
  }
Example #3
0
  private void createData(int size, String outputFilename) {
    int command;
    int userId;
    int gameCount = 1;
    Random randomNum = new Random();
    File outputFile = new File(outputFilename);
    PrintWriter writer = null;
    JSONObject jObj = null;
    userIds = new boolean[max_users + 1];
    gameRecord = new Hashtable<Integer, GameInfo>();

    try {
      writer = new PrintWriter(new FileWriter(outputFile));
    } catch (IOException e) {
      System.out.println("Could not create file " + outputFilename);
    }

    writer.write("[\n");

    for (int i = 0; i < size; i++) {
      if (gameRecord.isEmpty()) {
        jObj = createNewUser(gameCount++);
      } else if (gameRecord.size() == max_users) {
        jObj = endGame(gameCount);
      } else {
        command = randomNum.nextInt(14);
        switch (command) {
          case 0:
            jObj = createNewUser(gameCount++);
            break;
          case 1:
          case 2:
          case 3:
          case 4:
          case 5:
          case 6:
          case 7:
          case 8:
            jObj = moveUser(gameCount);
            break;
          case 9:
          case 10:
          case 11:
          case 12:
            jObj = specialMove(gameCount);
            break;
          case 13:
            jObj = endGame(gameCount);
            break;
        }
      }
      printObj(jObj, writer);
      if (i != (size - 1)) {
        writer.write(",\n");
      } else {
        writer.write("\n");
      }
    }
    writer.write("]");
    writer.close();
  }
 /** Teste si l'ensemble est vide. */
 public boolean estVide() {
   return table.isEmpty();
 }