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
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidcatchEvaluateException(Exception ex, org.apache.commons.logging.Log log) Throw Runtime or Non runtime exception depending on simulation state.static intcheck(Class javaInterface, String script, PrintWriter out) Verifie si un script (prescript/equation) est syntaxiquement correct.protected static voidprotected static ClasscompileAndGetClass(String packageName, String className, Class javaInterface, String script) Prend un script d'equation, le convertit en Java, le compile et retour la classe.static ObjectEvalue une equation.static String[]evaluateNecessaryResult(String packageName, String className, Class javaInterface, String script) Evalue les necessaryResult d'une equation.static StringexportCache(File directory) protected static StringgenerateContent(String packageName, String className, Method interfaceMethod, String script) Generate script content.protected static voidgenerateNecessaryResult(String code, StringBuilder necessaryResultContent, StringBuilder equationContent) protected static FilegetFormuleCacheFile(File directory) protected static StringgetHashCache(File fileCheckSum) protected static voidgrepImport(String code, StringBuilder imports, StringBuilder others) looking for import in code.static voidimportCache(File directory) protected static Objectprotected static StringnormalizeClassName(String name) protected static voidsetHashCache(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
-