From 8bde6f998b7112a15624e24e2ee070ebf24a9172 Mon Sep 17 00:00:00 2001
From: ulrich
Date: Thu, 14 Nov 2024 08:58:10 +0000
Subject: [PATCH] Dokumentation in Arbeit

---
 src/de/uhilger/fm/Renamer.java      |    3 -
 src/de/uhilger/fm/Deflator.java     |    4 +-
 src/de/uhilger/fm/DirList.java      |   18 ++++----
 src/de/uhilger/fm/FileRef.java      |    2 
 src/de/uhilger/fm/package-info.java |   53 +++++++++++++++++++++++---
 src/de/uhilger/fm/Catalog.java      |   22 +++++-----
 6 files changed, 71 insertions(+), 31 deletions(-)

diff --git a/src/de/uhilger/fm/Lister.java b/src/de/uhilger/fm/Catalog.java
similarity index 79%
rename from src/de/uhilger/fm/Lister.java
rename to src/de/uhilger/fm/Catalog.java
index ea367a2..7d2413f 100644
--- a/src/de/uhilger/fm/Lister.java
+++ b/src/de/uhilger/fm/Catalog.java
@@ -37,32 +37,32 @@
  * @author Ulrich Hilger
  * @version 0.1, 05.11.2024
  */
-public class Lister {
+public class Catalog {
 
   public static final String STR_DOT = ".";
 
   /**
    * 
-   * @param fName Name und relativer Pfad des Ordners, dessen Inhalt aufgelistet werden soll
-   * @param ctxPath  Kontext Pfad zur Bildung des URL, der auf die Miniaturansicht verweist 
+   * @param relPathAndName Name und relativer Pfad des Ordners, dessen Inhalt aufgelistet werden soll
+   * @param urlBase  Kontext Pfad zur Bildung des URL fuer Miniaturansicht und imgsrc bei Bilddateien
    * (koennte evtl. im Client gebildet werden, hier dann nur Mini-Dateiname zurueckgeben)
    * @param base  Basisverzeichnis, gegen das der relative Pfad aufgeloest werden soll
    * @return die Dateiliste als JSON String
    * @throws IOException 
    */
-  public String liste(String fName, String ctxPath, String base/*, String path*/) throws IOException {
-    File[] files = new File(base, fName).listFiles(new ImageFileFilter());
+  public String list(String relPathAndName, String urlBase, String base) throws IOException {
+    File[] files = new File(base, relPathAndName).listFiles(new ImageFileFilter());
     if (files != null && files.length > 0) {
       Arrays.sort(files);
       ArrayList liste = new ArrayList();
       for (File file : files) {
-        Datei datei = new Datei();
+        FileRef datei = new FileRef();
         String dateiName = file.getName();
         datei.setName(dateiName);
         if (file.isDirectory()) {
-          datei.setTyp(Datei.TYP_ORDNER);
+          datei.setTyp(FileRef.TYP_ORDNER);
         } else {
-          datei.setTyp(Datei.TYP_DATEI);
+          datei.setTyp(FileRef.TYP_DATEI);
         }
         String lowerName = dateiName.toLowerCase();
         if (lowerName.endsWith(ImageFileFilter.JPEG)
@@ -71,7 +71,7 @@
           datei.setBild(true);
           String ext = dateiName.substring(dateiName.lastIndexOf(STR_DOT));
           String ohneExt = dateiName.substring(0, dateiName.lastIndexOf(STR_DOT));
-          datei.setMiniurl(ctxPath + /*"/" + */ fName + ohneExt + ImageFileFilter.TN + ext);
+          datei.setMiniurl(urlBase + /*"/" + */ relPathAndName + ohneExt + ImageFileFilter.TN + ext);
           //buildImgSrc(file, datei, ohneExt, ext);
         }
         liste.add(datei);
@@ -85,8 +85,8 @@
       //}
       if (!liste.isEmpty()) {
         DirList list = new DirList();
-        list.setPfad(ctxPath + fName);
-        list.setDateien(liste);
+        list.setDirectory(urlBase + relPathAndName);
+        list.setFiles(liste);
         Gson gson = new Gson();
         String json = gson.toJson(list);
         return json;
diff --git a/src/de/uhilger/fm/Deflator.java b/src/de/uhilger/fm/Deflator.java
index b4e3689..8b66b10 100644
--- a/src/de/uhilger/fm/Deflator.java
+++ b/src/de/uhilger/fm/Deflator.java
@@ -27,7 +27,7 @@
 import java.util.zip.ZipOutputStream;
 
 /**
- * Eine Klasse mit Methoden zum Packen von Dateien #
+ * Packen von Dateien
  *
  * @author Ulrich Hilger, 15. Januar 2024
  */
@@ -40,7 +40,7 @@
    * Einen Ordner packen.
    *
    * Als Ziel wird eine neue Datei mit Dateiendung '.zip' erzeugt, die so heisst wie der Ordner, der
-   * gapckt werden soll. Die Datei mit dem gepackten Ordnerinhalt wird in dem Ordner angelegt, der
+   * gepackt werden soll. Die Datei mit dem gepackten Ordnerinhalt wird in dem Ordner angelegt, der
    * den zu packenden Ordner enthaelt.
    *
    * @param fName Name des zu packenden Ordners
diff --git a/src/de/uhilger/fm/DirList.java b/src/de/uhilger/fm/DirList.java
index 60be8b8..56e3ff7 100644
--- a/src/de/uhilger/fm/DirList.java
+++ b/src/de/uhilger/fm/DirList.java
@@ -25,23 +25,23 @@
  * @author Ulrich Hilger, 15. Januar 2024
  */
 public class DirList {
-    private String pfad;
-    private List<Datei> dateien;
+    private String dir;
+    private List<FileRef> dateien;
 
-    public String getPfad() {
-      return pfad;
+    public String getDirectory() {
+      return dir;
     }
 
-    public void setPfad(String pfad) {
-      this.pfad = pfad;
+    public void setDirectory(String path) {
+      this.dir = path;
     }
 
-    public List<Datei> getDateien() {
+    public List<FileRef> getFiles() {
       return dateien;
     }
 
-    public void setDateien(List<Datei> dateien) {
-      this.dateien = dateien;
+    public void setFiles(List<FileRef> files) {
+      this.dateien = files;
     }
     
   
diff --git a/src/de/uhilger/fm/Datei.java b/src/de/uhilger/fm/FileRef.java
similarity index 98%
rename from src/de/uhilger/fm/Datei.java
rename to src/de/uhilger/fm/FileRef.java
index c8e6fed..11471ef 100644
--- a/src/de/uhilger/fm/Datei.java
+++ b/src/de/uhilger/fm/FileRef.java
@@ -23,7 +23,7 @@
  * @author Ulrich Hilger
  * @version 1, 11. Mai 2021
  */
-public class Datei {
+public class FileRef {
   
   public static final String TYP_DATEI = "datei";
   public static final String TYP_ORDNER = "ordner";
diff --git a/src/de/uhilger/fm/Renamer.java b/src/de/uhilger/fm/Renamer.java
index 85e0d08..83a1e87 100644
--- a/src/de/uhilger/fm/Renamer.java
+++ b/src/de/uhilger/fm/Renamer.java
@@ -17,7 +17,6 @@
  */
 package de.uhilger.fm;
 
-import com.sun.net.httpserver.HttpExchange;
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.DirectoryStream;
@@ -33,7 +32,7 @@
   
   public static final String STR_DOT = ".";
   
-  public String umbenennen(/*HttpExchange exchange, */String relPfad, String neuerName, File file) 
+  public String rename(/*HttpExchange exchange, */String relPfad, String neuerName, File file) 
           throws IOException {
     File neueDatei;
     String fname = file.getName().toLowerCase();
diff --git a/src/de/uhilger/fm/package-info.java b/src/de/uhilger/fm/package-info.java
index 291bed9..375d662 100644
--- a/src/de/uhilger/fm/package-info.java
+++ b/src/de/uhilger/fm/package-info.java
@@ -1,19 +1,17 @@
 /**
- * Klassen fuer das Dateimanagement mit java.nio.file. 
+ * Klassen fuer das Dateimanagement mit <code>java.nio.file</code>. 
  * 
  * Die folgenden Funktionen sind enthalten:
  * 
  * <pre>
  * Ordnerinhalt auflisten:    
- *    Lister().liste(ordnerName, ctx, basisOrdner)
- * 
- *   TODO: JSON-Liste und Miniurl sowie Handhabung von Bilddateien ueberpruefen
+ *    Catalog().list(relPathAndName, miniUrlBase, baseDir)
  * 
  * Datei speichern:
- *    Writer.speichern(file, content)
+ *    Writer().speichern(file, content)
  * 
  * Dateien und Ordner loeschen:
- *    Eraser.deleteFiles(relPfad, dateiname, basis)
+ *    Eraser().deleteFiles(relPfad, dateiname, basis)
  * 
  * Kopieren von Dateien und Ordnern:
  *    Mover().copyOrMoveFiles(quelle, ziel, dateiNamen, op, base)
@@ -33,5 +31,48 @@
  * Entpacken einer ZIP-Datei:
  *    Inflator().extractZipfile(fileName, path, base)
  * </pre>
+ * 
+ * <p>Die folgenden Funktionalitaeten sind in dieser Auspraegung einer  
+ * Dateiverwaltung fest angelegt. Sie sind damit Kandidaten fuer eine 
+ * Erweiterung dieser Klassenbibliothek um andere evtl. benoetigte 
+ * Auspraegungen.</p>
+ * 
+ * <p>Handhabung von Bilddateien</p>
+ * 
+ * Neben der Datei eines Bildes in Originalgroesse werden weitere Dateien als Varianten 
+ * eines Bildes unterstuetzt.
+ * 
+ * In Dateilisten werden diese Varianten ausgeblendet und nur das Originalbild gezeigt. 
+ * 
+ * Die Dateinamen von Varianten eines Bildes muessen dazu einen mit Unterstrich beginnenden 
+ * Namenszusatz enthalten wie bspw. <code>_tn</code> fuer thumbnail oder <code>_sm</code> 
+ * fuer small usw. Gleichsam lassen sich damit Eigenschaften wie zum Beispiel 
+ * eine Base64-Kodierung kombinieren. Hier waere der Namenszusatz dann eine Kombination 
+ * aus Groesse und Kodierung wie mit <code>_sm_b64</code>, so dass sich fuer ein Bild stets 
+ * eine ganze Gruppe von Datien ergibt, z.B.:
+ * 
+ * <pre>
+ * bild.jpg
+ * bild_sm.jpg
+ * bild_sm_b64.jpg
+ * </pre>
+ * 
+ * Alle Dateioperationen dieser Klassenbibliothek wirken dennoch stets auf 
+ * alle Varianten des Bildes, wie es auf der Kommandozeile mit einem Wildcard-Operator 
+ * gemacht wuerde, z.B.
+ * 
+ * <pre>
+ *   cp /pfad/zum/bild*.jpg /pfad/zum/zielordner
+ * </pre>
+ * 
+ * Eine Dateiliste enthaelt aus diesem Grund fuer Bilddateien die beiden zusaetzlichen Angaben 
+ * <code>miniurl</code> und <code>imgsrc</code>. 
+ * 
+ * <p>Ordnerliste im JSON-Format</p>
+ * 
+ * Die Liste mit Dateien eines Ordners wird im JSON-Format ausgegeben. Ueber eine 
+ * entsprechende Erweiterung koennte die Ausgabe in verschiedenen waehlbaren Formaten 
+ * erfolgen.
+ * 
  */
 package de.uhilger.fm;
\ No newline at end of file

--
Gitblit v1.9.3