aboutsummaryrefslogtreecommitdiff
path: root/target/site/jacoco/musichub.business/AudioElement.java.html
blob: 4401836a4f5b28ba81d3d07eac4f5ca7b693f211 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?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> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <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="nc" id="L24">    public AudioElement(String title, String artist, int lengthInSeconds, String id, String content) {</span>
<span class="nc" id="L25">        this.title = title;</span>
<span class="nc" id="L26">        this.artist = artist;</span>
<span class="nc" id="L27">        this.lengthInSeconds = lengthInSeconds;</span>
<span class="nc" id="L28">        this.uuid = UUID.fromString(id);</span>
<span class="nc" id="L29">        this.content = content;</span>
<span class="nc" id="L30">    }</span>

<span class="nc" id="L32">    public AudioElement(String title, String artist, int lengthInSeconds, String content) {</span>
<span class="nc" id="L33">        this.title = title;</span>
<span class="nc" id="L34">        this.artist = artist;</span>
<span class="nc" id="L35">        this.lengthInSeconds = lengthInSeconds;</span>
<span class="nc" id="L36">        this.content = content;</span>
<span class="nc" id="L37">        this.uuid = UUID.randomUUID();</span>
<span class="nc" id="L38">    }</span>

<span class="nc" id="L40">    public AudioElement(Element xmlElement) {</span>
        {
<span class="nc" id="L42">            title = xmlElement.getElementsByTagName(&quot;title&quot;).item(0).getTextContent();</span>
<span class="nc" id="L43">            artist = xmlElement.getElementsByTagName(&quot;artist&quot;).item(0).getTextContent();</span>
<span class="nc" id="L44">            lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName(&quot;length&quot;).item(0).getTextContent());</span>
<span class="nc" id="L45">            content = xmlElement.getElementsByTagName(&quot;content&quot;).item(0).getTextContent();</span>
<span class="nc" id="L46">            String uuid = null;</span>
            try {
<span class="nc" id="L48">                uuid = xmlElement.getElementsByTagName(&quot;UUID&quot;).item(0).getTextContent();</span>
<span class="nc" id="L49">            } catch (Exception ex) {</span>
<span class="nc" id="L50">                System.out.println(&quot;Empty element UUID, will create a new one&quot;);</span>
<span class="nc" id="L51">            }</span>
<span class="nc bnc" id="L52" title="All 4 branches missed.">            if ((uuid == null) || (uuid.isEmpty()))</span>
<span class="nc" id="L53">                this.uuid = UUID.randomUUID();</span>
<span class="nc" id="L54">            else this.uuid = UUID.fromString(uuid);</span>
        }
<span class="nc" 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="nc" id="L71">        return &quot;Title = &quot; + this.title + &quot;, Artist = &quot; + this.artist + &quot;, Length = &quot; + this.lengthInSeconds + &quot;, Content = &quot; + this.content;</span>
    }

    public void createXMLElement(Document document, Element parentElement) {
<span class="nc" id="L75">        Element nameElement = document.createElement(&quot;title&quot;);</span>
<span class="nc" id="L76">        nameElement.appendChild(document.createTextNode(title));</span>
<span class="nc" id="L77">        parentElement.appendChild(nameElement);</span>

<span class="nc" id="L79">        Element artistElement = document.createElement(&quot;artist&quot;);</span>
<span class="nc" id="L80">        artistElement.appendChild(document.createTextNode(artist));</span>
<span class="nc" id="L81">        parentElement.appendChild(artistElement);</span>

<span class="nc" id="L83">        Element lengthElement = document.createElement(&quot;length&quot;);</span>
<span class="nc" id="L84">        lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString()));</span>
<span class="nc" id="L85">        parentElement.appendChild(lengthElement);</span>

<span class="nc" id="L87">        Element UUIDElement = document.createElement(&quot;UUID&quot;);</span>
<span class="nc" id="L88">        UUIDElement.appendChild(document.createTextNode(uuid.toString()));</span>
<span class="nc" id="L89">        parentElement.appendChild(UUIDElement);</span>

<span class="nc" id="L91">        Element contentElement = document.createElement(&quot;content&quot;);</span>
<span class="nc" id="L92">        contentElement.appendChild(document.createTextNode(content));</span>
<span class="nc" id="L93">        parentElement.appendChild(contentElement);</span>

<span class="nc" 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 = &quot;&quot;;</span>
    			
<span class="nc bnc" id="L108" title="All 2 branches missed.">    	while(!action.equals(&quot;Q&quot;)) {</span>
<span class="nc" id="L109">    		System.out.println(&quot;P = Play \b S = Stop \b R = Reset \b Q = Quit&quot;);</span>
<span class="nc" id="L110">    		System.out.println(&quot;Enter your choice&quot;);</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 &quot;S&quot; : clip.stop();</span>
<span class="nc" id="L116">        		break;</span>
<span class="nc" id="L117">        		case &quot;P&quot; : clip.start();</span>
<span class="nc" id="L118">        		break;</span>
<span class="nc" id="L119">        		case &quot;R&quot; : clip.setMicrosecondPosition(0);</span>
<span class="nc" id="L120">        		break;</span>
<span class="nc" id="L121">        		case &quot;Q&quot; : clip.stop();</span>
<span class="nc" id="L122">        		break;</span>
<span class="nc" id="L123">        		default : System.out.println(&quot;try again&quot;);</span>
        	}
<span class="nc" id="L125">        	System.out.println(&quot;You stoped the Audio element&quot;);</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>