Package fr.ifremer.isisfish.datastore
Class ResultStorageAbstract
java.lang.Object
fr.ifremer.isisfish.datastore.ResultStorageAbstract
- All Implemented Interfaces:
ResultStorage
,SimulationListener
,SimulationResultGetter
,SimulationResultListener
- Direct Known Subclasses:
ResultMappedStorage
,ResultStorageCSV
,ResultStorageInMemory
public abstract class ResultStorageAbstract
extends Object
implements SimulationResultListener, SimulationResultGetter, ResultStorage
Classe abstraite servant a factoriser tous les traitements commun au differente
implantation. Lorsqu'on herite de cette classe il reste a definir la lecture
et l'ecriture reel des resultats (en memoire, en base, binary file, ...)
Created: 24 juin 2014
- Version:
- $Revision$ Mise a jour: $Date$ par : $Author$
- Author:
- Benjamin Poussin : poussin@codelutin.com
-
Field Summary
Modifier and TypeFieldDescriptionprotected EntitySemanticsDecorator
result enabledprotected SimulationStorage
-
Constructor Summary
ConstructorDescriptionResultStorageAbstract
(SimulationStorage simulation) Les ResultStorage ne doivent pas etre instancier directement, mais recuperer a partir d'unSimulationStorage.getResultStorage()
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addActiveRule
(TimeStep step, Rule rule) void
addResult
(boolean force, TimeStep step, Population pop, org.nuiton.math.matrix.MatrixND mat) void
addResult
(boolean force, TimeStep step, String name, Population pop, org.nuiton.math.matrix.MatrixND mat) void
void
void
addResult
(SimulationContext context, TimeStep step, String name, org.nuiton.math.matrix.MatrixND mat) void
addResult
(TimeStep step, Population pop, org.nuiton.math.matrix.MatrixND mat) void
addResult
(TimeStep step, String name, Population pop, org.nuiton.math.matrix.MatrixND mat) void
void
void
afterSimulation
(SimulationContext context) called after simulationvoid
beforeSimulation
(SimulationContext context) called before simulationvoid
close()
Close result storage.protected org.nuiton.math.matrix.MatrixND
decorate
(org.nuiton.math.matrix.MatrixND mat, org.nuiton.topia.TopiaContext tx) void
delete()
Delete all result for this result storage.protected void
doAddResult
(TimeStep step, String name, org.nuiton.math.matrix.MatrixND mat) getInfo()
Return some information on result storage.Get last simulation date.org.nuiton.math.matrix.MatrixND
getMatrix
(Population pop, String name) Retourne une matrice contenant tous les pas de temps.org.nuiton.math.matrix.MatrixND
getMatrix
(Population pop, String name, org.nuiton.topia.TopiaContext tx) Retourne une matrice contenant tous les pas de temps.org.nuiton.math.matrix.MatrixND
getMatrix
(SimulationContext context, TimeStep step, String name) Retourne la matrice stocke pour un pas de temps.org.nuiton.math.matrix.MatrixND
getMatrix
(SimulationContext context, String name) Retourne une matrice contenant tous les pas de temps.org.nuiton.math.matrix.MatrixND
getMatrix
(SimulationContext context, List<TimeStep> steps, String name) Retourne la matrice stocke pour un ensemble de pas de temps.org.nuiton.math.matrix.MatrixND
getMatrix
(TimeStep step, Population pop, String name) Retourne la matrice stocke pour un pas de tempsorg.nuiton.math.matrix.MatrixND
getMatrix
(TimeStep step, Population pop, String name, org.nuiton.topia.TopiaContext tx) Retourne la matrice stocke pour un pas de tempsorg.nuiton.math.matrix.MatrixND
org.nuiton.math.matrix.MatrixND
Retourne une matrice contenant tous les pas de temps.org.nuiton.math.matrix.MatrixND
Retourne une matrice contenant tous les pas de temps.org.nuiton.math.matrix.MatrixND
Retourne une matrice contenant tous les pas de temps.org.nuiton.math.matrix.MatrixND
getMatrix
(List<TimeStep> steps, Population pop, String name) Retourne la matrice stocke pour des pas de tempsorg.nuiton.math.matrix.MatrixND
getMatrix
(List<TimeStep> steps, Population pop, String name, org.nuiton.topia.TopiaContext tx) org.nuiton.math.matrix.MatrixND
org.nuiton.math.matrix.MatrixND
Retourne la matrice stocke pour des pas de temps.protected org.nuiton.math.matrix.MatrixFactory
sub class can overwrite this method to return specifique factoryprotected EntitySemanticsDecorator.EntityProvider
getProvider
(org.nuiton.topia.TopiaContext tx) Try to find better tx.return list of all result name availableboolean
Deprecated.since 4.4.0.0 : this method is duplicated with ResultManager#isEnabled(String)protected abstract org.nuiton.math.matrix.MatrixND
readResult
(TimeStep step, String name) Return one result for step and name.void
stepChange
(SimulationContext context, TimeStep step) Receive event when simulation change stepprotected String
undecorate
(Object o) undecorate
(List l) return new list with undecorate itemprotected org.nuiton.math.matrix.MatrixND
undecorate
(org.nuiton.math.matrix.MatrixND mat) Return undecorated version of matrix in argumentprotected abstract void
writeActiveRule
(TimeStep step, String name, String params) Write active ruleprotected abstract void
writeResult
(TimeStep step, String name, org.nuiton.math.matrix.MatrixND mat) write result
-
Field Details
-
simulation
-
decorator
-
enabledResult
result enabled
-
-
Constructor Details
-
ResultStorageAbstract
Les ResultStorage ne doivent pas etre instancier directement, mais recuperer a partir d'unSimulationStorage.getResultStorage()
- Parameters:
simulation
- storage to get result
-
-
Method Details
-
readResult
Return one result for step and name. Matrix returned must be undecorated (semantics must be string representation of object)- Parameters:
step
-name
-- Returns:
-
writeResult
protected abstract void writeResult(TimeStep step, String name, org.nuiton.math.matrix.MatrixND mat) write result- Parameters:
step
-name
-mat
-
-
writeActiveRule
Write active rule- Parameters:
step
-name
-params
-
-
getResultName
return list of all result name available- Specified by:
getResultName
in interfaceResultStorage
- Returns:
-
getMatrixFactory
protected org.nuiton.math.matrix.MatrixFactory getMatrixFactory()sub class can overwrite this method to return specifique factory- Returns:
-
getInfo
Return some information on result storage. Information depend on result storage type- Specified by:
getInfo
in interfaceResultStorage
- Returns:
-
decorate
protected org.nuiton.math.matrix.MatrixND decorate(org.nuiton.math.matrix.MatrixND mat, org.nuiton.topia.TopiaContext tx) -
undecorate
protected org.nuiton.math.matrix.MatrixND undecorate(org.nuiton.math.matrix.MatrixND mat) Return undecorated version of matrix in argument- Parameters:
mat
-- Returns:
- new matrix undecorated
-
undecorate
return new list with undecorate item- Parameters:
l
-- Returns:
- new list
-
undecorate
-
delete
public void delete()Description copied from interface:ResultStorage
Delete all result for this result storage. In case of sensitivity analysis, after export, result are no longer needed and can be deleted to save disk space.- Specified by:
delete
in interfaceResultStorage
-
close
public void close()Description copied from interface:ResultStorage
Close result storage.- Specified by:
close
in interfaceResultStorage
-
addResult
- Specified by:
addResult
in interfaceResultStorage
- Throws:
IsisFishException
-
addResult
public void addResult(TimeStep step, Population pop, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException - Specified by:
addResult
in interfaceResultStorage
- Throws:
IsisFishException
-
addResult
public void addResult(boolean force, TimeStep step, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException - Specified by:
addResult
in interfaceResultStorage
- Throws:
IsisFishException
-
addResult
public void addResult(boolean force, TimeStep step, Population pop, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException - Specified by:
addResult
in interfaceResultStorage
- Throws:
IsisFishException
-
addResult
public void addResult(TimeStep step, String name, Population pop, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException - Specified by:
addResult
in interfaceResultStorage
- Throws:
IsisFishException
-
addResult
public void addResult(TimeStep step, String name, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException - Specified by:
addResult
in interfaceResultStorage
- Throws:
IsisFishException
-
addResult
public void addResult(boolean force, TimeStep step, String name, Population pop, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException - Specified by:
addResult
in interfaceResultStorage
- Throws:
IsisFishException
-
addResult
public void addResult(boolean force, TimeStep step, String name, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException - Specified by:
addResult
in interfaceResultStorage
- Throws:
IsisFishException
-
doAddResult
protected void doAddResult(TimeStep step, String name, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException - Throws:
IsisFishException
-
isEnabled
Deprecated.since 4.4.0.0 : this method is duplicated with ResultManager#isEnabled(String)Permet de savoir si lorsque l'on ajoutera ce resultat, il sera sauvé ou non. Check for result name returned by :- Specified by:
isEnabled
in interfaceResultStorage
- Parameters:
name
- result name- Returns:
true
if result is enabled
-
addActiveRule
- Specified by:
addActiveRule
in interfaceResultStorage
- Throws:
IsisFishException
-
getMatrix
Retourne la matrice stocke pour un pas de temps- Specified by:
getMatrix
in interfaceResultStorage
- Parameters:
step
- le pas de temps que l'on souhaitepop
- la population pour lequelle on souhaite le resultatname
- le nom des resultats dont on veut la matrice- Returns:
- La matrice demandée ou null si aucune matrice ne correspond a la demande.
-
getMatrix
public org.nuiton.math.matrix.MatrixND getMatrix(TimeStep step, Population pop, String name, org.nuiton.topia.TopiaContext tx) Retourne la matrice stocke pour un pas de temps- Specified by:
getMatrix
in interfaceResultStorage
- Parameters:
step
- le pas de temps que l'on souhaitepop
- la population pour lequelle on souhaite le resultatname
- le nom des resultats dont on veut la matrice- Returns:
- La matrice demandée ou null si aucune matrice ne correspond a la demande.
-
getMatrix
- Specified by:
getMatrix
in interfaceResultStorage
-
getMatrix
public org.nuiton.math.matrix.MatrixND getMatrix(TimeStep step, String name, org.nuiton.topia.TopiaContext tx) Retourne une matrice contenant tous les pas de temps.- Specified by:
getMatrix
in interfaceResultStorage
- Parameters:
name
- le nom des resultats dont on veut une matrice globale.step
- le pas de temps que l'on souhaitetx
- TopiaContext a utiliser pour recuperer les resultats et donc les semantiques- Returns:
- copy of result matrix
-
getMatrix
Retourne une matrice contenant tous les pas de temps.- Specified by:
getMatrix
in interfaceResultStorage
- Parameters:
pop
- la population pour lequel on souhaite la matricename
- le nom des resultats dont on veut une matrice globale.
-
getMatrix
public org.nuiton.math.matrix.MatrixND getMatrix(Population pop, String name, org.nuiton.topia.TopiaContext tx) Description copied from interface:ResultStorage
Retourne une matrice contenant tous les pas de temps.- Specified by:
getMatrix
in interfaceResultStorage
- Parameters:
pop
- la population pour lequel on souhaite la matricename
- le nom des resultats dont on veut une matrice globale.tx
- la transaction a utiliser
-
getMatrix
Retourne une matrice contenant tous les pas de temps.- Specified by:
getMatrix
in interfaceResultStorage
- Parameters:
name
- le nom des resultats dont on veut une matrice globale.
-
getMatrix
Retourne une matrice contenant tous les pas de temps.- Specified by:
getMatrix
in interfaceResultStorage
- Parameters:
name
- le nom des resultats dont on veut une matrice globale.tx
- TopiaContext a utiliser pour recuperer les resultats et donc les semantiques- Returns:
- new Matrix
-
getMatrix
Description copied from interface:ResultStorage
Retourne la matrice stocke pour des pas de temps- Specified by:
getMatrix
in interfaceResultStorage
- Parameters:
steps
- les pas de temps que l'on souhaitepop
- la population pour lequelle on souhaite le resultatname
- le nom des resultats dont on veut la matrice- Returns:
- La matrice demandée ou null si aucune matrice ne correspond a la demande.
-
getMatrix
public org.nuiton.math.matrix.MatrixND getMatrix(List<TimeStep> steps, Population pop, String name, org.nuiton.topia.TopiaContext tx) - Specified by:
getMatrix
in interfaceResultStorage
-
getMatrix
- Specified by:
getMatrix
in interfaceResultStorage
-
getMatrix
public org.nuiton.math.matrix.MatrixND getMatrix(List<TimeStep> steps, String name, org.nuiton.topia.TopiaContext tx) Description copied from interface:ResultStorage
Retourne la matrice stocke pour des pas de temps.- Specified by:
getMatrix
in interfaceResultStorage
- Parameters:
steps
- les pas de temps que l'on souhaitename
- le nom des resultats dont on veut la matricetx
- TopiaContext a utiliser pour recuperer les resultats et donc les semantiques- Returns:
- La matrice demandée ou
null
si aucune matrice ne correspond a la demande.
-
getLastStep
Get last simulation date.- Specified by:
getLastStep
in interfaceResultStorage
- Returns:
- last simulation date
-
addResult
public void addResult(SimulationContext context, TimeStep step, String name, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException - Specified by:
addResult
in interfaceSimulationResultListener
- Throws:
IsisFishException
-
getMatrix
public org.nuiton.math.matrix.MatrixND getMatrix(SimulationContext context, TimeStep step, String name) Description copied from interface:SimulationResultGetter
Retourne la matrice stocke pour un pas de temps.- Specified by:
getMatrix
in interfaceSimulationResultGetter
step
- le pas de temps que l'on souhaitename
- le nom des resultats dont on veut la matrice- Returns:
- La matrice demandée ou null si aucune matrice ne correspond a la demande.
-
getMatrix
public org.nuiton.math.matrix.MatrixND getMatrix(SimulationContext context, List<TimeStep> steps, String name) Description copied from interface:SimulationResultGetter
Retourne la matrice stocke pour un ensemble de pas de temps.- Specified by:
getMatrix
in interfaceSimulationResultGetter
steps
- les pas de temps que l'on souhaitename
- le nom des resultats dont on veut la matrice- Returns:
- La matrice demandée ou null si aucune matrice ne correspond a la demande.
-
getMatrix
Description copied from interface:SimulationResultGetter
Retourne une matrice contenant tous les pas de temps.- Specified by:
getMatrix
in interfaceSimulationResultGetter
name
- le nom des resultats dont on veut une matrice globale.
-
getProvider
Try to find better tx. If argument is not null, return it. otherwize try to get tx in SimulationContext.- Parameters:
tx
-- Returns:
-
afterSimulation
Description copied from interface:SimulationListener
called after simulation- Specified by:
afterSimulation
in interfaceSimulationListener
-
beforeSimulation
Description copied from interface:SimulationListener
called before simulation- Specified by:
beforeSimulation
in interfaceSimulationListener
-
stepChange
Description copied from interface:SimulationListener
Receive event when simulation change step- Specified by:
stepChange
in interfaceSimulationListener
step
- new Step
-