Advertisement
Guest User

Untitled

a guest
Jul 26th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.44 KB | None | 0 0
  1. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  2.  
  3.         ConnectionPool connectionPool = ConnectionPool.getInstance();
  4.         Connection connection = connectionPool.getConnection();
  5.  
  6.         try {
  7.             Statement statement = connection.createStatement();
  8.             String sqlQuery = "SELECT artist_name, song_name, content, song_part\n" +
  9.                     "FROM songs\n" +
  10.                     "INNER JOIN songsdatabase.lines ON songsdatabase.lines.song_id = songs.song_id\n" +
  11.                     "INNER JOIN artists ON songs.artist_id = artists.artist_id\n" +
  12.                     "WHERE songs.song_id = 1;";
  13.  
  14.             ResultSet resultSet = statement.executeQuery(sqlQuery);
  15.             Song song = new Song();
  16.             SongLyricsComposite songLyrics = new SongLyricsComposite();
  17.             List<List<String>> lyricsPartsAsStringValues = new ArrayList<>();
  18.  
  19.             int count = 0;
  20.  
  21.             while (resultSet.next()) {
  22.                 if (count == 0) {
  23.                     song.setName(resultSet.getString("song_name"));
  24.                     Artist artist = new Artist();
  25.                     artist.setName(resultSet.getString("artist_name"));
  26.                     song.setArtist(artist);
  27.                 }
  28.  
  29.                 lyricsPartsAsStringValues.add(Arrays.asList(resultSet.getString("song_part"),
  30.                         resultSet.getString("content")));
  31.                 count++;
  32.             }
  33.  
  34.             int lyricsPartType = 0;
  35.             int lineContent = 1;
  36.             SongLyricsComposite lyricsPart = null;
  37.  
  38.             for (int index = 0; index < lyricsPartsAsStringValues.size(); index++) {
  39.  
  40.                 List<String> entry = lyricsPartsAsStringValues.get(index);
  41.  
  42.                 String partType = entry.get(lyricsPartType);
  43.  
  44.                 String content = entry.get(lineContent);
  45.  
  46.                 switch (partType) {
  47.                     case "verse":
  48.                         if (lyricsPart == null) {
  49.                             lyricsPart = new SongLyricsComposite();
  50.                             lyricsPart.setType(SongLyricsPartType.VERSE);
  51.                         }
  52.                         break;
  53.                     case "chorus":
  54.                         if (lyricsPart == null) {
  55.                             lyricsPart = new SongLyricsComposite();
  56.                             lyricsPart.setType(SongLyricsPartType.CHORUS);
  57.                         }
  58.                         break;
  59.                     case "hook":
  60.                         if (lyricsPart == null) {
  61.                             lyricsPart = new SongLyricsComposite();
  62.                             lyricsPart.setType(SongLyricsPartType.HOOK);
  63.                         }
  64.                         break;
  65.                     case "bridge":
  66.                         if (lyricsPart == null) {
  67.                             lyricsPart = new SongLyricsComposite();
  68.                             lyricsPart.setType(SongLyricsPartType.BRIDGE);
  69.                         }
  70.                         break;
  71.                     default:
  72.                         break;
  73.                 }
  74.  
  75.                 lyricsPart.add(new Line(content));
  76.  
  77.                 int nextIndex = index + 1;
  78.  
  79.                 String nextType = null;
  80.  
  81.                 if (nextIndex != lyricsPartsAsStringValues.size()) {
  82.                     nextType = lyricsPartsAsStringValues.get(nextIndex).get(lyricsPartType);
  83.                 }
  84.  
  85.                 if (!partType.equals(nextType)) {
  86.                     songLyrics.add(lyricsPart);
  87.                     lyricsPart = null;
  88.                 }
  89.             }
  90.  
  91.             song.setLyrics(songLyrics);
  92.             List<SongLyrics> lyricsPartsAsList = new ArrayList<>();
  93.  
  94.             ((SongLyricsComposite) song.getLyrics()).getComponents().forEach(part -> lyricsPartsAsList.add(part));
  95.  
  96.             request.setAttribute("songArtist", song.getArtist().getName());
  97.             request.setAttribute("songName", song.getName());
  98.             request.setAttribute("song", song);
  99.  
  100.             String listOfLyricsParts = "listOfLyricsParts";
  101.  
  102.             request.setAttribute(listOfLyricsParts, lyricsPartsAsList);
  103.  
  104.             request.getRequestDispatcher("/song.jsp").forward(request, response);
  105.  
  106.             connectionPool.returnConnection(connection);
  107.             resultSet.close();
  108.  
  109.  
  110.         } catch (SQLException e) {
  111.             e.printStackTrace();
  112.         }
  113.  
  114.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement