Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.53 KB | None | 0 0
  1. package assignment1;
  2.  
  3. import java.util.HashMap;
  4.  
  5. import javax.xml.parsers.DocumentBuilder;
  6. import javax.xml.parsers.DocumentBuilderFactory;
  7. import org.w3c.dom.Document;
  8. import org.w3c.dom.Element;
  9. import org.w3c.dom.Node;
  10. import org.w3c.dom.NodeList;
  11. public class XMLParser {
  12.  
  13. public void build(String file) {
  14. DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();
  15. HashMap<String,Movie> listOfMovies = new HashMap<String,Movie>();
  16. HashMap<String,Genres> listOfGenre = new HashMap<String,Genres>();
  17. HashMap<String,Actor> listOfActor = new HashMap<String,Actor>();
  18. HashMap<String,Action> listOfAction = new HashMap<String,Action>();
  19. HashMap<String,Users> listOfUser = new HashMap<String,Users>();
  20. Overseer overseer=new Overseer();
  21. overseer.setup(listOfMovies, listOfGenre, listOfActor, listOfAction, listOfUser);
  22.  
  23.  
  24.  
  25. try{
  26.  
  27. DocumentBuilder builder=factory.newDocumentBuilder();
  28. Document doc=builder.parse(file);
  29. NodeList movie=doc.getElementsByTagName("movies");
  30. NodeList genreList=doc.getElementsByTagName("genres");
  31. for(int i=0;i<genreList.getLength();i++)
  32. {
  33. Node genreFinder = genreList.item(i);
  34. if (genreFinder.getNodeType() == Node.ELEMENT_NODE) {
  35. Element eElement = (Element) genreFinder;
  36. NodeList genreNode=eElement.getElementsByTagName("genre");
  37. for(int j=0;j<genreNode.getLength();j++)
  38. {
  39. Node genre = genreNode.item(j);
  40.  
  41. Genres temp = new Genres();
  42. temp.setName(genre.getTextContent());
  43. listOfGenre.put(genre.getTextContent().toLowerCase(),temp);
  44. }
  45. }
  46.  
  47. }
  48. NodeList actionList=doc.getElementsByTagName("actions");
  49. for(int i=0;i<genreList.getLength();i++)
  50. {
  51. Node actionFinder = actionList.item(i);
  52. if (actionFinder.getNodeType() == Node.ELEMENT_NODE) {
  53. Element eElement = (Element) actionFinder;
  54. NodeList actionNode=eElement.getElementsByTagName("action");
  55. for(int j=0;j<actionNode.getLength();j++)
  56. {
  57. Node action = actionNode.item(j);
  58.  
  59. Action temp = new Action();
  60. temp.setName(action.getTextContent());
  61. listOfAction.put(action.getTextContent().toLowerCase(),temp);
  62. }
  63. }
  64.  
  65. }
  66. for(int i=0;i<movie.getLength();i++)
  67. {
  68. Node movieFinder = movie.item(i);
  69. if (movieFinder.getNodeType() == Node.ELEMENT_NODE) {
  70. Element eElement = (Element) movieFinder;
  71. NodeList movieNode=eElement.getElementsByTagName("movie");
  72. for(int j=0;j<movieNode.getLength();j++)
  73. {
  74. Node movieDesc = movieNode.item(j);
  75. if (movieDesc.getNodeType() == Node.ELEMENT_NODE) {
  76. Movie tempMovie= new Movie();
  77. Element temp = (Element) movieDesc;
  78.  
  79. NodeList title=temp.getElementsByTagName("title");
  80. String movieName= title.item(0).getTextContent();
  81.  
  82. tempMovie.setMovieName(title.item(0).getTextContent());
  83. NodeList description=temp.getElementsByTagName("description");
  84. tempMovie.addDescription(description.item(0).getTextContent());
  85. NodeList year=temp.getElementsByTagName("year");
  86. tempMovie.addYear(year.item(0).getTextContent());
  87. NodeList genre=temp.getElementsByTagName("genre");
  88. tempMovie.addGenre(genre.item(0).getTextContent());
  89. NodeList director=temp.getElementsByTagName("director");
  90. tempMovie.setDirectorName(director.item(0).getTextContent());
  91. NodeList rating=temp.getElementsByTagName("rating");
  92. tempMovie.addRating(rating.item(0).getTextContent());
  93. NodeList writingList=temp.getElementsByTagName("writer");
  94. for(int p=0;p<writingList.getLength();p++)
  95. {
  96. tempMovie.addWriter(writingList.item(p).getTextContent());
  97.  
  98. }
  99. NodeList actorList=temp.getElementsByTagName("actor");
  100. for(int n=0;n<actorList.getLength();n++)
  101. {
  102. Actor actor= new Actor();
  103. actor.setName(actorList.item(n).getTextContent());
  104.  
  105. tempMovie.addActor( actorList.item(n).getTextContent());
  106. listOfActor.put(actorList.item(n).getTextContent().toLowerCase(),actor);
  107.  
  108. }
  109. listOfMovies.put(movieName.toLowerCase(),tempMovie);
  110. tempMovie.setUpActors();
  111.  
  112. }
  113.  
  114. }
  115.  
  116. }
  117. }
  118. NodeList userList=doc.getElementsByTagName("users");
  119. for(int i=0;i<userList.getLength();i++)
  120. {
  121. Node userFinder = userList.item(i);
  122. if (userFinder.getNodeType() == Node.ELEMENT_NODE) {
  123. Element eElement = (Element) userFinder;
  124. NodeList userNode=eElement.getElementsByTagName("user");
  125. for(int j=0;j<userNode.getLength();j++)
  126. {
  127. Node user = userNode.item(j);
  128. if (user.getNodeType() == Node.ELEMENT_NODE) {
  129.  
  130. Element temp = (Element) user;
  131. NodeList userName=temp.getElementsByTagName("username");
  132. NodeList password=temp.getElementsByTagName("password");
  133. NodeList fName=temp.getElementsByTagName("fname");
  134. NodeList lName=temp.getElementsByTagName("lname");
  135. Users tempUser= new Users(userName.item(0).getTextContent(),password.item(0).getTextContent(),
  136. fName.item(0).getTextContent(),lName.item(0).getTextContent());
  137. NodeList followingList=temp.getElementsByTagName("following");
  138. for(int p=0;p<followingList.getLength();p++)
  139. {
  140. Node followerFinder = followingList.item(i);
  141. if (followerFinder.getNodeType() == Node.ELEMENT_NODE) {
  142. Element fElement = (Element) followerFinder;
  143. NodeList followerUserName=fElement.getElementsByTagName("username");
  144. for(int r=0;r<followerUserName.getLength();r++)
  145. {
  146. tempUser.setFollowing(followerUserName.item(r).getTextContent());
  147. }
  148. }
  149.  
  150.  
  151. }
  152. NodeList feedList=temp.getElementsByTagName("feed");
  153. for(int k=0;k<feedList.getLength();k++)
  154. {
  155. NodeList eventList=temp.getElementsByTagName("event");
  156. for(int t=0;t<eventList.getLength();t++)
  157. {
  158. NodeList action=temp.getElementsByTagName("action");
  159. NodeList movieName=temp.getElementsByTagName("movie");
  160. NodeList ratingNum=temp.getElementsByTagName("rating");
  161. tempUser.setEventList(action.item(0).getTextContent(),
  162. movieName.item(0).getTextContent(), ratingNum.item(0).getTextContent());
  163. }
  164.  
  165. }
  166. listOfUser.put(tempUser.getUserName().toLowerCase(),tempUser);
  167.  
  168.  
  169.  
  170. }
  171.  
  172. }
  173.  
  174. }
  175.  
  176. }
  177. overseer.buildUp();
  178.  
  179.  
  180. } catch (Exception e) {
  181. e.printStackTrace();
  182. }
  183.  
  184. }
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement