Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package assignment1;
- import java.util.HashMap;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import org.w3c.dom.Document;
- import org.w3c.dom.Element;
- import org.w3c.dom.Node;
- import org.w3c.dom.NodeList;
- public class XMLParser {
- public void build(String file) {
- DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();
- HashMap<String,Movie> listOfMovies = new HashMap<String,Movie>();
- HashMap<String,Genres> listOfGenre = new HashMap<String,Genres>();
- HashMap<String,Actor> listOfActor = new HashMap<String,Actor>();
- HashMap<String,Action> listOfAction = new HashMap<String,Action>();
- HashMap<String,Users> listOfUser = new HashMap<String,Users>();
- Overseer overseer=new Overseer();
- overseer.setup(listOfMovies, listOfGenre, listOfActor, listOfAction, listOfUser);
- try{
- DocumentBuilder builder=factory.newDocumentBuilder();
- Document doc=builder.parse(file);
- NodeList movie=doc.getElementsByTagName("movies");
- NodeList genreList=doc.getElementsByTagName("genres");
- for(int i=0;i<genreList.getLength();i++)
- {
- Node genreFinder = genreList.item(i);
- if (genreFinder.getNodeType() == Node.ELEMENT_NODE) {
- Element eElement = (Element) genreFinder;
- NodeList genreNode=eElement.getElementsByTagName("genre");
- for(int j=0;j<genreNode.getLength();j++)
- {
- Node genre = genreNode.item(j);
- Genres temp = new Genres();
- temp.setName(genre.getTextContent());
- listOfGenre.put(genre.getTextContent().toLowerCase(),temp);
- }
- }
- }
- NodeList actionList=doc.getElementsByTagName("actions");
- for(int i=0;i<genreList.getLength();i++)
- {
- Node actionFinder = actionList.item(i);
- if (actionFinder.getNodeType() == Node.ELEMENT_NODE) {
- Element eElement = (Element) actionFinder;
- NodeList actionNode=eElement.getElementsByTagName("action");
- for(int j=0;j<actionNode.getLength();j++)
- {
- Node action = actionNode.item(j);
- Action temp = new Action();
- temp.setName(action.getTextContent());
- listOfAction.put(action.getTextContent().toLowerCase(),temp);
- }
- }
- }
- for(int i=0;i<movie.getLength();i++)
- {
- Node movieFinder = movie.item(i);
- if (movieFinder.getNodeType() == Node.ELEMENT_NODE) {
- Element eElement = (Element) movieFinder;
- NodeList movieNode=eElement.getElementsByTagName("movie");
- for(int j=0;j<movieNode.getLength();j++)
- {
- Node movieDesc = movieNode.item(j);
- if (movieDesc.getNodeType() == Node.ELEMENT_NODE) {
- Movie tempMovie= new Movie();
- Element temp = (Element) movieDesc;
- NodeList title=temp.getElementsByTagName("title");
- String movieName= title.item(0).getTextContent();
- tempMovie.setMovieName(title.item(0).getTextContent());
- NodeList description=temp.getElementsByTagName("description");
- tempMovie.addDescription(description.item(0).getTextContent());
- NodeList year=temp.getElementsByTagName("year");
- tempMovie.addYear(year.item(0).getTextContent());
- NodeList genre=temp.getElementsByTagName("genre");
- tempMovie.addGenre(genre.item(0).getTextContent());
- NodeList director=temp.getElementsByTagName("director");
- tempMovie.setDirectorName(director.item(0).getTextContent());
- NodeList rating=temp.getElementsByTagName("rating");
- tempMovie.addRating(rating.item(0).getTextContent());
- NodeList writingList=temp.getElementsByTagName("writer");
- for(int p=0;p<writingList.getLength();p++)
- {
- tempMovie.addWriter(writingList.item(p).getTextContent());
- }
- NodeList actorList=temp.getElementsByTagName("actor");
- for(int n=0;n<actorList.getLength();n++)
- {
- Actor actor= new Actor();
- actor.setName(actorList.item(n).getTextContent());
- tempMovie.addActor( actorList.item(n).getTextContent());
- listOfActor.put(actorList.item(n).getTextContent().toLowerCase(),actor);
- }
- listOfMovies.put(movieName.toLowerCase(),tempMovie);
- tempMovie.setUpActors();
- }
- }
- }
- }
- NodeList userList=doc.getElementsByTagName("users");
- for(int i=0;i<userList.getLength();i++)
- {
- Node userFinder = userList.item(i);
- if (userFinder.getNodeType() == Node.ELEMENT_NODE) {
- Element eElement = (Element) userFinder;
- NodeList userNode=eElement.getElementsByTagName("user");
- for(int j=0;j<userNode.getLength();j++)
- {
- Node user = userNode.item(j);
- if (user.getNodeType() == Node.ELEMENT_NODE) {
- Element temp = (Element) user;
- NodeList userName=temp.getElementsByTagName("username");
- NodeList password=temp.getElementsByTagName("password");
- NodeList fName=temp.getElementsByTagName("fname");
- NodeList lName=temp.getElementsByTagName("lname");
- Users tempUser= new Users(userName.item(0).getTextContent(),password.item(0).getTextContent(),
- fName.item(0).getTextContent(),lName.item(0).getTextContent());
- NodeList followingList=temp.getElementsByTagName("following");
- for(int p=0;p<followingList.getLength();p++)
- {
- Node followerFinder = followingList.item(i);
- if (followerFinder.getNodeType() == Node.ELEMENT_NODE) {
- Element fElement = (Element) followerFinder;
- NodeList followerUserName=fElement.getElementsByTagName("username");
- for(int r=0;r<followerUserName.getLength();r++)
- {
- tempUser.setFollowing(followerUserName.item(r).getTextContent());
- }
- }
- }
- NodeList feedList=temp.getElementsByTagName("feed");
- for(int k=0;k<feedList.getLength();k++)
- {
- NodeList eventList=temp.getElementsByTagName("event");
- for(int t=0;t<eventList.getLength();t++)
- {
- NodeList action=temp.getElementsByTagName("action");
- NodeList movieName=temp.getElementsByTagName("movie");
- NodeList ratingNum=temp.getElementsByTagName("rating");
- tempUser.setEventList(action.item(0).getTextContent(),
- movieName.item(0).getTextContent(), ratingNum.item(0).getTextContent());
- }
- }
- listOfUser.put(tempUser.getUserName().toLowerCase(),tempUser);
- }
- }
- }
- }
- overseer.buildUp();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement