AudioBook.java
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);
}
}