public static void main(String[] args) throws Exception{
        NameGenerator nGen = new NameGenerator();
        List<Pair<String, String>> actors = new ArrayList<>();
        List<Pair<String, String>> directors = new ArrayList<>();

        int ratingLength = ratingEnumerators.length;
        int categoryLength = categoryEnumerators.length;

        for(int i = 0 ; i < ACTOR_NUM ; i++){
            Pair<String, String> p = new Pair<>(nGen.getName(), nGen.getName());
            actors.add(p);
        }

        for(int i = 0 ; i < DIREC_NUM ; i++){
            Pair<String, String> p = new Pair<>(nGen.getName(), nGen.getName());
            directors.add(p);
        }

        try(BufferedReader br = new BufferedReader(new FileReader(args[0]))) {
            for(String line; (line = br.readLine()) != null; ) {
                String[] movieInf = line.split("\\|");
                String rating = ratingEnumerators[getRandNumBetween(0, ratingLength - 1)].toString();
                String category = categoryEnumerators[getRandNumBetween(0, categoryLength - 1)].toString();
                int availableCopies = getRandNumBetween(MIN_AVAILABLE_COPIES, MAX_AVAILABLE_COPIES);
                float price = getRandNumBetween(MIN_PRICE, MAX_PRICE);
                int numOfActors = getRandNumBetween(MIN_ACTORS, MAX_ACTORS);
                int numOfDirector = getRandNumBetween(MIN_DIRECTORS, MAX_DIRECTORS);
                List<Pair<String, String>> actorsForMovie = new ArrayList<>();
                List<Pair<String, String>> directorsForMovie = new ArrayList<>();

                for(int i = 0 ; i < numOfActors ; i++){
                    Pair<String, String> actor;
                    do{
                        actor = actors.get(getRandNumBetween(0, ACTOR_NUM - 1));
                    }
                    while(actorsForMovie.contains(actor));
                    actorsForMovie.add(actor);
                }

                for(int i = 0 ; i < numOfDirector ; i++){
                    Pair<String, String> director;
                    do{
                        director = directors.get(getRandNumBetween(0, DIREC_NUM - 1));
                    }
                    while(directorsForMovie.contains(director));
                    directorsForMovie.add(director);
                }
                
                int b = ManagerProcedures.insertMovie(movieInf[0], Integer.parseInt(movieInf[1]), rating, category, 
                                                          availableCopies, price, actorsForMovie, directorsForMovie);
                System.out.println(b);
            }
        }
        catch(IOException ex){
            ex.printStackTrace();
        }
    }