fr.ifremer.isisfish.datastore
Class JavaSourceStorage

java.lang.Object
  extended by fr.ifremer.isisfish.datastore.VersionStorage
      extended by fr.ifremer.isisfish.datastore.CodeSourceStorage
          extended by fr.ifremer.isisfish.datastore.JavaSourceStorage
All Implemented Interfaces:
Docable
Direct Known Subclasses:
ExportStorage, RuleStorage, ScriptStorage, SensitivityAnalysisStorage, SimulationPlanStorage, SimulatorStorage

public abstract class JavaSourceStorage
extends CodeSourceStorage
implements Docable

Classes abstraite permettant la gestion des fichiers de code source. Exemple : SimulationPlanStorage ExportStorage, RuleStorage, ScriptStorage, SensitivityAnalysisStorage, SimulatorStorage

Version:
$Revision: 3615 $ Last update: $Date: 2012-02-24 17:46:43 +0100 (Fri, 24 Feb 2012) $ by : $Author: echatellier $
Author:
poussin

Nested Class Summary
 
Nested classes/interfaces inherited from class fr.ifremer.isisfish.datastore.CodeSourceStorage
CodeSourceStorage.Location
 
Field Summary
protected static String PARAM_PREFIX
          Le prefix de tous les attributs java manipulable par Isis.
 
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 JavaSourceStorage(File rootSrc, File directory, String name)
          Build a new java source storage.
 
Method Summary
 int compile(boolean force, PrintWriter out)
          Compile cette classe dans le répertoire par defaut de compilation (IsisConfig.getCompileDirectory())
 int doJavadoc(boolean force, PrintWriter out)
          Build class javadoc.
 Class<?> getCodeClass()
          Retourne la classe compilée.
 String getDescription()
          Get docable element description.
protected static Doc getFieldDoc(Class klass, String paramName)
           
 Doc getFieldDoc(String paramName)
          Field documentation (if any).
 String getFQN()
          Return class fully qualified name.
static String getName(Object instance)
          Retourne le nom de la classe (sans le package) a partir d'un objet.
 Object getNewInstance()
          Retourne une nouvelle instance de la class.
static String getParamAsString(Object instance)
          Recupere les parametres et leur valeur pour les retourner sous forme de chaine.
static Doc getParameterDoc(Object object, String paramName)
          Get doc of parameter.
 Map<String,Class<?>> getParameterNames()
          Permet de recuperer les parametres de l'export.
static Map<String,Class<?>> getParameterNames(Object instance)
          Recherche par introspection tous les parametres de la classe commencant par PARAM_PREFIX.
static Class getParameterType(Object instance, String name)
          Donne le type d'un paramametre par introspection.
static Object getParameterValue(Object instance, String name)
          Donne la valeur d'un parametre par introspection.
static void setParameterValue(Object instance, String name, Object value)
          Modifie la valeur d'un attribut par introspection.
 
Methods inherited from class fr.ifremer.isisfish.datastore.CodeSourceStorage
exists, getContent, getFiles, getName, nonEmptyLocation, prepare, reload, setContent, setContent
 
Methods inherited from class fr.ifremer.isisfish.datastore.VersionStorage
add, addStorageChangeListener, checkout, commit, delete, diff, fireDataChanged, getCommunityDatabaseDirectory, getCommunityVCS, getContextDatabaseDirectory, getCurrentVCS, getCurrentVCS, 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

PARAM_PREFIX

protected static final String PARAM_PREFIX
Le prefix de tous les attributs java manipulable par Isis.

See Also:
Constant Field Values
Constructor Detail

JavaSourceStorage

protected JavaSourceStorage(File rootSrc,
                            File directory,
                            String name)
Build a new java source storage.

Parameters:
rootSrc - sources root directory
directory - class location directory (rootSrc subdirectory)
name - class name
Method Detail

getFQN

public String getFQN()
Return class fully qualified name.

Returns:
class name including package name

getName

public static String getName(Object instance)
Retourne le nom de la classe (sans le package) a partir d'un objet.

Parameters:
instance - l'instance dont on veut le nom
Returns:
le nom de la classe ou null si instance est null

compile

public int compile(boolean force,
                   PrintWriter out)
Compile cette classe dans le répertoire par defaut de compilation (IsisConfig.getCompileDirectory())

Parameters:
force - si vrai alors meme si le fichier destination est plus recent la compilation aura lieu
out - le flux sur lequel le resultat de la compilation doit apparaitre. Peut-etre null, dans ce cas les sorties standards sont utilisées.
Returns:
0 si la compilation a reussi, une autre valeur sinon

doJavadoc

public int doJavadoc(boolean force,
                     PrintWriter out)
Build class javadoc. Ouput javadoc will be stored in default javadoc directory : IsisConfig.getJavadocDirectory()

Parameters:
force - force javadoc build even if destination file is never
out - output print stream. if nullReturns:
0 si la generation a reussi, une autre valeur sinon

getCodeClass

public Class<?> getCodeClass()
                      throws IsisFishException
Retourne la classe compilée. Compile le fichier si besoin.

Returns:
la class
Throws:
IsisFishException

getNewInstance

public Object getNewInstance()
                      throws IsisFishException
Retourne une nouvelle instance de la class. Compile le fichier si besoin.

Returns:
une nouvelle instance de la class
Throws:
IsisFishException - if can't make new instance

getFieldDoc

protected static Doc getFieldDoc(Class klass,
                                 String paramName)
                          throws SecurityException,
                                 NoSuchFieldException
Throws:
SecurityException
NoSuchFieldException

getParameterDoc

public static Doc getParameterDoc(Object object,
                                  String paramName)
Get doc of parameter.

Parameters:
object - object containing parameter
paramName - parameter name
Returns:
Doc annotation

getFieldDoc

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

Specified by:
getFieldDoc in interface Docable
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()
Get docable element description.

Specified by:
getDescription in interface Docable
Returns:
the description of the class, or null if none

getParameterNames

public Map<String,Class<?>> getParameterNames()
                                       throws IsisFishException
Permet de recuperer les parametres de l'export.

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(Object instance)
Recherche par introspection tous les parametres de la classe commencant par PARAM_PREFIX.

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

getParameterValue

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

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

getParameterType

public static Class getParameterType(Object instance,
                                     String name)
                              throws IsisFishException
Donne le type d'un paramametre par introspection. Utilisé dans le cas de la définition de facteur d'analyse de sensibilité sur les parametres de regles.

Parameters:
instance - intance to inspect
name - parameter name
Returns:
parameter type
Throws:
IsisFishException - if parameter doesn't exists

setParameterValue

public static void setParameterValue(Object instance,
                                     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
instance - the instance to inspect
Throws:
IsisFishException - if any exception

getParamAsString

public static String getParamAsString(Object instance)
                               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:
instance - the instance to inspect
Returns:
a string representation of parameters and their values for a given rule
Throws:
IsisFishException - if any exception


Copyright © 1999-2012 CodeLutin. All Rights Reserved.