Author: chatellier Date: 2009-09-02 08:55:01 +0000 (Wed, 02 Sep 2009) New Revision: 2567 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/AbstractRule.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/Rule.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/RuleHelper.java Log: Update rule documentation. Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/AbstractRule.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/AbstractRule.java 2009-09-02 08:23:42 UTC (rev 2566) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/AbstractRule.java 2009-09-02 08:55:01 UTC (rev 2567) @@ -36,13 +36,13 @@ */ public abstract class AbstractRule implements Rule { - protected transient Map<String, Object> values = new HashMap<String, Object>(); - + protected transient Map<String, Object> values = new HashMap<String, Object>(); + /* * @see fr.ifremer.isisfish.rule.Rule#getValue(java.lang.String) */ @Override - public Object getValue(String name) { + public Object getValue(String name) { return values.get(name); } @@ -53,7 +53,4 @@ public void setValue(String name, Object value) { values.put(name, value); } - } - - Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/Rule.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/Rule.java 2009-09-02 08:23:42 UTC (rev 2566) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/Rule.java 2009-09-02 08:55:01 UTC (rev 2567) @@ -23,7 +23,6 @@ import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.types.Date; - /** * Interface d'une regle. setValue et getValue permet de stocker des * informations liées a l'instance de la règle. @@ -37,7 +36,7 @@ * <li> une chaine String * <li> un objet Date ({@link fr.ifremer.isisfish.types.Date}) * <li> un objet Month ({@link fr.ifremer.isisfish.types.Month}) - * <li> Le type d'une entité ({@link fr.ifremer.isisfish.entities}) + * <li> Le type d'une entité (@see fr.ifremer.isisfish.entities) * * <p> Pour supporter d'autre type il faut créer des converters commons-beans * //@link fr.ifremer.isisfish.simulator.SimulationParameter#ruleParametertoProperties(Rule) @@ -51,70 +50,85 @@ * by : $Author$ */ public interface Rule { - + /** + * Return necessary results names for rule execution. + * * @return the necessaryResult name */ public String[] getNecessaryResult(); - + /** * Permet d'afficher a l'utilisateur une aide sur la regle. + * * @return L'aide ou la description de la regle * @throws Exception */ public String getDescription() throws Exception; - + /** * Appelé au démarrage de la simulation, cette méthode permet d'initialiser - * des valeurs + * la règle. + * * @param context La simulation pour lequel on utilise cette regle * @throws Exception */ public void init(SimulationContext context) throws Exception; /** - * La condition qui doit etre vrai pour faire les actions + * La condition qui doit etre vrai pour faire les actions. + * + * Si la confition return vrai alors les methodes + * {@link #preAction(SimulationContext, Date, Metier)} et + * {@link #postAction(SimulationContext, Date, Metier)} seront appelée. + * * @param context La simulation pour lequel on utilise cette regle * @param date la date courante * @param metier le metier * @return vrai si on souhaite que les actions soit faites * @throws Exception s'il y a une erreur, met fin a la simulation */ - public boolean condition(SimulationContext context, Date date, Metier metier) throws Exception; + public boolean condition(SimulationContext context, Date date, Metier metier) + throws Exception; /** * Si la condition est vrai alors cette action est executée avant le pas * de temps de la simulation. + * * @param context La simulation pour lequel on utilise cette regle * @param date la date courant * @param metier le metier * @throws Exception s'il y a une erreur, met fin a la simulation */ - public void preAction(SimulationContext context, Date date, Metier metier) throws Exception; + public void preAction(SimulationContext context, Date date, Metier metier) + throws Exception; /** * Si la condition est vrai alors cette action est executée apres le pas * de temps de la simulation. + * * @param context La simulation pour lequel on utilise cette regle * @param date la date courante * @param metier le metier * @throws Exception s'il y a une erreur, met fin a la simulation */ - public void postAction(SimulationContext context, Date date, Metier metier) throws Exception; + public void postAction(SimulationContext context, Date date, Metier metier) + throws Exception; /** - * Permet de recuperer une valeur prealablement stocker avec un setValue + * Permet de recuperer une valeur prealablement stockée avec un + * {@link #setValue(String, Object)}. + * * @param name le nom de la valeur souhaitée * @return la valeur ou null si aucune valeur ne porte se nom */ public Object getValue(String name); - + /** - * Permet de stocker une valeur en fonction d'une cle + * Permet de stocker une valeur en fonction d'une cle. + * * @param name le nom de la valeur * @param value la valeur */ public void setValue(String name, Object value); } - - Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/RuleHelper.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/RuleHelper.java 2009-09-02 08:23:42 UTC (rev 2566) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/rule/RuleHelper.java 2009-09-02 08:55:01 UTC (rev 2567) @@ -32,10 +32,14 @@ import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.util.ConverterUtil; - /** - * RuleHelper. + * Helper pour effectuer des manipulations sur les règles. * + * Permet de : + * <ul> + * <li>affecter les valeurs aux parametres des règles + * </ul> + * * Created: 6 juin 07 12:03:42 * * @author poussin @@ -46,9 +50,7 @@ */ public class RuleHelper { - /** - * Logger for this class - */ + /** Logger for this class. */ private static final Log log = LogFactory.getLog(RuleHelper.class); /** @@ -67,7 +69,7 @@ public static void populateRule(int ruleIndex, RegionStorage region, Rule rule, Properties props) { populateRule(ruleIndex, region.getStorage(), rule, props); } - + /** * Recupere dans propriétés les valeurs des champs spécifiques à la règle et * met à jour les champs de la règle. @@ -91,17 +93,26 @@ String valueString = "not initialized"; try { valueString = props.getProperty(paramTag + propName); - log.info("DEBUG: about to convert rule param: " + paramTag + propName + " = "+ valueString); - // FIXME il semblerait que notre intance de beanUtils - // soit ecrasé par celle du MatrixType ... !!!! $$$ - ConvertUtilsBean beanUtils = ConverterUtil.getConverter(context); + + if (log.isDebugEnabled()) { + log.debug("About to convert rule param: " + paramTag + propName + " = " + valueString); + } + + // ATTENTION il semblerait que notre intance de beanUtils + // soit ecrasé par celle du MatrixType ... + // a ne pas deplacer avant la boucle + ConvertUtilsBean beanUtils = ConverterUtil + .getConverter(context); Object value = beanUtils.convert(valueString, type); - log.info("DEBUG: set rule param: " + paramTag + propName + " = " +value+"("+ valueString+ ")"); + + if (log.isDebugEnabled()) { + log.debug("Set rule param: " + paramTag + propName + " = " + value + "(" + valueString + ")"); + } RuleStorage.setParameterValue(rule, propName, value); } catch (Exception eee) { if (log.isWarnEnabled()) { log.info("Properties: " + props); - log.warn("Can't reload field " + propName + " for rule " + ruleName + " with value " + valueString , eee); + log.warn("Can't reload field " + propName + " for rule " + ruleName + " with value " + valueString, eee); } } }