Author: chatellier Date: 2011-06-16 16:01:05 +0000 (Thu, 16 Jun 2011) New Revision: 3413 Log: Fixage du cache des storages. Ajout des sensitivity oubli?\195?\169s. Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/FormuleStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java 2011-06-16 15:19:52 UTC (rev 3412) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java 2011-06-16 16:01:05 UTC (rev 3413) @@ -142,7 +142,7 @@ * @return Le storage pour le plan */ static public AnalysePlanStorage getCommunityAnalysePlan(String name) { - String cacheName = getContextDatabaseCacheKey(name); + String cacheName = getCommunityDatabaseCacheKey(name); AnalysePlanStorage result = plansCache.get(cacheName); if (result == null) { result = new AnalysePlanStorage(getCommunityDatabaseDirectory(), Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/FormuleStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/FormuleStorage.java 2011-06-16 15:19:52 UTC (rev 3412) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/FormuleStorage.java 2011-06-16 16:01:05 UTC (rev 3413) @@ -269,7 +269,7 @@ * @return Le storage pour la regle */ static public FormuleStorage getCommunityFormule(String category, String name) { - String key = category + File.separator + name; + String key = "community" + category + File.separator + name; FormuleStorage result = formulesCache.get(key); if (result == null) { String extension = FileUtil.extension(new File(name), "."); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java 2011-06-16 15:19:52 UTC (rev 3412) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RuleStorage.java 2011-06-16 16:01:05 UTC (rev 3413) @@ -145,7 +145,7 @@ * @return Le storage pour la regle */ static public RuleStorage getCommunityRule(String name) { - String cacheName = getContextDatabaseCacheKey(name); + String cacheName = getCommunityDatabaseCacheKey(name); RuleStorage result = rulesCache.get(cacheName); if (result == null) { result = new RuleStorage(getCommunityDatabaseDirectory(), Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java 2011-06-16 15:19:52 UTC (rev 3412) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java 2011-06-16 16:01:05 UTC (rev 3413) @@ -132,7 +132,7 @@ * @return Le storage pour l'export */ public static SensitivityExportStorage getCommunitySensitivityExport(String name) { - String cacheName = getContextDatabaseCacheKey(name); + String cacheName = getCommunityDatabaseCacheKey(name); SensitivityExportStorage result = sensitivityExportsCache.get(cacheName); if (result == null) { result = new SensitivityExportStorage(getCommunityDatabaseDirectory(), Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityStorage.java 2011-06-16 15:19:52 UTC (rev 3412) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityStorage.java 2011-06-16 16:01:05 UTC (rev 3413) @@ -112,8 +112,9 @@ * @return le nom de tous les calculateurs de sensibilité existans en local */ public static List<String> getSensitivityNames() { - File dir = getSensitivityDirectory(); - return getStorageNames(dir); + List<String> result = getStorageNames(getSensitivityDirectory()); + result.addAll(getStorageNames(getCommunitySensitivityDirectory())); + return result; } /** @@ -131,6 +132,22 @@ } return result; } + + /** + * Retourne le storage pour le calculateur demandé. + * + * @param name le nom du calculateur souhaité + * @return Le {@link SensitivityStorage} pour le calculateur + */ + public static SensitivityStorage getCommunitySensitivity(String name) { + String cacheName = getCommunityDatabaseCacheKey(name); + SensitivityStorage result = sensitivityCache.get(cacheName); + if (result == null) { + result = new SensitivityStorage(getCommunityDatabaseDirectory(), getCommunitySensitivityDirectory(), name); + sensitivityCache.put(cacheName, result); + } + return result; + } /** * Retourne une nouvelle instance du calculateur. Compile le fichier si besoin Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java 2011-06-16 15:19:52 UTC (rev 3412) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java 2011-06-16 16:01:05 UTC (rev 3413) @@ -40,7 +40,6 @@ import fr.ifremer.isisfish.IsisConfig; import fr.ifremer.isisfish.IsisFish; -import fr.ifremer.isisfish.IsisFishDAOHelper; import fr.ifremer.isisfish.vcs.VCS; import fr.ifremer.isisfish.vcs.VCSException; import fr.ifremer.isisfish.vcs.VCSNone; @@ -106,13 +105,23 @@ * Two simulation must have their own cache. * * @return context cache key - * - * TODO better place in other storage, but needed for region and java scripts */ protected static String getContextDatabaseCacheKey(String key) { String result = getContextDatabaseDirectory().getAbsolutePath() + key; return result; } + + /** + * Get cache storage key to use depending on context storage used. + * + * Two simulation must have their own cache and community scripts too. + * + * @return context cache key + */ + protected static String getCommunityDatabaseCacheKey(String key) { + String result = getContextDatabaseDirectory().getAbsolutePath() + key; + return result; + } /** * Get VCS instance for storage file. Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2011-06-16 15:19:52 UTC (rev 3412) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2011-06-16 16:01:05 UTC (rev 3413) @@ -472,6 +472,12 @@ case CommunitySimulator: script = SimulatorStorage.getCommunitySimulator(file.getName()); break; + case CommunitySensitivity: + script = SensitivityStorage.getCommunitySensitivity(file.getName()); + break; + case CommunitySensitivityExport: + script = SensitivityExportStorage.getCommunitySensitivityExport(file.getName()); + break; default: log.fatal("ScriptType unknown: " + file.getName()); } @@ -682,6 +688,11 @@ boolean check = false; String content = scriptUI.getEditor().getText(); + // can't compile formule + if (codeStorage instanceof FormuleStorage) { + return false; + } + try { if (log.isDebugEnabled()) { log.debug("checkScript called");