fr.ifremer.isisfish.datastore
Class SimulationStorage

java.lang.Object
  extended by fr.ifremer.isisfish.datastore.VersionStorage
      extended by fr.ifremer.isisfish.datastore.DataStorage
          extended by fr.ifremer.isisfish.datastore.SimulationStorage

public class SimulationStorage
extends DataStorage

Class permettant la gestion de la persistance d'une simulation. Created: 17 août 2005 03:48:50 CEST

Version:
$Revision: 3034 $ Last update: $Date: 2010-04-29 18:14:25 +0200 (jeu., 29 avril 2010) $ by : $Author: chatellier $
Author:
Benjamin POUSSIN

Field Summary
static String CONTROL_FILENAME
           
static String DESIGN_PLAN_FILENAME
           
protected  SimulationInformation information
          some free information, that user can add during simulation
static String INFORMATION_FILENAME
           
static String LOG_CATEGORY
          represent the category used for logging in simulation
protected  SimulationParameter parameter
           
static String PARAMETERS_FILENAME
           
static String RESULT_EXPORT_DIRECTORY
           
static String RESULT_XML_FILENAME
           
protected  ResultStorage resultStorage
           
static String SENSITIVITY_RESULTS
           
static String SIMULATION_PATH
           
protected  File simulationControlFile
           
protected static Map<String,SimulationStorage> simulations
          Cache des simulation storage.
protected  boolean useLog
          flag to says if simulation is actually using a simulation logger
 
Fields inherited from class fr.ifremer.isisfish.datastore.DataStorage
DATA_BACKUP_FILENAME, memstorage, name, storage
 
Fields inherited from class fr.ifremer.isisfish.datastore.VersionStorage
changeListeners, file, root
 
Constructor Summary
protected SimulationStorage(File directory, String name, SimulationParameter parameter)
          Pour la lecture d'une simulation existante.
 
Method Summary
 void addSimulationLogger(String simulLogLevel, String scriptLogLevel, String libLogLevel, String threadName)
          This method add logger for current simulation
static void checkout(String name)
          Checkout not existing Simulation localy from server
static SimulationStorage create(String name, SimulationParameter parameter)
          Permet de créer une nouvelle simulation si la simulation existe déjà une exception est levée.
 File createZip(File file)
          Cree un zip.
static boolean exists(String name)
          Indique si la simulation demandée existe ou non.
 void extractRegion(String regionName)
          Extract the region of a given simulation in a
protected  String getAppenderId()
           
static FisheryRegion getFisheryRegion(org.nuiton.topia.TopiaContext context)
          Retourne la FisheryRegion associee a cette simulation.
 SimulationParameter getForceReloadParameter()
          Permet de force la relecture des parametres et donc que les scripts soit charge dans le bon classloader
 SimulationInformation getInformation()
          Get simulation informations.
protected  File getInformationFile()
          Retourne le nom du fichier contenant les informations de simulation.
static File getMexicoDesignPlan(File root)
          Get Mexico XML design plan file.
static List<String> getNewRemoteSimulationNames()
          Retourne la liste des noms de toutes les régions disponible sur le serveur VCS qui ne sont pas encore en local.
static List<String> getNewSimulationNames()
          Retourne la liste des noms de toutes les régions disponible en local qui ne sont pas encore sur le serveur VCS.
 SimulationParameter getParameter()
          Get parameter property.
static List<String> getRemoteSimulationNames()
          Retourne la liste des noms de toutes les régions disponible sur le serveur VCS.
static File getResultExportDirectory(File root)
          Retourne le repertoire de stockage des exports de resultat d'une simulation.
 ResultStorage getResultStorage()
          Get simulation ResultStorage.
static File getSensitivityResultsDirectory()
          Retourne le repertoire de base de stockage des resutats des analyses de sensibilité.
static SimulationStorage getSimulation(String name)
          Retourne la simulation demandée.
protected  File getSimulationControlFile()
          Retourne le fichier de stockage du fichier de control de la simulation.
protected static File getSimulationControlFile(String id)
          Retourne le fichier de stockage du fichier de control de la simulation.
static File getSimulationDirectory()
          Retourne le repertoire de base de stockage des simulations.
static File getSimulationDirectory(String name)
          Retourne le repertoire de stockage d'une simulation portant le nom name.
static File getSimulationInformationFile(File root)
          Retourne le fichier de stockage des inforations de la simulation.
 String getSimulationLogFile()
           
static List<String> getSimulationNames()
          Retourne la liste des noms de toutes les régions disponible en local.
protected  File getSimulationParametersFile()
          Retourne le fichier de stockage des parametres de la simulation courante.
