package org.lodder.subtools.multisubdownloader.lib.xml; import org.lodder.subtools.multisubdownloader.settings.model.SettingsExcludeItem; import org.lodder.subtools.multisubdownloader.settings.model.SettingsExcludeType; import org.lodder.subtools.sublibrary.xml.XMLHelper; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import javax.xml.parsers.DocumentBuilderFactory; import java.io.File; import java.util.ArrayList; import java.util.List; public class XMLExclude { public static void write(List<SettingsExcludeItem> list, File f) throws Throwable { Document newDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); Element rootElement = newDoc.createElement("Exclude-Bierdopje-Scene"); newDoc.appendChild(rootElement); for (SettingsExcludeItem item : list) { Element excludeitem = newDoc.createElement("excludeitem"); Element type = newDoc.createElement("type"); type.appendChild(newDoc.createTextNode(item.getType().toString())); excludeitem.appendChild(type); Element description = newDoc.createElement("description"); description.appendChild(newDoc.createTextNode(item.getDescription())); excludeitem.appendChild(description); rootElement.appendChild(excludeitem); } XMLHelper.writeToFile(f, newDoc); } public static ArrayList<SettingsExcludeItem> read(File f) throws Throwable { ArrayList<SettingsExcludeItem> list = new ArrayList<SettingsExcludeItem>(); Document newDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(f); NodeList nList = newDoc.getElementsByTagName("excludeitem"); for (int i = 0; i < nList.getLength(); i++) { if (nList.item(i).getNodeType() == Node.ELEMENT_NODE) { String type = XMLHelper.getStringTagValue("type", (Element) nList.item(i)); String description = XMLHelper.getStringTagValue("description", (Element) nList.item(i)); SettingsExcludeItem item = new SettingsExcludeItem(description, SettingsExcludeType.valueOf(type)); list.add(item); } } return list; } }