<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioElement.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> > <a href="index.source.html" class="el_package">musichub.business</a> > <span class="el_source">AudioElement.java</span></div><h1>AudioElement.java</h1><pre class="source lang-java linenums">package musichub.business; import org.w3c.dom.Document; import org.w3c.dom.Element; import java.io.File; import java.io.IOException; import java.util.Scanner; import java.util.UUID; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.UnsupportedAudioFileException; public abstract class AudioElement { protected String title; protected String artist; protected int lengthInSeconds; protected UUID uuid; protected String content; <span class="fc" id="L24"> public AudioElement(String title, String artist, int lengthInSeconds, String id, String content) {</span> <span class="fc" id="L25"> this.title = title;</span> <span class="fc" id="L26"> this.artist = artist;</span> <span class="fc" id="L27"> this.lengthInSeconds = lengthInSeconds;</span> <span class="fc" id="L28"> this.uuid = UUID.fromString(id);</span> <span class="fc" id="L29"> this.content = content;</span> <span class="fc" id="L30"> }</span> <span class="fc" id="L32"> public AudioElement(String title, String artist, int lengthInSeconds, String content) {</span> <span class="fc" id="L33"> this.title = title;</span> <span class="fc" id="L34"> this.artist = artist;</span> <span class="fc" id="L35"> this.lengthInSeconds = lengthInSeconds;</span> <span class="fc" id="L36"> this.content = content;</span> <span class="fc" id="L37"> this.uuid = UUID.randomUUID();</span> <span class="fc" id="L38"> }</span> <span class="fc" id="L40"> public AudioElement(Element xmlElement) {</span> { <span class="fc" id="L42"> title = xmlElement.getElementsByTagName("title").item(0).getTextContent();</span> <span class="fc" id="L43"> artist = xmlElement.getElementsByTagName("artist").item(0).getTextContent();</span> <span class="fc" id="L44"> lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName("length").item(0).getTextContent());</span> <span class="fc" id="L45"> content = xmlElement.getElementsByTagName("content").item(0).getTextContent();</span> <span class="fc" id="L46"> String uuid = null;</span> try { <span class="fc" id="L48"> uuid = xmlElement.getElementsByTagName("UUID").item(0).getTextContent();</span> <span class="nc" id="L49"> } catch (Exception ex) {</span> <span class="nc" id="L50"> System.out.println("Empty element UUID, will create a new one");</span> <span class="fc" id="L51"> }</span> <span class="pc bpc" id="L52" title="2 of 4 branches missed."> if ((uuid == null) || (uuid.isEmpty()))</span> <span class="nc" id="L53"> this.uuid = UUID.randomUUID();</span> <span class="fc" id="L54"> else this.uuid = UUID.fromString(uuid);</span> } <span class="fc" id="L56"> }</span> public UUID getUUID() { <span class="nc" id="L59"> return this.uuid;</span> } public String getArtist() { <span class="nc" id="L63"> return this.artist;</span> } public String getTitle() { <span class="nc" id="L67"> return this.title;</span> } public String toString() { <span class="fc" id="L71"> return "Title = " + this.title + ", Artist = " + this.artist + ", Length = " + this.lengthInSeconds + ", Content = " + this.content;</span> } public void createXMLElement(Document document, Element parentElement) { <span class="fc" id="L75"> Element nameElement = document.createElement("title");</span> <span class="fc" id="L76"> nameElement.appendChild(document.createTextNode(title));</span> <span class="fc" id="L77"> parentElement.appendChild(nameElement);</span> <span class="fc" id="L79"> Element artistElement = document.createElement("artist");</span> <span class="fc" id="L80"> artistElement.appendChild(document.createTextNode(artist));</span> <span class="fc" id="L81"> parentElement.appendChild(artistElement);</span> <span class="fc" id="L83"> Element lengthElement = document.createElement("length");</span> <span class="fc" id="L84"> lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString()));</span> <span class="fc" id="L85"> parentElement.appendChild(lengthElement);</span> <span class="fc" id="L87"> Element UUIDElement = document.createElement("UUID");</span> <span class="fc" id="L88"> UUIDElement.appendChild(document.createTextNode(uuid.toString()));</span> <span class="fc" id="L89"> parentElement.appendChild(UUIDElement);</span> <span class="fc" id="L91"> Element contentElement = document.createElement("content");</span> <span class="fc" id="L92"> contentElement.appendChild(document.createTextNode(content));</span> <span class="fc" id="L93"> parentElement.appendChild(contentElement);</span> <span class="fc" id="L95"> }</span> public void manageAudioElement() throws UnsupportedAudioFileException, IOException, LineUnavailableException { <span class="nc" id="L99"> Scanner scanner = new Scanner(System.in); </span> <span class="nc" id="L101"> File file = new File(this.content);</span> <span class="nc" id="L102"> AudioInputStream audioStream = AudioSystem.getAudioInputStream(file);</span> <span class="nc" id="L103"> Clip clip = AudioSystem.getClip();</span> <span class="nc" id="L104"> clip.open(audioStream);</span> <span class="nc" id="L106"> String action = "";</span> <span class="nc bnc" id="L108" title="All 2 branches missed."> while(!action.equals("Q")) {</span> <span class="nc" id="L109"> System.out.println("P = Play \b S = Stop \b R = Reset \b Q = Quit");</span> <span class="nc" id="L110"> System.out.println("Enter your choice");</span> <span class="nc" id="L111"> action = scanner.next();</span> <span class="nc" id="L112"> action = action.toUpperCase();</span> <span class="nc bnc" id="L114" title="All 5 branches missed."> switch(action) {</span> <span class="nc" id="L115"> case "S" : clip.stop();</span> <span class="nc" id="L116"> break;</span> <span class="nc" id="L117"> case "P" : clip.start();</span> <span class="nc" id="L118"> break;</span> <span class="nc" id="L119"> case "R" : clip.setMicrosecondPosition(0);</span> <span class="nc" id="L120"> break;</span> <span class="nc" id="L121"> case "Q" : clip.stop();</span> <span class="nc" id="L122"> break;</span> <span class="nc" id="L123"> default : System.out.println("try again");</span> } <span class="nc" id="L125"> System.out.println("You stoped the Audio element");</span> } <span class="nc" id="L128"> clip.close();</span> <span class="nc" id="L130"> }</span> } </pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>