aboutsummaryrefslogtreecommitdiff
path: root/src/musichub/business/AudioBook.java
blob: 80392d6f39083954437f78ea54847f811a0b3dbf (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
package musichub.business;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class AudioBook extends AudioElement {
    private Language language;
    private Category category;

    public AudioBook(String title, String artist, int lengthInSeconds, String uid, String content, String language, String category) {
        super(title, artist, lengthInSeconds, uid, content);
        this.setLanguage(language);
        this.setCategory(category);
    }

    public AudioBook(String title, String artist, int lengthInSeconds, String content, String language, String category) {
        super(title, artist, lengthInSeconds, content);
        this.setLanguage(language);
        this.setCategory(category);
    }

    public AudioBook(Element xmlElement) {
        super(xmlElement);
        this.setLanguage(xmlElement.getElementsByTagName("language").item(0).getTextContent());
        this.setCategory(xmlElement.getElementsByTagName("category").item(0).getTextContent());
    }

    public Language getLanguage() {
        return this.language;
    }

    public void setLanguage(String language) {
        switch (language.toLowerCase()) {
            default -> this.language = Language.ENGLISH;
            case "french" -> this.language = Language.FRENCH;
            case "german" -> this.language = Language.GERMAN;
            case "spanish" -> this.language = Language.SPANISH;
            case "italian" -> this.language = Language.ITALIAN;
        }
    }

    public Category getCategory() {
        return this.category;
    }

    public void setCategory(String category) {
        switch (category.toLowerCase()) {
            default -> this.category = Category.YOUTH;
            case "novel" -> this.category = Category.NOVEL;
            case "theater" -> this.category = Category.THEATER;
            case "documentary" -> this.category = Category.DOCUMENTARY;
            case "speech" -> this.category = Category.SPEECH;
        }
    }


    public String toString() {
        return super.toString() + ", Language = " + getLanguage() + ", Category = " + getCategory() + "\n";
    }


    public void createXMLElement(Document document, Element parentElement) {
        // audiobook element
        Element audioBook = document.createElement("audiobook");

        super.createXMLElement(document, audioBook);

        Element languageElement = document.createElement("language");
        languageElement.appendChild(document.createTextNode(language.getLanguage()));
        audioBook.appendChild(languageElement);

        Element categoryElement = document.createElement("category");
        categoryElement.appendChild(document.createTextNode(category.getCategory()));
        audioBook.appendChild(categoryElement);

        parentElement.appendChild(audioBook);
    }
}