fr.ifremer.isisfish.datastore
Class RuleStorage

java.lang.Object
  extended by fr.ifremer.isisfish.datastore.VersionStorage
      extended by fr.ifremer.isisfish.datastore.CodeSourceStorage
          extended by fr.ifremer.isisfish.datastore.JavaSourceStorage
              extended by fr.ifremer.isisfish.datastore.RuleStorage
All Implemented Interfaces:
Docable

public class RuleStorage
extends JavaSourceStorage
implements Docable

Class permettant de representer une regle de gestion. Une regle de gestion est un fichier Java que l'on compile si besoin. Il se trouve dans le package portant le nom de la region de cette maniere plusieurs region peuvent avoir des regles avec le meme nom mais pas le meme code.

Gere les fichiers VCS de type Rule (package rules) Created: 17 août 2005 11:11:51 CEST

Version:
$Revision: 3124 $ Last update: $Date: 2010-11-29 19:14:09 +0100 (lun., 29 nov. 2010) $ by : $Author: chatellier $
Author:
Benjamin POUSSIN

Field Summary
static String RULE_PATH
           
static String RULE_TEMPLATE
          Template freemarker pour les regles.
 
Fields inherited from class fr.ifremer.isisfish.datastore.JavaSourceStorage
PARAM_PREFIX
 
Fields inherited from class fr.ifremer.isisfish.datastore.CodeSourceStorage
content, lastContentLength, lastContentUpdate, name
 
Fields inherited from class fr.ifremer.isisfish.datastore.VersionStorage
changeListeners, file, root
 
Constructor Summary
protected RuleStorage(File rootSrc, File directory, String name)
          Contruit un nouveau rule storage
 
Method Summary
static void checkout()
           
 Doc getClassDoc()
          Class documentation (if any).
 String getDescription()
          Be ware this method require to instanciate a Rule, so it would be better to call as often as possible.
 Doc getFieldDoc(String fieldName)
          Field documentation (if any).
static List<String> getNewRemoteRuleNames()
          Retourne la liste des noms de toutes les régions disponible sur le serveur VCS qui ne sont pas encore en local
 Rule getNewRuleInstance()
          Retourne une nouvelle instance de la regle.
static List<String> getNewRuleNames()
          Retourne la liste des noms de toutes les régions disponible en local qui ne sont pas encore sur le serveur VCS
static String getParamAsString(Rule rule)
          Recupere les parametres et leur valeur pour les retourner sous forme de chaine.
 Doc getParamDoc(String paramName)
           
 Map<String,Class<?>> getParameterNames()
          Permet de recuperer les parametres de la regle.
static Map<String,Class<?>> getParameterNames(Rule rule)
          Recherche par introspection tous les parametres de la classe commencant par param_
static Object getParameterValue(Rule rule, String name)
          Donne la valeur d'un parametre par introspection
static List<String> getRemoteRuleNames()
          Retourne la liste des noms de toutes les régions disponible sur le serveur VCS
static RuleStorage getRule(String name)
          Retourne le storage pour la regle demandée
static File getRuleDirectory()
           
static List<String> getRuleNames()
          Retourne le nom de toutes les regles existantes pour cette region
static void setParameterValue(Rule rule, String name, Object value)
          Modifie la valeur d'un attribut par introspection.
 
Methods inherited from class fr.ifremer.isisfish.datastore.JavaSourceStorage
compile, doJavadoc, getCodeClass, getFQN, getName, getNewInstance, getParameterDoc
 
Methods inherited from class fr.ifremer.isisfish.datastore.CodeSourceStorage
diff, exists, getContent, getFiles, getName, prepare, reload, setContent
 
Methods inherited from class fr.ifremer.isisfish.datastore.VersionStorage
add, addStorageChangeListener, checkout, commit, delete, fireDataChanged, getContextDatabaseCacheKey, getContextDatabaseDirectory, getFile, getFiles, getRemoteStorageNames, getRoot, getStorageNames, getVCS, isOnRemote, isUpToDate, isVersionnableFile, removeStorageChangeListener, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RULE_PATH

