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 Details

  • Constructor Details

  • Method Details

    • readResult

      protected abstract org.nuiton.math.matrix.MatrixND readResult(TimeStep step, String name)
      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

      protected abstract void writeActiveRule(TimeStep step, String name, String params)
      Write active rule
      Parameters:
      step -
      name -
      params -
    • getResultName

      public abstract List<String> getResultName()
      return list of all result name available
      Specified by:
      getResultName in interface ResultStorage
      Returns:
    • getMatrixFactory

      protected org.nuiton.math.matrix.MatrixFactory getMatrixFactory()
      sub class can overwrite this method to return specifique factory
      Returns:
    • getInfo

      public String getInfo()
      Return some information on result storage. Information depend on result storage type
      Specified by:
      getInfo in interface ResultStorage
      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

      protected List<String> undecorate(List l)
      return new list with undecorate item
      Parameters:
      l -
      Returns:
      new list
    • undecorate

      protected String undecorate(Object o)
    • 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 interface ResultStorage
    • close

      public void close()
      Description copied from interface: ResultStorage
      Close result storage.
      Specified by:
      close in interface ResultStorage
    • addResult

      public void addResult(TimeStep step, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException
      Specified by:
      addResult in interface ResultStorage
      Throws:
      IsisFishException
    • addResult

      public void addResult(TimeStep step, Population pop, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException
      Specified by:
      addResult in interface ResultStorage
      Throws:
      IsisFishException
    • addResult

      public void addResult(boolean force, TimeStep step, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException
      Specified by:
      addResult in interface ResultStorage
      Throws:
      IsisFishException
    • addResult

      public void addResult(boolean force, TimeStep step, Population pop, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException
      Specified by:
      addResult in interface ResultStorage
      Throws:
      IsisFishException
    • addResult

      public void addResult(TimeStep step, String name, Population pop, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException
      Specified by:
      addResult in interface ResultStorage
      Throws:
      IsisFishException
    • addResult

      public void addResult(TimeStep step, String name, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException
      Specified by:
      addResult in interface ResultStorage
      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 interface ResultStorage
      Throws:
      IsisFishException
    • addResult

      public void addResult(boolean force, TimeStep step, String name, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException
      Specified by:
      addResult in interface ResultStorage
      Throws:
      IsisFishException
    • doAddResult

      protected void doAddResult(TimeStep step, String name, org.nuiton.math.matrix.MatrixND mat) throws IsisFishException
      Throws:
      IsisFishException
    • isEnabled

      public boolean isEnabled(String name)
      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 interface ResultStorage
      Parameters:
      name - result name
      Returns:
      true if result is enabled
    • addActiveRule

      public void addActiveRule(TimeStep step, Rule rule) throws IsisFishException
      Specified by:
      addActiveRule in interface ResultStorage
      Throws:
      IsisFishException
    • getMatrix

      public org.nuiton.math.matrix.MatrixND getMatrix(TimeStep step, Population pop, String name)
      Retourne la matrice stocke pour un pas de temps
      Specified by:
      getMatrix in interface ResultStorage
      Parameters:
      step - le pas de temps que l'on souhaite
      pop - la population pour lequelle on souhaite le resultat
      name - 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 interface ResultStorage
      Parameters:
      step - le pas de temps que l'on souhaite
      pop - la population pour lequelle on souhaite le resultat
      name - 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, String name)
      Specified by:
      getMatrix in interface ResultStorage
    • 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 interface ResultStorage
      Parameters:
      name - le nom des resultats dont on veut une matrice globale.
      step - le pas de temps que l'on souhaite
      tx - TopiaContext a utiliser pour recuperer les resultats et donc les semantiques
      Returns:
      copy of result matrix
    • getMatrix

      public org.nuiton.math.matrix.MatrixND getMatrix(Population pop, String name)
      Retourne une matrice contenant tous les pas de temps.
      Specified by:
      getMatrix in interface ResultStorage
      Parameters:
      pop - la population pour lequel on souhaite la matrice
      name - 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 interface ResultStorage
      Parameters:
      pop - la population pour lequel on souhaite la matrice
      name - le nom des resultats dont on veut une matrice globale.
      tx - la transaction a utiliser
    • getMatrix

      public org.nuiton.math.matrix.MatrixND getMatrix(String name)
      Retourne une matrice contenant tous les pas de temps.
      Specified by:
      getMatrix in interface ResultStorage
      Parameters:
      name - le nom des resultats dont on veut une matrice globale.
    • getMatrix

      public org.nuiton.math.matrix.MatrixND getMatrix(String name, org.nuiton.topia.TopiaContext tx)
      Retourne une matrice contenant tous les pas de temps.
      Specified by:
      getMatrix in interface ResultStorage
      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

      public org.nuiton.math.matrix.MatrixND getMatrix(List<TimeStep> steps, Population pop, String name)
      Description copied from interface: ResultStorage
      Retourne la matrice stocke pour des pas de temps
      Specified by:
      getMatrix in interface ResultStorage
      Parameters:
      steps - les pas de temps que l'on souhaite
      pop - la population pour lequelle on souhaite le resultat
      name - 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 interface ResultStorage
    • getMatrix

      public org.nuiton.math.matrix.MatrixND getMatrix(List<TimeStep> steps, String name)
      Specified by:
      getMatrix in interface ResultStorage
    • 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 interface ResultStorage
      Parameters:
      steps - les pas de temps que l'on souhaite
      name - le nom des resultats dont on veut la matrice
      tx - 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

      public TimeStep getLastStep()
      Get last simulation date.
      Specified by:
      getLastStep in interface ResultStorage
      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 interface SimulationResultListener
      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 interface SimulationResultGetter
      step - le pas de temps que l'on souhaite
      name - 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 interface SimulationResultGetter
      steps - les pas de temps que l'on souhaite
      name - 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, String name)
      Description copied from interface: SimulationResultGetter
      Retourne une matrice contenant tous les pas de temps.
      Specified by:
      getMatrix in interface SimulationResultGetter
      name - le nom des resultats dont on veut une matrice globale.
    • getProvider

      protected EntitySemanticsDecorator.EntityProvider getProvider(org.nuiton.topia.TopiaContext tx)
      Try to find better tx. If argument is not null, return it. otherwize try to get tx in SimulationContext.
      Parameters:
      tx -
      Returns:
    • afterSimulation

      public void afterSimulation(SimulationContext context)
      Description copied from interface: SimulationListener
      called after simulation
      Specified by:
      afterSimulation in interface SimulationListener
    • beforeSimulation

      public void beforeSimulation(SimulationContext context)
      Description copied from interface: SimulationListener
      called before simulation
      Specified by:
      beforeSimulation in interface SimulationListener
    • stepChange

      public void stepChange(SimulationContext context, TimeStep step)
      Description copied from interface: SimulationListener
      Receive event when simulation change step
      Specified by:
      stepChange in interface SimulationListener
      step - new Step