static File getSimulationParametersFile(File root)
          Retourne le fichier de stockage des parametres de la simulation.
static File getSimulationResultXmlFile(File root)
          Retourne le fichier de stockage des resultats sous format XML mexico de la simulation.
static SimulationStorage importAndRenameZip(File directory, File file, String newName)
          Import zipped simulation in specific directory, result is not put in cache.
static SimulationStorage importAndRenameZip(File file, String newName)
          Import zipped simulation.
static SimulationStorage importZip(File file)
          Import zipped simulation.
protected  boolean isVersionnableFile(File file)
          Permet de savoir si un fichier doit etre géré par le vcs ou non.
static boolean localyExists(String name)
          Indique si la simulation demandée existe ou non.
static void readControl(File controlFile, SimulationControl control, String... exclude)
          Reli le fichier contenant les infos de SimulationControl, en excluant certain champs.
static void readControl(String id, SimulationControl control, String... exclude)
          Relit le fichier contenant les infos de SimulationControl, en excluant certain champs.
 void removeSimulationLogger()
          this method remove logger for the simulation
 void rename(String toName)
          Renome juste le repertoire, s'il y a besoin de modifier des données dans le TopiaContext il faut surcharger cette methode.
 void saveControl(SimulationControl control)
          Force la sauvegarde du fichier de control d'une simulation, ce fichier est sous la forme d'un fichier de proprietes
 void setParameter(SimulationParameter parameter)
          Modifie les parametres de la simulation.
 
Methods inherited from class fr.ifremer.isisfish.datastore.DataStorage
closeMemStorage, closeStorage, copy, createZip, createZip, delete, finalize, getDataBackupFile, getDirectory, getMemStorage, getName, getStorage, getStorageDirectory, prepare
 
Methods inherited from class fr.ifremer.isisfish.datastore.VersionStorage
add, addStorageChangeListener, checkout, commit, fireDataChanged, getContextDatabaseCacheKey, getContextDatabaseDirectory, getFile, getFiles, getFiles, getRemoteStorageNames, getRoot, getStorageNames, getVCS, isOnRemote, isUpToDate, removeStorageChangeListener, update
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SIMULATION_PATH

public static final String SIMULATION_PATH
See Also:
Constant Field Values

INFORMATION_FILENAME

public static final String INFORMATION_FILENAME
See Also:
Constant Field Values

CONTROL_FILENAME

public static final String CONTROL_FILENAME
See Also:
Constant Field Values

PARAMETERS_FILENAME

public static final String PARAMETERS_FILENAME
See Also:
Constant Field Values

RESULT_XML_FILENAME

public static final String RESULT_XML_FILENAME
See Also:
Constant Field Values

RESULT_EXPORT_DIRECTORY

public static final String RESULT_EXPORT_DIRECTORY
See Also:
Constant Field Values

DESIGN_PLAN_FILENAME

public static final String DESIGN_PLAN_FILENAME
See Also:
Constant Field Values

SENSITIVITY_RESULTS

public static final String SENSITIVITY_RESULTS
See Also:
Constant Field Values

simulations

protected static Map<String,SimulationStorage> simulations
Cache des simulation storage.


information

protected SimulationInformation information
some free information, that user can add during simulation


parameter

protected SimulationParameter parameter

resultStorage

protected transient ResultStorage resultStorage

LOG_CATEGORY

public static String LOG_CATEGORY
represent the category used for logging in simulation


useLog

protected boolean useLog
flag to says if simulation is actually using a simulation logger


simulationControlFile

protected transient File simulationControlFile
Constructor Detail

SimulationStorage

protected SimulationStorage(File directory,
                            String name,
                            SimulationParameter parameter)
Pour la lecture d'une simulation existante.

Parameters:
directory - repertoire de base du storage (inclu le nom de la sim)
name - le nom de la simulation
parameter - les paramètres de la simulation
Method Detail

getSimulationDirectory

public static File getSimulationDirectory()
Retourne le repertoire de base de stockage des simulations.

Returns:
simulation directory

getSimulationDirectory

public static File getSimulationDirectory(String name)
Retourne le repertoire de stockage d'une simulation portant le nom name.

Parameters:
name - le nom de la simulation dont on souhaite le repertoire
Returns:
simulation name directory

getSensitivityResultsDirectory

public static File getSensitivityResultsDirectory()
Retourne le repertoire de base de stockage des resutats des analyses de sensibilité.

Returns:
sensitivity result directory

getResultExportDirectory

public static File getResultExportDirectory(File root)
Retourne le repertoire de stockage des exports de resultat d'une simulation.

Parameters:
root - le repertoire de stockage de la simulation
Returns:
result export directory

