From dce2c79a03b834887f4da33b090a430e9756aac1 Mon Sep 17 00:00:00 2001
From: ulrich
Date: Wed, 07 Apr 2021 12:42:41 +0000
Subject: [PATCH] Einstellungen
---
src/de/uhilger/mediaz/store/FileStorage.java | 57 ++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 34 insertions(+), 23 deletions(-)
diff --git a/src/de/uhilger/mediaz/store/FileStorage.java b/src/de/uhilger/mediaz/store/FileStorage.java
index afea9b4..e8ce068 100644
--- a/src/de/uhilger/mediaz/store/FileStorage.java
+++ b/src/de/uhilger/mediaz/store/FileStorage.java
@@ -22,6 +22,7 @@
import de.uhilger.mediaz.App;
import de.uhilger.mediaz.Server;
import de.uhilger.mediaz.entity.Ablageort;
+import de.uhilger.mediaz.entity.Einstellung;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
@@ -53,18 +54,21 @@
/** StorageType Ablageort */
public static final String ST_ABLAGEORT = "Ablageort";
+ public static final String ST_EINSTELLUNG = "Einstellung";
- private String fileBase;
+ private final String fileBase;
- private Map<String, TypeToken> types;
+ private final Map<String, TypeToken> types;
public FileStorage(String base) {
this.fileBase = base;
// Beispiel: TypeToken<List<String>> list = new TypeToken<List<String>>() {};
TypeToken<Ablageort> ttAblageort = new TypeToken<Ablageort>() {};
+ TypeToken<Einstellung> ttEinstellung = new TypeToken<Einstellung>() {};
types = new HashMap();
types.put(Ablageort.class.getSimpleName(), ttAblageort);
+ types.put(Einstellung.class.getSimpleName(), ttEinstellung);
}
/**
@@ -72,29 +76,34 @@
*
* Es wird in den Ordner geschrieben, der von conf angegeben ist
*
- * Wenn es z.B. ein Ablage-Objekt ist, wird das Objekt in die Datei
- * [conf]/Ablage/[name der Ablage].json geschrieben
- *
- * Der Name der Ablage muss eindeutig sein
+ * Wenn es z.B.ein Ablage-Objekt ist, wird das Objekt in die Datei
+ [conf]/Ablage/[name der Ablage].json geschrieben
+
+ Der Name der Ablage muss eindeutig sein
*
*
- * @param entity
+ * @param entity das Objekt, das geschrieben werden soll
+ * @param overwrite true, wenn Aenderung, false fuer neue Elemente
+ * @return die Datei oder null, wenn die Datei existiert und ein
+ * neues Element (overwrite=false) uebergeben wurde
+ * @throws java.io.IOException
*/
- public File writeToFile(Entity entity) throws IOException {
+ public File writeToFile(Entity entity, boolean overwrite) throws IOException {
String className = entity.getClass().getSimpleName();
logger.finer(className);
File dir = new File(fileBase, className);
dir.mkdirs();
File file = new File(dir, entity.getName());
- if(file.exists()) {
- file.delete();
+ if(file.exists() && !overwrite) {
+ return null;
+ } else {
+ FileWriter fw = new FileWriter(file);
+ Gson gson = new Gson();
+ fw.write(gson.toJson(entity));
+ fw.flush();
+ fw.close();
+ return file;
}
- FileWriter fw = new FileWriter(file);
- Gson gson = new Gson();
- fw.write(gson.toJson(entity));
- fw.flush();
- fw.close();
- return file;
}
public String readFromFile(File file) throws IOException {
@@ -121,9 +130,9 @@
}
@Override
- public Object write(Entity e) {
+ public Object write(Entity e, boolean overwrite) {
try {
- return writeToFile(e);
+ return writeToFile(e, overwrite);
} catch (IOException ex) {
logger.log(Level.SEVERE, null, ex);
return null;
@@ -144,12 +153,14 @@
public List<String> list(String typ) {
File base = new File(fileBase);
File dir = new File(base, typ);
- File[] files = dir.listFiles();
List<String> list = new ArrayList();
- for(File file : files) {
- //NamedItem n = new NamedItem();
- //n.setLabel(file.getName());
- list.add(file.getName());
+ File[] files = dir.listFiles();
+ if(files != null) {
+ for(File file : files) {
+ //NamedItem n = new NamedItem();
+ //n.setLabel(file.getName());
+ list.add(file.getName());
+ }
}
return list;
}
--
Gitblit v1.9.3