public static final String RULE_PATH
See Also:
Constant Field Values

RULE_TEMPLATE

public static final String RULE_TEMPLATE
Template freemarker pour les regles.

See Also:
Constant Field Values
Constructor Detail

RuleStorage

protected RuleStorage(File rootSrc,
                      File directory,
                      String name)
Contruit un nouveau rule storage

Parameters:
rootSrc - La region auquelle est attaché la rule
directory - le repertoire ou devrait se trouver la rule
name - le nom de la rule
Method Detail

getRuleDirectory

public static File getRuleDirectory()

getRuleNames

public static List<String> getRuleNames()
Retourne le nom de toutes les regles existantes pour cette region

Returns:
all rule names found in local user database

getRule

public static RuleStorage getRule(String name)
Retourne le storage pour la regle demandée

Parameters:
name - le nom de la regle souhaitée
Returns:
Le storage pour la regle

getNewRuleInstance

public Rule getNewRuleInstance()
                        throws IsisFishException
Retourne une nouvelle instance de la regle. Compile le fichier si besoin

Returns:
a new rule instance
Throws:
IsisFishException - if any exception while instanciation

getParameterNames

public Map<String,Class<?>> getParameterNames()
                                       throws IsisFishException
Permet de recuperer les parametres de la regle.

Returns:
Une map contenant le nom du parametre et son type
Throws:
IsisFishException - s'il est impossible de retourner une map convenable

getParameterNames

public static Map<String,Class<?>> getParameterNames(Rule rule)
Recherche par introspection tous les parametres de la classe commencant par param_

Parameters:
rule - the rule to inspect
Returns:
the list of parameters for a given rule

getParameterValue

public static Object getParameterValue(Rule rule,
                                       String name)
                                throws IsisFishException
Donne la valeur d'un parametre par introspection

Parameters:
name - le nom du parametre
rule - the rule to inspect
Returns:
la valeur courante du parametre
Throws:
IsisFishException - if any exception

setParameterValue

public static void setParameterValue(Rule rule,
                                     String name,
                                     Object value)
                              throws IsisFishException
Modifie la valeur d'un attribut par introspection.

Parameters:
name - le nom de l'attribut
value - la valeur de l'attribut
rule - the rule to inspect
Throws:
IsisFishException - if any exception

getParamAsString

public static String getParamAsString(Rule rule)
                               throws IsisFishException
Recupere les parametres et leur valeur pour les retourner sous forme de chaine. Pour pouvoir par exemple les afficher a l'utilisateur.

Parameters:
rule - the rule to inspect
Returns:
a string representation of parameters and their values for a given rule
Throws:
IsisFishException - if any exception

checkout

public static void checkout()
                     throws VCSException
Throws:
VCSException

getNewRuleNames

public static List<String> getNewRuleNames()
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 regions

getRemoteRuleNames

public static List<String> getRemoteRuleNames()
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.

getNewRemoteRuleNames

public static List<String> getNewRemoteRuleNames()
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 regions

getClassDoc

public Doc getClassDoc()
Description copied from interface: Docable
Class documentation (if any).

Specified by:
getClassDoc in interface Docable
Returns:
the @Doc of the underlied rule class
See Also:
DocHelper, Doc, Docable

getFieldDoc

public Doc getFieldDoc(String fieldName)
Description copied from interface: Docable
Field documentation (if any).

Specified by:
getFieldDoc in interface Docable
Parameters:
fieldName - name of the field to inspect
Returns:
the @Doc of the given field of the underlied Rule class
See Also:
DocHelper, Doc, Docable

getParamDoc

public Doc getParamDoc(String paramName)
Parameters:
paramName - the name of the param to inspect
Returns:
the doc associated with the param, (says the field PARAM_PREFIX+fieldName)

getDescription

public String getDescription()
Be ware this method require to instanciate a Rule, so it would be better to call as often as possible.

Specified by:
getDescription in interface Docable
Returns:
the descript of the instanciate AnalysePlan
See Also:
Doc, Docable


Copyright © 1999-2011 CodeLutin. All Rights Reserved.