Author: chatellier Date: 2009-04-07 09:37:53 +0000 (Tue, 07 Apr 2009) New Revision: 2077 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java Log: Update documentation Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java 2009-04-06 17:02:39 UTC (rev 2076) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java 2009-04-07 09:37:53 UTC (rev 2077) @@ -1,5 +1,5 @@ /* - * *##% Copyright (C) 2006 Code Lutin, Cédric Pineau, Benjamin Poussin + * *##% Copyright (C) 2006 - 2009 Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software @@ -16,18 +16,6 @@ * Place - Suite 330, Boston, MA 02111-1307, USA. ##% */ -/******************************************************************************* - * CodeSourceStorage.java - * - * Created: 21 janv. 2006 15:20:24 - * - * @author poussin - * - * @version $Revision$ - * - * Last update: $Date$ by : $Author$ - */ - package fr.ifremer.isisfish.datastore; import fr.ifremer.isisfish.IsisFishException; @@ -40,33 +28,38 @@ import java.io.PrintWriter; /** - * Classes abstraite permettant la gestion des fichiers de code source + * Classes abstraite permettant la gestion des fichiers de code source. + * + * Exemple : * {@link fr.ifremer.isisfish.datastore.ScriptStorage}, * {@link fr.ifremer.isisfish.datastore.RuleStorage}, * {@link fr.ifremer.isisfish.datastore.ExportStorage} + * {@link fr.ifremer.isisfish.datastore.SensitivityStorage} + * {@link fr.ifremer.isisfish.datastore.AnalysePlanStorage} * * @author poussin * + * @version $Revision$ + * + * Last update: $Date$ by : $Author$ */ - public abstract class JavaSourceStorage extends CodeSourceStorage { /** - * Contruit un nouveau rule storage + * Build a new java source storage. * - * @param rootSrc repertoire racine des sources - * @param directory le repertoire ou devrait se trouver la classe. Ce - * répertoire doit etre un sous répertoire de rootSrc - * @param name le nom de la classe + * @param rootSrc sources root directory + * @param directory class location directory (rootSrc subdirectory) + * @param name class name */ protected JavaSourceStorage(File rootSrc, File directory, String name) { super(rootSrc, directory, name, ".java"); } /** - * Retourne le nom complet de la class representant la classe package inclus + * Return class fully qualified name. * - * @return le nom complet avec le package + * @return class name including package name */ public String getFQN() { String root = getRoot().getAbsolutePath(); @@ -79,11 +72,21 @@ if (result.endsWith(".java")) { result = result.substring(0, result.length() - ".java".length()); } - + return result; } /** + * Retourne le nom de la classe (sans le package) a partir d'un objet. + * + * @param instance l'instance dont on veut le nom + * @return le nom de la classe ou null si instance est null + */ + public static String getName(Object instance) { + return ClassUtils.getShortClassName(instance, null); + } + + /** * Compile cette classe dans le répertoire par defaut de compilation * ({@link fr.ifremer.isisfish.IsisConfig#getCompileDirectory()}) * @@ -92,25 +95,26 @@ * @param out le flux sur lequel le resultat de la compilation doit * apparaitre. Peut-etre null, dans ce cas les sorties standards sont * utilisées. - * @return 0 si la compilation a reussi une autre valeur sinon + * @return 0 si la compilation a reussi, une autre valeur sinon */ public int compile(boolean force, PrintWriter out) { - return CompileHelper.compile(this, IsisFish.config.getCompileDirectory(), force, out); + return CompileHelper.compile(this, IsisFish.config + .getCompileDirectory(), force, out); } /** - * Retourne la classe de la rule compilé. Compile le fichier si besoin + * Retourne la classe compilée. Compile le fichier si besoin. * - * @return la class representant la regle + * @return la class * @throws IsisFishException */ - public Class getCodeClass() throws IsisFishException { + public Class<?> getCodeClass() throws IsisFishException { String fqn = getFQN(); -// Class result = CompileHelper.loadClass(fqn); -// if (result == null) { + // Class result = CompileHelper.loadClass(fqn); + // if (result == null) { compile(false, null); - Class result = CompileHelper.loadClass(fqn); -// } + Class<?> result = CompileHelper.loadClass(fqn); + // } if (result == null) { throw new IsisFishException(_("isisfish.error.load.class", fqn)); } @@ -118,13 +122,13 @@ } /** - * Retourne une nouvelle instance de la regle. Compile le fichier si besoin + * Retourne une nouvelle instance de la class. Compile le fichier si besoin. * - * @return une novuelle instance de la regle - * @throws IsisFishException + * @return une nouvelle instance de la class + * @throws IsisFishException if can't make new instance */ public Object getNewInstance() throws IsisFishException { - Class clazz = getCodeClass(); + Class<?> clazz = getCodeClass(); Object result; try { result = clazz.newInstance(); @@ -137,15 +141,4 @@ } return result; } - - /** - * Retourne le nom de la classe (sans le package) a partir d'un objet. - * - * @param instance l'instance dont on veut le nom - * @return le nom de la classe ou null si instance est null - */ - static public String getName(Object instance) { - return ClassUtils.getShortClassName(instance, null); - } - }