fr.ifremer.isisfish.datastore
Class VersionStorage

java.lang.Object
  extended by fr.ifremer.isisfish.datastore.VersionStorage
Direct Known Subclasses:
CodeSourceStorage, DataStorage

public abstract class VersionStorage
extends Object

Classe permettant de géré l'interaction avec le VSC.

Version:
$Revision: 3124 $ Last update: $Date: 2010-11-29 19:14:09 +0100 (lun., 29 nov. 2010) $ by : $Author: chatellier $
Author:
poussin

Field Summary
protected static org.nuiton.util.ListenerSet<StorageChangeListener> changeListeners
          Listener set.
protected  File file
           
protected  File root
           
 
Constructor Summary
protected VersionStorage(File root, File file)
          Par exemple si on a /home/poussin/isis-database comme root il faut que file soit un fichier ou un sous fichiers dans root
 
Method Summary
 void add(String msg)
          Permet d'ajouter ce storage dans le VCSNone.
static void addStorageChangeListener(StorageChangeListener listener)
          Add listener to be notified on change to storage.
static void checkout(File destDir, String module)
          Permet de ramener tout un répertoire du VCS.
 void commit(String msg)
          Permet d'envoyer des modifications faite en local sur le VCS.
 void delete(boolean vcsDelete)
          Permet de supprimer un fichier ou répertoire versionné ou non.
protected static void fireDataChanged(StorageChangeEvent event)
          Fire a change event to all registred listeners.
protected static String getContextDatabaseCacheKey(String key)
          Get cache storage key to use depending on context storage used.
protected static File getContextDatabaseDirectory()
          Return context root directory to use for all data files depending on context (simulation/no simulation).
 File getFile()
          Get file.
protected  List<File> getFiles(boolean withParent)
          Donne la liste de tous les fichiers à gérer par le VCS.
protected  List<File> getFiles(File current, List<File> result)
          Donne la liste de tous les fichiers que le VCS doit gérer.
static List<String> getRemoteStorageNames(File directory)
          Retourne la liste des noms de tous les storages disponibles sur le serveur VCSNone
 File getRoot()
          Get VCS root directory.
static List<String> getStorageNames(File directory)
          Retourne la liste des noms de toutes les storages disponible en local
protected static VCS getVCS()
          Get VCS.
 boolean isOnRemote()
          Indique s'il a deja ete ajouté au VCS.
 boolean isUpToDate()
           
protected  boolean isVersionnableFile(File file)
          Permet de savoir si un fichier doit etre géré par le vcs ou non.
protected abstract  void prepare()
          Permet de demander la preparation des fichiers pour etre envoyé vers le VCS.
static void removeStorageChangeListener(StorageChangeListener listener)
          Remove listener for storage change notification.
 void update()
          Permet de mettre a jour le fichier local en fonction de ce qu'il y a sur le VCS
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

changeListeners

protected static org.nuiton.util.ListenerSet<StorageChangeListener> changeListeners
Listener set. Manage single reference and weak reference.


root

protected File root

file

protected File file
Constructor Detail

VersionStorage

protected VersionStorage(File root,
                         File file)
Par exemple si on a /home/poussin/isis-database comme root il faut que file soit un fichier ou un sous fichiers dans root

Parameters:
root - le repertoire racine de mise en VCS (HOME VCS)
file - le fichier a gérer.
Method Detail

getContextDatabaseDirectory

protected static File getContextDatabaseDirectory()
Return context root directory to use for all data files depending on context (simulation/no simulation). In simulation context, must look for files in simulation directory instead of isis database. TODO better place in other storage, but needed for region anad java scrits


getContextDatabaseCacheKey

protected static String getContextDatabaseCacheKey(String key)
Get cache storage key to use depending on context storage used. Two simulation must have their own cache.

Returns:
context cache key TODO better place in other storage, but needed for region anad java scrits

getVCS

protected static VCS getVCS()
Get VCS.

Returns:
VCS

prepare

protected abstract void prepare()
Permet de demander la preparation des fichiers pour etre envoyé vers le VCS.


getRoot

public File getRoot()
Get VCS root directory.

Returns:
the root.

getFile

public File getFile()
Get file.

Returns:
the file.

