Package fr.ifremer.isisfish.util
Class EvaluatorHelper
java.lang.Object
fr.ifremer.isisfish.util.EvaluatorHelper
Permet d'evaluer les equations ecritent en Java
Created: 3 juil. 2006 23:44:48
- Version:
- $Revision$ Last update: $Date$ by : $Author$
- Author:
- poussin
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
catchEvaluateException
(Exception ex, org.apache.commons.logging.Log log) Throw Runtime or Non runtime exception depending on simulation state.static int
check
(Class javaInterface, String script, PrintWriter out) Verifie si un script (prescript/equation) est syntaxiquement correct.protected static void
protected static Class
compileAndGetClass
(String packageName, String className, Class javaInterface, String script) Prend un script d'equation, le convertit en Java, le compile et retour la classe.static Object
Evalue une equation.static String[]
evaluateNecessaryResult
(String packageName, String className, Class javaInterface, String script) Evalue les necessaryResult d'une equation.static String
exportCache
(File directory) protected static String
generateContent
(String packageName, String className, Method interfaceMethod, String script) Generate script content.protected static void
generateNecessaryResult
(String code, StringBuilder necessaryResultContent, StringBuilder equationContent) protected static File
getFormuleCacheFile
(File directory) protected static String
getHashCache
(File fileCheckSum) protected static void
grepImport
(String code, StringBuilder imports, StringBuilder others) looking for import in code.static void
importCache
(File directory) protected static Object
protected static String
normalizeClassName
(String name) protected static void
setHashCache
(File fileCheckSum, String hashcode)
-
Field Details
-
FORMULE_CACHE_FILE
- See Also:
-
grepImportPattern
Regex to match import: - "^(import ...;)" for import at line beginning - ";(import ...;)" for multiple import on same line
-
-
Constructor Details
-
EvaluatorHelper
public EvaluatorHelper()
-
-
Method Details
-
getHashCache
-
setHashCache
-
getFormuleCacheFile
-
exportCache
-
importCache
-
normalizeClassName
-
check
Verifie si un script (prescript/equation) est syntaxiquement correct.- Parameters:
javaInterface
-script
-out
- output writer (can be null for non output)- Returns:
- 0 si ok
-
compileAndGetClass
protected static Class compileAndGetClass(String packageName, String className, Class javaInterface, String script) Prend un script d'equation, le convertit en Java, le compile et retour la classe. Si ce script a deja ete compile, retourne la classe existante- Parameters:
packageName
- le nom de package de la classeclassName
- le nom de la classejavaInterface
- l'interface que la classe doit etendre, cette interface n'a qu'un methodescript
- le code de la methode- Returns:
- la valeur retourné par la methode
-
catchEvaluateException
Throw Runtime or Non runtime exception depending on simulation state.- Parameters:
ex
- exception to handle
-
evaluate
public static Object evaluate(String packageName, String className, Class javaInterface, String script, Object... args) Evalue une equation.- Parameters:
packageName
- le nom de package de la classeclassName
- le nom de la classejavaInterface
- l'interface que la classe doit etendre, cette interface n'a qu'un methodescript
- le code de la methodeargs
- les arguments a utiliser pour l'appel de la methode- Returns:
- la valeur retourné par la methode
-
evaluateNecessaryResult
public static String[] evaluateNecessaryResult(String packageName, String className, Class javaInterface, String script) Evalue les necessaryResult d'une equation.- Parameters:
packageName
- le nom de package de la classeclassName
- le nom de la classejavaInterface
- l'interface que la classe doit etendre, cette interface n'a qu'un methodescript
- le code de la methode- Returns:
- les necessaryResult
-
compile
-
generateContent
protected static String generateContent(String packageName, String className, Method interfaceMethod, String script) Generate script content. Warning, content are always on a unique single line (without \n) for debugging purpose.- Parameters:
packageName
-className
-interfaceMethod
-script
-- Returns:
- script return (or null)
-
grepImport
looking for import in code. return all import as found in code in imports args all other code are put in others- Parameters:
code
-imports
-others
-
-
generateNecessaryResult
protected static void generateNecessaryResult(String code, StringBuilder necessaryResultContent, StringBuilder equationContent) -
invoke
-