From 72b44bdd52f8a968c71d269a5f90fbf54ef76a58 Mon Sep 17 00:00:00 2001 From: tobias <tobias.ullerich@icloud.com> Date: Fri, 19 Aug 2016 20:38:51 +0200 Subject: [PATCH] Move XML Classes to libUtils --- .../playpad/action/ActionSerializer.java | 6 +- .../de/tobias/playpad/action/MappingList.java | 2 +- .../playpad/action/MappingSerializer.java | 6 +- .../action/mapper/MapperSerializer.java | 4 +- .../de/tobias/playpad/pad/PadSerializer.java | 4 +- .../de/tobias/playpad/project/Project.java | 2 +- .../playpad/project/ProjectReference.java | 2 +- .../project/ProjectReferenceSerializer.java | 4 +- .../playpad/settings/ProfileReference.java | 2 +- .../settings/ProfileReferenceSerializer.java | 4 +- .../playpad/settings/keys/KeyCollection.java | 2 +- .../playpad/settings/keys/KeySerializer.java | 4 +- .../tobias/playpad/xml/XMLDeserializer.java | 24 ---- .../src/de/tobias/playpad/xml/XMLHandler.java | 131 ------------------ .../de/tobias/playpad/xml/XMLSerializer.java | 26 ---- 15 files changed, 21 insertions(+), 202 deletions(-) delete mode 100644 PlayWallCore/src/de/tobias/playpad/xml/XMLDeserializer.java delete mode 100644 PlayWallCore/src/de/tobias/playpad/xml/XMLHandler.java delete mode 100644 PlayWallCore/src/de/tobias/playpad/xml/XMLSerializer.java diff --git a/PlayWallCore/src/de/tobias/playpad/action/ActionSerializer.java b/PlayWallCore/src/de/tobias/playpad/action/ActionSerializer.java index ff4c629b..4fe1c68b 100644 --- a/PlayWallCore/src/de/tobias/playpad/action/ActionSerializer.java +++ b/PlayWallCore/src/de/tobias/playpad/action/ActionSerializer.java @@ -8,9 +8,9 @@ import de.tobias.playpad.PlayPadPlugin; import de.tobias.playpad.action.mapper.Mapper; import de.tobias.playpad.action.mapper.MapperSerializer; import de.tobias.playpad.registry.NoSuchComponentException; -import de.tobias.playpad.xml.XMLDeserializer; -import de.tobias.playpad.xml.XMLHandler; -import de.tobias.playpad.xml.XMLSerializer; +import de.tobias.utils.xml.XMLDeserializer; +import de.tobias.utils.xml.XMLHandler; +import de.tobias.utils.xml.XMLSerializer; public class ActionSerializer implements XMLSerializer<Action>, XMLDeserializer<Action> { diff --git a/PlayWallCore/src/de/tobias/playpad/action/MappingList.java b/PlayWallCore/src/de/tobias/playpad/action/MappingList.java index 103a680c..ab8e325e 100644 --- a/PlayWallCore/src/de/tobias/playpad/action/MappingList.java +++ b/PlayWallCore/src/de/tobias/playpad/action/MappingList.java @@ -17,7 +17,7 @@ import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; import de.tobias.playpad.settings.Profile; -import de.tobias.playpad.xml.XMLHandler; +import de.tobias.utils.xml.XMLHandler; // COMMENT MappingList public class MappingList extends ArrayList<Mapping> { diff --git a/PlayWallCore/src/de/tobias/playpad/action/MappingSerializer.java b/PlayWallCore/src/de/tobias/playpad/action/MappingSerializer.java index e1885680..aea0d32e 100644 --- a/PlayWallCore/src/de/tobias/playpad/action/MappingSerializer.java +++ b/PlayWallCore/src/de/tobias/playpad/action/MappingSerializer.java @@ -5,9 +5,9 @@ import java.util.UUID; import org.dom4j.Element; import de.tobias.playpad.settings.Profile; -import de.tobias.playpad.xml.XMLDeserializer; -import de.tobias.playpad.xml.XMLHandler; -import de.tobias.playpad.xml.XMLSerializer; +import de.tobias.utils.xml.XMLDeserializer; +import de.tobias.utils.xml.XMLHandler; +import de.tobias.utils.xml.XMLSerializer; public class MappingSerializer implements XMLSerializer<Mapping>, XMLDeserializer<Mapping> { diff --git a/PlayWallCore/src/de/tobias/playpad/action/mapper/MapperSerializer.java b/PlayWallCore/src/de/tobias/playpad/action/mapper/MapperSerializer.java index 604f33b3..34f62160 100644 --- a/PlayWallCore/src/de/tobias/playpad/action/mapper/MapperSerializer.java +++ b/PlayWallCore/src/de/tobias/playpad/action/mapper/MapperSerializer.java @@ -5,8 +5,8 @@ import org.dom4j.Element; import de.tobias.playpad.PlayPadPlugin; import de.tobias.playpad.action.Action; import de.tobias.playpad.registry.NoSuchComponentException; -import de.tobias.playpad.xml.XMLDeserializer; -import de.tobias.playpad.xml.XMLSerializer; +import de.tobias.utils.xml.XMLDeserializer; +import de.tobias.utils.xml.XMLSerializer; /** * Laden und Speichern von Mappern (Array von Mappern) diff --git a/PlayWallCore/src/de/tobias/playpad/pad/PadSerializer.java b/PlayWallCore/src/de/tobias/playpad/pad/PadSerializer.java index ef1d1080..44b42cd8 100644 --- a/PlayWallCore/src/de/tobias/playpad/pad/PadSerializer.java +++ b/PlayWallCore/src/de/tobias/playpad/pad/PadSerializer.java @@ -15,9 +15,9 @@ import de.tobias.playpad.settings.Fade; import de.tobias.playpad.settings.Warning; import de.tobias.playpad.tigger.Trigger; import de.tobias.playpad.tigger.TriggerPoint; -import de.tobias.playpad.xml.XMLDeserializer; -import de.tobias.playpad.xml.XMLSerializer; import de.tobias.utils.settings.UserDefaults; +import de.tobias.utils.xml.XMLDeserializer; +import de.tobias.utils.xml.XMLSerializer; public class PadSerializer implements XMLSerializer<Pad>, XMLDeserializer<Pad> { diff --git a/PlayWallCore/src/de/tobias/playpad/project/Project.java b/PlayWallCore/src/de/tobias/playpad/project/Project.java index bdbb2b48..5d7b13af 100644 --- a/PlayWallCore/src/de/tobias/playpad/project/Project.java +++ b/PlayWallCore/src/de/tobias/playpad/project/Project.java @@ -19,7 +19,7 @@ import de.tobias.playpad.pad.PadStatus; import de.tobias.playpad.registry.NoSuchComponentException; import de.tobias.playpad.settings.Profile; import de.tobias.playpad.settings.ProfileNotFoundException; -import de.tobias.playpad.xml.XMLHandler; +import de.tobias.utils.xml.XMLHandler; import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.collections.ObservableList; diff --git a/PlayWallCore/src/de/tobias/playpad/project/ProjectReference.java b/PlayWallCore/src/de/tobias/playpad/project/ProjectReference.java index 44724c67..dfd5aae6 100644 --- a/PlayWallCore/src/de/tobias/playpad/project/ProjectReference.java +++ b/PlayWallCore/src/de/tobias/playpad/project/ProjectReference.java @@ -16,10 +16,10 @@ import org.dom4j.Element; import de.tobias.playpad.Displayable; import de.tobias.playpad.settings.ProfileReference; -import de.tobias.playpad.xml.XMLHandler; import de.tobias.utils.application.App; import de.tobias.utils.application.ApplicationUtils; import de.tobias.utils.application.container.PathType; +import de.tobias.utils.xml.XMLHandler; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; diff --git a/PlayWallCore/src/de/tobias/playpad/project/ProjectReferenceSerializer.java b/PlayWallCore/src/de/tobias/playpad/project/ProjectReferenceSerializer.java index 009b68e7..d84647a2 100644 --- a/PlayWallCore/src/de/tobias/playpad/project/ProjectReferenceSerializer.java +++ b/PlayWallCore/src/de/tobias/playpad/project/ProjectReferenceSerializer.java @@ -8,10 +8,10 @@ import java.util.UUID; import org.dom4j.Element; import de.tobias.playpad.settings.ProfileReference; -import de.tobias.playpad.xml.XMLDeserializer; -import de.tobias.playpad.xml.XMLSerializer; import de.tobias.utils.application.ApplicationUtils; import de.tobias.utils.application.container.PathType; +import de.tobias.utils.xml.XMLDeserializer; +import de.tobias.utils.xml.XMLSerializer; public class ProjectReferenceSerializer implements XMLDeserializer<ProjectReference>, XMLSerializer<ProjectReference> { diff --git a/PlayWallCore/src/de/tobias/playpad/settings/ProfileReference.java b/PlayWallCore/src/de/tobias/playpad/settings/ProfileReference.java index c50d1772..5da85518 100644 --- a/PlayWallCore/src/de/tobias/playpad/settings/ProfileReference.java +++ b/PlayWallCore/src/de/tobias/playpad/settings/ProfileReference.java @@ -14,11 +14,11 @@ import org.dom4j.DocumentHelper; import org.dom4j.Element; import de.tobias.playpad.Displayable; -import de.tobias.playpad.xml.XMLHandler; import de.tobias.utils.application.ApplicationUtils; import de.tobias.utils.application.container.PathType; import de.tobias.utils.util.FileUtils; import de.tobias.utils.util.FileUtils.FileActionAdapter; +import de.tobias.utils.xml.XMLHandler; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; diff --git a/PlayWallCore/src/de/tobias/playpad/settings/ProfileReferenceSerializer.java b/PlayWallCore/src/de/tobias/playpad/settings/ProfileReferenceSerializer.java index 3a281ef1..19915d80 100644 --- a/PlayWallCore/src/de/tobias/playpad/settings/ProfileReferenceSerializer.java +++ b/PlayWallCore/src/de/tobias/playpad/settings/ProfileReferenceSerializer.java @@ -4,8 +4,8 @@ import java.util.UUID; import org.dom4j.Element; -import de.tobias.playpad.xml.XMLDeserializer; -import de.tobias.playpad.xml.XMLSerializer; +import de.tobias.utils.xml.XMLDeserializer; +import de.tobias.utils.xml.XMLSerializer; /** * Util zum arbeiten mit XML und ProfileReference diff --git a/PlayWallCore/src/de/tobias/playpad/settings/keys/KeyCollection.java b/PlayWallCore/src/de/tobias/playpad/settings/keys/KeyCollection.java index f47a1e5f..080d0e6a 100644 --- a/PlayWallCore/src/de/tobias/playpad/settings/keys/KeyCollection.java +++ b/PlayWallCore/src/de/tobias/playpad/settings/keys/KeyCollection.java @@ -10,8 +10,8 @@ import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; -import de.tobias.playpad.xml.XMLHandler; import de.tobias.utils.util.OS; +import de.tobias.utils.xml.XMLHandler; /** * Verwaltung der Tastenkombinationen für das Menu. diff --git a/PlayWallCore/src/de/tobias/playpad/settings/keys/KeySerializer.java b/PlayWallCore/src/de/tobias/playpad/settings/keys/KeySerializer.java index cb8e7fc7..c61992e7 100644 --- a/PlayWallCore/src/de/tobias/playpad/settings/keys/KeySerializer.java +++ b/PlayWallCore/src/de/tobias/playpad/settings/keys/KeySerializer.java @@ -2,8 +2,8 @@ package de.tobias.playpad.settings.keys; import org.dom4j.Element; -import de.tobias.playpad.xml.XMLDeserializer; -import de.tobias.playpad.xml.XMLSerializer; +import de.tobias.utils.xml.XMLDeserializer; +import de.tobias.utils.xml.XMLSerializer; public class KeySerializer implements XMLSerializer<Key>, XMLDeserializer<Key> { diff --git a/PlayWallCore/src/de/tobias/playpad/xml/XMLDeserializer.java b/PlayWallCore/src/de/tobias/playpad/xml/XMLDeserializer.java deleted file mode 100644 index 44581a3f..00000000 --- a/PlayWallCore/src/de/tobias/playpad/xml/XMLDeserializer.java +++ /dev/null @@ -1,24 +0,0 @@ -package de.tobias.playpad.xml; - -import org.dom4j.Element; - -/** - * Schnittstelle um ein Object auf einem XML Tree zu deserialisieren. - * - * @author tobias - * - * @param <T> - * Typ der Daten - */ -public interface XMLDeserializer<T> { - - /** - * Lädt ein Object auf XML Daten. - * - * @param element - * XML Objekt - * @return Daten aus dem XML - */ - public T loadElement(Element element); - -} diff --git a/PlayWallCore/src/de/tobias/playpad/xml/XMLHandler.java b/PlayWallCore/src/de/tobias/playpad/xml/XMLHandler.java deleted file mode 100644 index b106b92f..00000000 --- a/PlayWallCore/src/de/tobias/playpad/xml/XMLHandler.java +++ /dev/null @@ -1,131 +0,0 @@ -package de.tobias.playpad.xml; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.List; - -import org.dom4j.Document; -import org.dom4j.DocumentException; -import org.dom4j.Element; -import org.dom4j.io.OutputFormat; -import org.dom4j.io.SAXReader; -import org.dom4j.io.XMLWriter; - -/** - * Util Methods zum Laden von XML Files. - * - * @author tobias - * - * @since 5.0.1 - */ -public class XMLHandler<T> { - - private Element rootElement; - - /** - * Lädt ein XML Dokument und speichert sich den RootNode. - * - * @param path - * Path zu XML Datei - * @throws DocumentException - * Fehler in der XML Datei - * @throws IOException - * IO Fehler (Bsp. Datei nicht vorhanden) - */ - public XMLHandler(Path path) throws DocumentException, IOException { - if (Files.exists(path)) { - SAXReader reader = new SAXReader(); - Document document = reader.read(Files.newInputStream(path)); - rootElement = document.getRootElement(); - } else { - throw new FileNotFoundException(path.toString()); - } - } - - /** - * Erstellt einen neuen Handler mit einem RootElement. - * - * @param rootElement - * RootElement - */ - public XMLHandler(Element rootElement) { - this.rootElement = rootElement; - } - - /** - * Lädt ein Datenrecord auf einem Array von Daten - * - * @param listElementTag - * Datentype - * @param deserializer - * Deserializer - * @return Liste von Daten - */ - public List<T> loadElements(String listElementTag, XMLDeserializer<T> deserializer) { - List<T> list = new ArrayList<>(); - - for (Object object : rootElement.elements(listElementTag)) { - if (object instanceof Element) { - Element element = (Element) object; - T data = deserializer.loadElement(element); - if (data != null) { - list.add(data); - } - } - } - - return list; - } - - /** - * Speichert eine Liste von Objekten mittels Serializer. - * - * @param listElementTag - * Name der XML Element - * @param list - * Liste der Daten - * @param serializer - * Serializer - */ - public void saveElements(String listElementTag, Iterable<T> list, XMLSerializer<T> serializer) { - for (T data : list) { - Element element = rootElement.addElement(listElementTag); - serializer.saveElement(element, data); - } - } - - /** - * Speichert eine XML in einem Path. - * - * @param path - * Path der Datei - * @param document - * XML Document - * @throws UnsupportedEncodingException - * Falsches Encoding - * @throws IOException - * IO Fehler (Bsp. File nicht vorhanden) - */ - public static void save(Path path, Document document) throws UnsupportedEncodingException, IOException { - if (Files.exists(path)) { - XMLWriter writer = new XMLWriter(Files.newOutputStream(path), OutputFormat.createPrettyPrint()); - writer.write(document); - writer.close(); - } else { - throw new FileNotFoundException(path.toString()); - } - } - - /** - * Gibt das RootElement zurück. - * - * @return Root Element - */ - public Element getRootElement() { - return rootElement; - } -} diff --git a/PlayWallCore/src/de/tobias/playpad/xml/XMLSerializer.java b/PlayWallCore/src/de/tobias/playpad/xml/XMLSerializer.java deleted file mode 100644 index 82474186..00000000 --- a/PlayWallCore/src/de/tobias/playpad/xml/XMLSerializer.java +++ /dev/null @@ -1,26 +0,0 @@ -package de.tobias.playpad.xml; - -import org.dom4j.Element; - -/** - * Schnittstelle um ein Object in eine XML Struktur zu überführen. - * - * @author tobias - * - * @param <T> - * Typ der Daten - */ -public interface XMLSerializer<T> { - - /** - * Überführt ein Object in eine XML Struktur. Dafür wird bereits ein XML Object angelegt, zu dem Attribute und Sub Elemente hinzugefügt - * werden können. - * - * @param newElement - * XML Object - * @param data - * Daten - */ - public void saveElement(Element newElement, T data); - -} -- GitLab