getSimulationParametersFile

public static File getSimulationParametersFile(File root)
Retourne le fichier de stockage des parametres de la simulation.

Parameters:
root - le repertoire de stockage de la simulation
Returns:
parameter file

getSimulationInformationFile

public static File getSimulationInformationFile(File root)
Retourne le fichier de stockage des inforations de la simulation.

Parameters:
root - le repertoire de stockage de la simulation
Returns:
information file

getSimulationResultXmlFile

public static File getSimulationResultXmlFile(File root)
Retourne le fichier de stockage des resultats sous format XML mexico de la simulation.

Parameters:
root - le repertoire de stockage de la simulation
Returns:
mexico xml file

getSimulationParametersFile

protected File getSimulationParametersFile()
Retourne le fichier de stockage des parametres de la simulation courante.

Returns:
parameter file

getMexicoDesignPlan

public static File getMexicoDesignPlan(File root)
Get Mexico XML design plan file.

Parameters:
root - le repertoire de stockage de la simulation
Returns:
a File even if file doesn't exist

getSimulationControlFile

protected File getSimulationControlFile()
Retourne le fichier de stockage du fichier de control de la simulation. Ce fichier conserve l'etat de la simulation, cela permet a un processus externe de connaitre l'etat d'une simulation distante.

Returns:
simulation control file

getSimulationControlFile

protected static File getSimulationControlFile(String id)
Retourne le fichier de stockage du fichier de control de la simulation. Ce fichier conserve l'etat de la simulation, cela permet a un processus externe de connaitre l'etat d'une simulation distante.

Returns:
simulation control file

saveControl

public void saveControl(SimulationControl control)
Force la sauvegarde du fichier de control d'une simulation, ce fichier est sous la forme d'un fichier de proprietes

Parameters:
control - l'objet control de la simulation courante

readControl

public static void readControl(String id,
                               SimulationControl control,
                               String... exclude)
Relit le fichier contenant les infos de SimulationControl, en excluant certain champs.

Parameters:
id - l'identifiant de la simulation a lire
control - le control a mettre a jour en fonction de ce qui est lu
exclude - les champs a exclure

readControl

public static void readControl(File controlFile,
                               SimulationControl control,
                               String... exclude)
Reli le fichier contenant les infos de SimulationControl, en excluant certain champs.

Parameters:
controlFile - le fichier de control
control - le control a mettre a jour en fonction de ce qui est lu
exclude - les champs a exclure

setParameter

public void setParameter(SimulationParameter parameter)
Modifie les parametres de la simulation.

Parameters:
parameter - les nouveaux parametres

getParameter

public SimulationParameter getParameter()
Get parameter property.

Returns:
Parameter property.

getForceReloadParameter

public SimulationParameter getForceReloadParameter()
Permet de force la relecture des parametres et donc que les scripts soit charge dans le bon classloader

Returns:
les paramètres de la simulation après opération

getInformationFile

protected File getInformationFile()
Retourne le nom du fichier contenant les informations de simulation.

Returns:
information file

getInformation

public SimulationInformation getInformation()
Get simulation informations.

Returns:
simulation information

getResultStorage

public ResultStorage getResultStorage()
Get simulation ResultStorage.

Returns:
le ResultStorage a utiliser pour cette simulation

exists

public static boolean exists(String name)
Indique si la simulation demandée existe ou non.

Parameters:
name - le nom de la simulation à tester
Returns:
true si la simulation existe déjà

localyExists

public static boolean localyExists(String name)
Indique si la simulation demandée existe ou non.

Parameters:
name - le nom de la simulation à tester
Returns:
true si la simulation existe déjà

getSimulation

public static SimulationStorage getSimulation(String name)
Retourne la simulation demandée.

Parameters:
name - name of the required simulation
Returns:
la simulation souhaitée ou null si la simulation n'existe pas

create

public static SimulationStorage create(String name,
                                       SimulationParameter parameter)
                                throws StorageException
Permet de créer une nouvelle simulation si la simulation existe déjà une exception est levée.

Parameters:
name - le nom de la simulation
parameter - Les parametres de la simulation
Returns:
la nouvelle simulation
Throws:
StorageException - si problème lors de la création du storage
IllegalArgumentException - si le nom existe déjà en tant que simulation

getSimulationNames

public static List<String> getSimulationNames()
Retourne la liste des noms de toutes les régions disponible en local.

Returns:
la liste des noms de toutes les régions disponible en local

getNewSimulationNames

public static List<String> getNewSimulationNames()
Retourne la liste des noms de toutes les régions disponible en local qui ne sont pas encore sur le serveur VCS.

Returns:
liste de noms de simulations

