From 7c22a2a2f3568841b0830e4339bdb6f8ec69262f Mon Sep 17 00:00:00 2001
From: ulrich
Date: Wed, 07 Apr 2021 10:39:57 +0000
Subject: [PATCH] Piktogramme in Media-Inhalten, Tool-Tipps, Auswahl in Media-Inhalten
---
src/de/uhilger/mediaz/store/Storage.java | 61 ++++++++++++++++++++++++++++--
1 files changed, 56 insertions(+), 5 deletions(-)
diff --git a/src/de/uhilger/mediaz/store/Storage.java b/src/de/uhilger/mediaz/store/Storage.java
index 8e66c8a..de960bb 100644
--- a/src/de/uhilger/mediaz/store/Storage.java
+++ b/src/de/uhilger/mediaz/store/Storage.java
@@ -1,21 +1,50 @@
/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
+ Mediazentrale - Personal Media Center
+ Copyright (C) 2021 Ulrich Hilger
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.uhilger.mediaz.store;
+import com.google.gson.reflect.TypeToken;
import de.uhilger.mediaz.entity.Entity;
import java.util.List;
/**
- * Eine Ablage, die wie folgt organisiert ist
+ * Eine Ablage fuer serialisierte Objekte, die wie folgt organisiert ist
*
* [Ort]/[Typ]/[Name]
*
* Ort ist der Ablagort, an dem sich die folgende Struktur findet
* Typ ist eine der Klassen der Package entity
* Name muss identisch mit dem Element laut Entity.getName() sein
+ *
+ * Einzelne Objekte werden nach JSON serialisiert und in Dateien oder je nach
+ * Typ der Storage aehnliche 'Behaeltnisse' geschrieben. Die Dateinamen werden
+ * ohne Dateierweiterung geschrieben.
+ *
+ * In einer Gruppe identischer Typen muss jede Entitaet eindeutig benannt sein.
+ * Als weitere Konvention soll jede Entitaet nur Buchstaben, Zahlen
+ * oder Bindestrich (-) im Namen enthalten.
+ *
+ * Erlaubter-1-Name-123<br>
+ * <br>
+ * Nicht-erlaubter-Name.1-4 (Punkt)<br>
+ * Nicht erlaubt (Leerzeichen)<br>
+ * AuchNicht?erlaubt (Fragezeichen)<br>
+ * Ebenfalls&verboten (&)<br>
+ * usw.
*
* @author Ulrich Hilger
* @version 1, 5.4.2021
@@ -27,7 +56,7 @@
* @param e das Objekt, das geschrieben werden soll
* @return ein Antwortobjekt oder null
*/
- public Object write(Entity e);
+ public Object write(Entity e, boolean overwrite);
/**
* Ein Objekt aus der Ablage lesen
@@ -38,10 +67,32 @@
public Entity read(String typ, String name);
/**
+ * Ein Objekt als JSON lesen
+ * @param typ
+ * @param name
+ * @return das gewuenschte Objekt als JSON
+ */
+ public String readJson(String typ, String name);
+
+ /**
* Die Namen der Elemente eines gegebenen Typs auflisten
* @param typ der gewuenschte Typ
* @return die Liste mit Namen
*/
public List<String> list(String typ);
+ /**
+ * Fuer einen gegebenen Namen den Typ bestimmen
+ * @param name der Name des gewuenschten Typs
+ * @return der Typ zum Namen
+ */
+ public TypeToken typeFromName(String name);
+
+ /**
+ * Ein Objekt aus der Ablage loeschen
+ * @param typ Objekttyp
+ * @param name Name des Objekts, das geloscht werden soll
+ * @return true, wenn geloeschn, false wenn nicht
+ */
+ public boolean delete(String typ, String name);
}
--
Gitblit v1.9.3