Ver código fonte

finished data parsing

Phil 7 anos atrás
pai
commit
d1c4131ab9

+ 16 - 0
MovieDB/src/data/Actor.java

@@ -2,4 +2,20 @@ package data;
 
 public class Actor {
 
+	private int id;
+	private String name;
+	public int getId() {
+		return id;
+	}
+	public void setId(int id) {
+		this.id = id;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+	
 }

+ 41 - 2
MovieDB/src/data/DataBase.java

@@ -1,21 +1,60 @@
 package data;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 
 public class DataBase {
 
 	private static DataBase instance = new DataBase();
 		
 	private ArrayList<Movie> movies = new ArrayList();
+	private ArrayList<Actor> actors = new ArrayList();
+	private ArrayList<Director> directors = new ArrayList();
+	private ArrayList<User> users = new ArrayList();
+	private HashMap<Integer,Integer> actings = new HashMap<>();
+	private HashMap<Integer,Integer> directings = new HashMap<>();
 	
-	private DataBase() {
+	private DataBase() {}
+	
+	
+		public void addActing(int actorId,int movieId) {
+			actings.put(actorId, movieId);
+		}
 		
-	}
+		public void addDirecting(int dierctorID, int movieId) {
+			directings.put(dierctorID, movieId);
+		}
 	
 		public void addMovie(Movie m) {
+			if(movies.contains(m.getId()))
+			return;
 			movies.add(m);
 		}
 		
+		public void addUser(String userName, float rating, int movieId) {
+			for(User u : users) {
+				if(u.getName().equals(userName)) {
+					u.addRating(movieId, rating);
+					return;
+				}
+			}
+			User u = new User(userName);
+			u.addRating(movieId, rating);
+			users.add(u);
+		}
+		
+		public void addActor(Actor a) {
+			actors.add(a);
+		}
+		
+		public void addDirector(Director d) {
+			directors.add(d);
+		}
+		
+		public void addUserRating(User u) {
+			
+		}
+		
 		public void printMovies() {
 			for( Movie m : movies) {
 				System.out.println(m.toString());

+ 42 - 5
MovieDB/src/data/DataParser.java

@@ -26,28 +26,65 @@ public class DataParser {
 		while(in.hasNextLine()) {
 			msg = in.nextLine();
 			if(msg.startsWith("New_Entity:")) {
-				System.out.println(msg.substring(11));
 				switch(msg.substring(11)) {
 				case " \"movie_id\",\"movie_title\",\"movie_plot\",\"genre_name\",\"movie_released\",\"movie_imdbVotes\",\"movie_imdbRating\"":
 					readmode = mode.MOVIE;
 					break;
+				case "\"actor_id\",\"actor_name\"":
+					readmode = mode.ACTOR;
+					break;
+				case "\"director_id\",\"director_name\"":
+					readmode = mode.DIRECTOR;
+					break;
+				case "\"actor_id\",\"movie_id\"":
+					readmode = mode.ACTING;
+					break;
+				case "\"director_id\",\"movie_id\"":
+					readmode = mode.DIRECTING;
+					break;
+				case "\"user_name\",\"rating\",\"movie_id\"":
+					readmode = mode.USER;
+					break;
 				default:
 					readmode = mode.NONE;
 				}
 			}else {
 				String[] data = msg.split("\",\"");
+				for(int i = 0; i < data.length; i++) {
+					data[i] = data[i].replaceAll("\"", "");
+				}
 				switch(readmode) {
 				case MOVIE:
-					System.out.println(msg);
 					Movie m = new Movie();
-					m.setId(Integer.valueOf(data[0].replaceAll("\"", "")));
-					m.setGenre(data[3].replaceAll("\"", ""));
-					m.setPlot(data[2].replaceAll("\"", ""));
+					m.setId(Integer.valueOf(data[0]));
+					m.setGenre(data[3]);
+					m.setPlot(data[2]);
 					m.setTitle(data[1].replaceAll("\"", ""));
 					if(!data[6].replaceAll("\"", "").equals(""))
 					m.setRating(Float.valueOf(data[6].replaceAll("\"", "")));
 					db.addMovie(m);
 					break;
+				case ACTOR:
+					Actor a = new Actor();
+					a.setId(Integer.valueOf(data[0]));
+					a.setName(data[1].trim());
+					db.addActor(a);
+					break;
+				case DIRECTOR:
+					Director d = new Director();
+					d.setId(Integer.valueOf(data[0]));
+					d.setName(data[1]);
+					db.addDirector(d);
+					break;
+				case ACTING:
+					db.addActing(Integer.valueOf(data[0]), Integer.valueOf(data[1]));
+					break;
+				case DIRECTING:
+					db.addDirecting(Integer.valueOf(data[0]), Integer.valueOf(data[1]));
+					break;
+				case USER:
+					db.addUser(data[0], Float.valueOf(data[1]), Integer.valueOf(data[2]));
+					break;
 				default:
 					
 				}

+ 16 - 0
MovieDB/src/data/Director.java

@@ -2,4 +2,20 @@ package data;
 
 public class Director {
 
+	private int id;
+	private String name;
+	public int getId() {
+		return id;
+	}
+	public void setId(int id) {
+		this.id = id;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+	
 }

+ 24 - 0
MovieDB/src/data/User.java

@@ -1,5 +1,29 @@
 package data;
 
+import java.util.HashMap;
+
 public class User {
+	
+	private String name;
+	private HashMap<Integer,Float> ratings;
+	
+	public User(String name) {
+		this.name = name;
+	}
+	
+	public void addRating(int movie,float rating) {
+		ratings.put(movie, rating);
+	}
+
+	public String getName() {
+		return name;
+	}
 
+	public void setName(String name) {
+		this.name = name;
+	}
+		
+	public HashMap<Integer, Float> getRatings() {
+		return ratings;
+	}
 }