Class MetaFileLoader

java.lang.Object
fr.gpmsi.pmsixml.MetaFileLoader

public class MetaFileLoader extends Object
Recherche et charge un fichier de métadonnées Fsz par nom et un répertoire donné. Exemple d'utilisation :
       MetaFileLoader mfl = new MetaFileLoader(new File("C:\\metadonnees_locales"));
       FszGroupMeta gmeta = mfl.getOrLoadMeta("/fr/gpmsi/pmsixml/fichcompmed2020.csv");
       fichcompmed = gmeta.getFirstChildGroupMeta();
       g = fichcompmed.makeBlankInstance();
       g.NADL.value = '900123456';
       //etc.
 
  • Constructor Details

    • MetaFileLoader

      public MetaFileLoader()
      constructeur par défaut
    • MetaFileLoader

      public MetaFileLoader(File dir)
      Constructeur avec le répertoire des métadonnées
      Parameters:
      dir - Le répertoire des métadonnées
  • Method Details

    • getMetaFilesDir

      public File getMetaFilesDir()
      retourner le répertoire des métadonnées
      Returns:
      Le répertoire des métadonnées
    • setMetaFilesDir

      public void setMetaFilesDir(File metaFilesDir)
      Définir le répertoire des métadonnées
      Parameters:
      metaFilesDir - Le répertoire des métadonnées
    • getInputStream

      public InputStream getInputStream(String resourceName) throws FileNotFoundException, MissingMetafileException
      Rechercher un InputStream spécial pour pmsixml, soit par le metaFilesDir (qui est toujours recherché en premier) soit par les resources, qui sont dans le jar de distribution. Pour les resources, si le nom de resource ne commence pas par un "/", alors le préfixe "/fr/gpmsi/pmsixml/" est ajouté devant le nom de ressource . Sinon le nom est laissé tel quel (déconseillé, un mot de warning est mis dans le log).
      Parameters:
      resourceName - le nom de la ressource à rechercher. Devrait contenir le préfixe /fr/gpmsi/pmsixml/ .
      Returns:
      Le InputStream correspondant
      Throws:
      FileNotFoundException - Si la ressource n'a pas été retrouvée dans le système de fichiers
      MissingMetafileException - Si le fichier de métadonnées n'existe pas dans les ressources de fichier
    • loadMeta

      Charger un FszGroupMeta par son nom (doit avoir le préfixe /fr/gpmsi/pmsixml/)
      Parameters:
      name - le nom de la métadonnée de groupe
      Returns:
      La métadonnée du groupe
      Throws:
      FieldParseException - Si erreur d'analyse de la définition
      IOException - Si erreur E/S
      MissingMetafileException - Si définition de métadonnées non trouvées
    • getOrLoadMeta

      Rechercher un fichier meta soit en ressource, soit dans le répertoire des fichiers meta. Ex : getOrLoadMeta("/fr/gpmsi/pmsixml/tra2016.csv"). Le FszGroupMeta est mis en cache, et donc si il est demandé à nouveau par cette méthode, il est pris directement dans le cache.
      Parameters:
      name - Le nom du fichier meta (doit avoir le préfixe /fr/gpmsi/pmsixml/)
      Returns:
      Le FszGroupMeta trouvé
      Throws:
      FieldParseException - si erreur d'analyse du fichier meta retrouvé
      IOException - Si erreur E/S
      MissingMetafileException - Si le fichier meta n'existe pas
    • listResourceFiles

      public static String[] listResourceFiles() throws IOException
      Lire la liste de tous les fichiers 'resource', qui se trouvent dans fr.gpmsi.pmsixml et qui sont de type .txt, .csv, .ods, .xml, .png, .jpg, .jpeg
      Returns:
      Un tableau avec la liste des fichiers ou null si le jar n'a pas été trouvé
      Throws:
      IOException - Si erreur E/S