Author: chatellier Date: 2009-08-25 12:15:22 +0000 (Tue, 25 Aug 2009) New Revision: 168 Added: trunk/rules/TotalClosure.java Log: Ajout de l'export TotalClosure Added: trunk/rules/TotalClosure.java =================================================================== --- trunk/rules/TotalClosure.java (rev 0) +++ trunk/rules/TotalClosure.java 2009-08-25 12:15:22 UTC (rev 168) @@ -0,0 +1,119 @@ +package rules; + +import static org.codelutin.i18n.I18n._; + +import java.util.List; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.codelutin.math.matrix.MatrixND; + +import scripts.ResultName; +import scripts.SiMatrix; +import fr.ifremer.isisfish.entities.Metier; +import fr.ifremer.isisfish.entities.Strategy; +import fr.ifremer.isisfish.entities.StrategyMonthInfo; +import fr.ifremer.isisfish.rule.AbstractRule; +import fr.ifremer.isisfish.simulator.MetierMonitor; +import fr.ifremer.isisfish.simulator.SimulationContext; +import fr.ifremer.isisfish.types.Date; +import fr.ifremer.isisfish.types.Month; + +/** + * Remplace aussi Cantonnement Engin. + * + * Created: 29 aout 2007 + * @author sigrid + * @version $Revision$ + */ +public class TotalClosure extends AbstractRule { + + /** to use log facility, just put in your code: log.info("..."); */ + static private Log log = LogFactory.getLog(TotalClosure.class); + + public Date param_beginDate = new Date(100); + public Date param_endDate = new Date(119); + public Month param_beginMonth = Month.JANUARY; + public Month param_endMonth = Month.JANUARY; + + public String[] necessaryResult = { + ResultName.MATRIX_NO_ACTIVITY + }; + + public String[] getNecessaryResult() { + return this.necessaryResult; + } + + public String getDescription() throws Exception { + return _("Total closure of the fishery"); + } + + /** + * Appelé au démarrage de la simulation, cette methode permet d'initialiser des valeurs. + * @param context La simulation pour lequel on utilise cette regle + */ + public void init(SimulationContext context) throws Exception { + } + + /** + * La condition qui doit etre vrai pour faire les actions. + * @param context La simulation pour lequel on utilise cette regle + * @return vrai si on souhaite que les actions soit faites + */ + public boolean condition(SimulationContext context, Date date, Metier metier) + throws Exception { + boolean result = true; + if (date.before(param_beginDate)) { + result = false; + } else if (date.after(param_endDate)) { + result = false; + } + + if (date.getMonth().before(param_beginMonth)) { + result = false; + } else if (date.getMonth().after(param_endMonth)) { + result = false; + } + return result; + } + + /** + * Si la condition est vrai alors cette action est executee avant le pas + * de temps de la simulation. + * @param context La simulation pour lequel on utilise cette regle + */ + public void preAction(SimulationContext context, Date date, Metier metier) + throws Exception { + MetierMonitor metierMon = context.getMetierMonitor(); + + //MetierSeasonInfo infoMetier = metier.getMetierSeasonInfo(date + // .getMonth()); + + SiMatrix siMatrix = SiMatrix.getSiMatrix(context); + MatrixND noActivity = metierMon.getOrCreateNoActivity(date, + ResultName.MATRIX_NO_ACTIVITY, siMatrix.getStrategies(date), + siMatrix.getMetiers(date)); + metierMon.addforbiddenMetier(metier); + List<Strategy> strategies = siMatrix.getStrategies(date); + + for (Strategy str : strategies) { + StrategyMonthInfo info = str.getStrategyMonthInfo(date.getMonth()); + double prop = info.getProportionMetier(metier); + if (prop != 0) { + noActivity.setValue(str, metier, prop); + info.setProportionMetier(metier, 0); + } + } + } + + /** + * Si la condition est vrai alors cette action est executee apres le pas + * de temps de la simulation. + * @param context La simulation pour lequel on utilise cette regle + */ + public void postAction(SimulationContext context, Date date, Metier metier) + throws Exception { + // nothing + } + +} Property changes on: trunk/rules/TotalClosure.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL"
participants (1)
-
chatellier@users.labs.libre-entreprise.org