Persoenliche Mediazentrale
ulrich
2021-04-10 ab8b2496218f49f49d2602987481e2dd7a3e7293
src/de/uhilger/mediaz/store/FileStorage.java
@@ -33,6 +33,7 @@
import java.io.IOException;
import java.util.logging.Logger;
import de.uhilger.mediaz.entity.Entity;
import de.uhilger.mediaz.entity.Titel;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -58,6 +59,7 @@
  public static final String ST_ABLAGEORT = "Ablageort";
  public static final String ST_EINSTELLUNG = "Einstellung";
  public static final String ST_ABSPIELER = "Abspieler";
  public static final String ST_ABSPIELLISTE = "Abspielliste";
  
  private final String fileBase;
  
@@ -71,11 +73,13 @@
    TypeToken<Einstellung> ttEinstellung = new TypeToken<Einstellung>() {};
    TypeToken<Abspieler> ttAbspieler = new TypeToken<Abspieler>() {};
    TypeToken<Abspielliste> ttAbspielliste = new TypeToken<Abspielliste>() {};
    TypeToken<Titel> ttTitel = new TypeToken<Titel>() {};
    types = new HashMap();
    types.put(Ablageort.class.getSimpleName(), ttAblageort);
    types.put(Einstellung.class.getSimpleName(), ttEinstellung);
    types.put(Abspieler.class.getSimpleName(), ttAbspieler);
    types.put(Abspielliste.class.getSimpleName(), ttAbspielliste);
    types.put(Titel.class.getSimpleName(), ttTitel);
  }
  
  /**
@@ -127,12 +131,13 @@
  
  public Entity entityFromFile(File file) throws ClassNotFoundException, FileNotFoundException, IOException {
    String json = readFromFile(file);
    logger.finer("json: " + json);
    Gson gson = new Gson();
    return gson.fromJson(json, typeFromName(typeNameFromPath(file)).getType());
  }
  
  private String typeNameFromPath(File file) {
    String[] parts = file.getPath().split(App.getRs(Server.RB_SLASH));
    String[] parts = file.getPath().split(Server.SLASH);
    return parts[parts.length-2];
  }