getRemoteSimulationNames

public static List<String> getRemoteSimulationNames()
Retourne la liste des noms de toutes les régions disponible sur le serveur VCS.

Returns:
la liste des noms de toutes les régions disponible sur le serveur VCS. Si le serveur n'est pas disponible la liste retournée est vide.

getNewRemoteSimulationNames

public static List<String> getNewRemoteSimulationNames()
Retourne la liste des noms de toutes les régions disponible sur le serveur VCS qui ne sont pas encore en local.

Returns:
liste de noms de simulations

getFisheryRegion

public static FisheryRegion getFisheryRegion(org.nuiton.topia.TopiaContext context)
                                      throws StorageException
Retourne la FisheryRegion associee a cette simulation.

Parameters:
context - context
Returns:
simulation's FisheryRegion
Throws:
StorageException

checkout

public static void checkout(String name)
                     throws VCSException,
                            org.nuiton.topia.TopiaException
Checkout not existing Simulation localy from server

Parameters:
name - name of simulation to retrieve
Throws:
VCSException - si problème avec le VCS
org.nuiton.topia.TopiaException - si problème lors de l'opération sur la base embarquée

rename

public void rename(String toName)
            throws StorageException
Description copied from class: DataStorage
Renome juste le repertoire, s'il y a besoin de modifier des données dans le TopiaContext il faut surcharger cette methode. Il est surement necessaire de surcharger cette methode pour aussi modifier l'entre qu'il y a dans le cache.

Overrides:
rename in class DataStorage
Parameters:
toName - le nouveau nom
Throws:
StorageException - si problème lors du renommage

importZip

public static SimulationStorage importZip(File file)
                                   throws IOException,
                                          org.nuiton.topia.TopiaException
Import zipped simulation.

Parameters:
file - zipped region file
Returns:
region storage or null
Throws:
IOException - si problème IO lors de la lecture du zip
org.nuiton.topia.TopiaException - si problème lors de la création du contexte

importAndRenameZip

public static SimulationStorage importAndRenameZip(File file,
                                                   String newName)
                                            throws IOException,
                                                   org.nuiton.topia.TopiaException
Import zipped simulation.

Parameters:
file - zipped region file
newName - new name for the imported simulation
Returns:
region storage or null
Throws:
IOException - si problème IO lors de la lecture du zip
org.nuiton.topia.TopiaException - si problème lors de la création du contexte

importAndRenameZip

public static SimulationStorage importAndRenameZip(File directory,
                                                   File file,
                                                   String newName)
                                            throws IOException,
                                                   org.nuiton.topia.TopiaException
Import zipped simulation in specific directory, result is not put in cache.

Parameters:
directory - where we want new simulation storage
file - zipped region file
newName - new name for the imported simulation
Returns:
region storage or null
Throws:
IOException - si problème IO lors de la lecture du zip
org.nuiton.topia.TopiaException - si problème lors de la création du contexte

extractRegion

public void extractRegion(String regionName)
                   throws StorageException
Extract the region of a given simulation in a

Parameters:
regionName - the name of the region to export
Throws:
StorageException - if any problem while operation

addSimulationLogger

public void addSimulationLogger(String simulLogLevel,
                                String scriptLogLevel,
                                String libLogLevel,
                                String threadName)
This method add logger for current simulation

Parameters:
simulLogLevel - required min level for simulator logger
threadName - name of the thread to log (simulation thread)
scriptLogLevel - required min level fro scripts logger
libLogLevel - required min level for libraries logger

removeSimulationLogger

public void removeSimulationLogger()
this method remove logger for the simulation


getAppenderId

protected String getAppenderId()
Returns:
the appender id used for this simulation (simulation_name.hashcode())

getSimulationLogFile

public String getSimulationLogFile()
Returns:
the simulation log file

createZip

public File createZip(File file)
               throws IOException
Description copied from class: DataStorage
Cree un zip. Le zip contient les memes fichiers lorsqu'on utilise le CVS.

Overrides:
createZip in class DataStorage
Parameters:
file - le fichier dans lequel l'export doit se faire
Returns:
l'argument file
Throws:
IOException - si problème lors de la création du zip

isVersionnableFile

protected boolean isVersionnableFile(File file)
Description copied from class: VersionStorage
Permet de savoir si un fichier doit etre géré par le vcs ou non. L'implantation par defaut exclus les répertoires VCS, il faut toujours appeler le super si on surcharge la methode.

Overrides:
isVersionnableFile in class DataStorage
Parameters:
file - le fichier a tester
Returns:
true si le fichier est versionné


Copyright © 1999-2010 CodeLutin. All Rights Reserved.