diff options
Diffstat (limited to 'src/main/java/musichub/business/AudioBook.java')
-rw-r--r-- | src/main/java/musichub/business/AudioBook.java | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/main/java/musichub/business/AudioBook.java b/src/main/java/musichub/business/AudioBook.java new file mode 100644 index 0000000..80392d6 --- /dev/null +++ b/src/main/java/musichub/business/AudioBook.java @@ -0,0 +1,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); + } +}
\ No newline at end of file |