isOnRemote

public boolean isOnRemote()
                   throws VCSException
Indique s'il a deja ete ajouté au VCS. Si file est un repertoire (ex pour Region) alors vrai meme si tous les fichiers du repertoire ne sont pas sur le VCSNone

Returns:
true si deja dans le VCS
Throws:
VCSException

isVersionnableFile

protected boolean isVersionnableFile(File file)
Permet de savoir si un fichier doit etre géré par le vcs ou non. L'implantation par defaut exclus les répertoires VCS, il faut toujours appeler le super si on surcharge la methode.

Parameters:
file - le fichier a tester
Returns:
true si le fichier est versionné

getFiles

protected List<File> getFiles(File current,
                              List<File> result)
Donne la liste de tous les fichiers que le VCS doit gérer. Par defaut parcours tous les repertoires et ajouter tous les fichiers et repertoire trouvé. Il est possible d'exclure des fichiers et/ou repertoire en surchargeant isVersionnableFile(File)

Parameters:
current - le fichier
result - la liste des fichiers à traiter
Returns:
La liste des fichiers a géré par le CVS pour un add, remove update

getFiles

protected List<File> getFiles(boolean withParent)
Donne la liste de tous les fichiers à gérer par le VCS. Ceci inclu la liste des répertoires pour aller de ce storage jusqu'a la racine VCSNone si withParent est vrai

Parameters:
withParent - si vrai inclu les parents
Returns:
la liste des fichiers trouvés

add

public void add(String msg)
         throws VCSException
Permet d'ajouter ce storage dans le VCSNone. Cela prend effet immediatement (un commit est fait).

Parameters:
msg - le message indiquant le but du fichier
Throws:
VCSException - si pb pendant l'op

delete

public void delete(boolean vcsDelete)
            throws StorageException
Permet de supprimer un fichier ou répertoire versionné ou non.

Parameters:
vcsDelete - si vrai alors le fichier sera aussi supprimé sur le vcs si elle existait. Cela prend effet immediatement (un commit est fait)
Throws:
StorageException - if delete operation fail

commit

public void commit(String msg)
            throws VCSException
Permet d'envoyer des modifications faite en local sur le VCS.

Parameters:
msg - le message indiquant le type des modifications
Throws:
VCSException - si pb pendant l'op

update

public void update()
            throws VCSException
Permet de mettre a jour le fichier local en fonction de ce qu'il y a sur le VCS

Throws:
VCSException - si pb pendant l'op

isUpToDate

public boolean isUpToDate()
                   throws VCSException
Throws:
VCSException

checkout

public static void checkout(File destDir,
                            String module)
                     throws VCSException
Permet de ramener tout un répertoire du VCS. Utile seulement pour le premier lancement pour scipts et exports.

Parameters:
destDir - le repertoire parent
module - le repertoire qui peut etre scripts ou exports
Throws:
VCSException - si pb pendant l'opération

getStorageNames

public static List<String> getStorageNames(File directory)
Retourne la liste des noms de toutes les storages disponible en local

Parameters:
directory - le répertoire dans lequel vie l'ensemble des storage
Returns:
la liste des noms de toutes les storages disponible en local

getRemoteStorageNames

public static List<String> getRemoteStorageNames(File directory)
Retourne la liste des noms de tous les storages disponibles sur le serveur VCSNone

Parameters:
directory - le répertoire sur le VCSNone ou doivent se trouver les storages (regions, simulations)
Returns:
la liste des noms de tous les storages disponibles sur le serveur VCSNone. Si le serveur n'est pas disponible la liste retournée est vide.

fireDataChanged

protected static void fireDataChanged(StorageChangeEvent event)
Fire a change event to all registred listeners. For example, to notify, that a JavaSourceStorage file has been added...

Parameters:
event - event to fire

addStorageChangeListener

public static void addStorageChangeListener(StorageChangeListener listener)
Add listener to be notified on change to storage.

Parameters:
listener - listener to add

removeStorageChangeListener

public static void removeStorageChangeListener(StorageChangeListener listener)
Remove listener for storage change notification.

Parameters:
listener - listener to remove


Copyright © 1999-2011 CodeLutin. All Rights Reserved.