bob.projet
Class TProjet

java.lang.Object
  extended by bob.projet.TProjet

public class TProjet
extends java.lang.Object

La classe TProjet contient les informations relatives à un projet.

Un projet est essentiellement une liste de nom de fichiers B source et une liste de composants (TComposant). Le composant de rang "i" a pour fichier source, le fichier de rang "i". On peut voir, dans la classe Bob et dans la classe TCommandes, comment utiliser la notion de projet.

Il est nécessaire de pouvoir remonter au projet dans lequel on est, où dans le composant dans lequel on est. Pour cela, il y a des "variables globales" qui contiennent ces informations et qui peuvent être accédées par les sélecteurs statiques : bob.projet.DonnerProjetCourant() et bob.projet.DonnerComposantCourant().

Version:
1.0 du 19/06/2002, 2.0 du 21/12/2004
Author:
Aymeric Callendrier, Olivier Bert
See Also:
TComposant, Bob, TCommandes

Field Summary
protected static TComposant ComposantCourant
          lien sur le composant courant
protected static boolean FlagAtelierB
          indication pour la compatibilité de l'affichage avec les contraintes de l'atelierB
protected  java.util.Vector<TComposant> ListeComposants
          liste des composants du projet
protected  java.util.Vector<java.lang.String> ListeFichiers
          liste des noms des fichiers source
protected  java.lang.String Nom
          nom du projet
protected static TProjet ProjetCourant
          lien sur le projet courant
 
Constructor Summary
TProjet()
          constructeur sans paramètres
TProjet(java.lang.String st, java.util.Vector<java.lang.String> lf, java.util.Vector<TComposant> lc)
          constructeur initialisant
 
Method Summary
 void AfficherChemins(java.io.Writer f)
          affiche les chemins des composants d'un projet
 void AfficherComposants(java.io.Writer f)
          affiche les composants d'un projet
 void AjouterComposant(TComposant comp)
          ajouter un composant (en queue)
 void AjouterFichier(java.lang.String fich)
          ajouter un fichier (en queue)
 boolean analyser_composant(java.lang.String fichier_src, java.io.PrintStream outerr)
          Cette méthode analyse un fichier source de composant B et, s'il n'y a pas d'erreur, ajoute le composant produit dans le projet.
 TComposant ComposantDeNom(java.lang.String nom)
          trouve le composant de nom "nom".
 TComposant ComposantDeRef(java.lang.String path)
          trouve le composant associé à un chemin.
static TComposant DonnerComposantCourant()
          Donne le composant courant
static boolean DonnerFlagAtelierB()
          Valeur du style d'affichage
 java.util.Vector<TComposant> DonnerListeComposants()
           
 java.util.Vector<java.lang.String> DonnerListeFichiers()
          donne la liste des fichiers du projet
 java.lang.String DonnerNom()
          Donne le nom du projet
static TProjet DonnerProjetCourant()
          Renvoie l'instance du projet courant
static void RangerComposantCourant(TComposant comp)
          Pour initialiser le composant courant
Pour les calculs dans certaines substitutions, cette variable doit être impérativement à jour (exemple, s'il faut avoir la liste des variables de l'espace d'état : calcul du prd)
static void RangerFlagAtelierB(boolean b)
          Pour changer le style d'affichage pour etre compatible avec l'atelier B.
 void RangerListeComposants(java.util.Vector<TComposant> lc)
          initialisation de l'attribut ListeComposants
 void RangerListeFichiers(java.util.Vector<java.lang.String> lf)
          initialisation de l'attribut ListeFichiers
 void RangerNom(java.lang.String st)
          initialisation de l'attribut Nom
static void RangerProjetCourant(TProjet proj)
          Mise à jour du projet courant
 void RemplacerComposant(TComposant comp)
          remplacer un composant dont le nom est "nom" par un composant "comp" de meme nom.
 void RemplacerFichier(java.lang.String comp)
          remplacer un fichier de nom "comp" par le nom "comp".
 void SupprimerComposant(TComposant comp)
          supprimer un composant comp d'après son nom.
 void SupprimerFichier(java.lang.String fich)
          supprimer un fichier de nom "fich".
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

Nom

protected java.lang.String Nom
nom du projet


ListeFichiers

protected java.util.Vector<java.lang.String> ListeFichiers
liste des noms des fichiers source


ListeComposants

protected java.util.Vector<TComposant> ListeComposants
liste des composants du projet


ComposantCourant

protected static TComposant ComposantCourant
lien sur le composant courant


ProjetCourant

protected static TProjet ProjetCourant
lien sur le projet courant


FlagAtelierB

protected static boolean FlagAtelierB
indication pour la compatibilité de l'affichage avec les contraintes de l'atelierB

Constructor Detail

TProjet

public TProjet()
constructeur sans paramètres


TProjet

public TProjet(java.lang.String st,
               java.util.Vector<java.lang.String> lf,
               java.util.Vector<TComposant> lc)
constructeur initialisant

Method Detail

RangerFlagAtelierB

public static void RangerFlagAtelierB(boolean b)
Pour changer le style d'affichage pour etre compatible avec l'atelier B. Si le flag est "true" le style est compatible avec l'atelierB; s'il est "false" il n'est pas compatible (mais plus lisible)


DonnerFlagAtelierB

public static boolean DonnerFlagAtelierB()
Valeur du style d'affichage


DonnerProjetCourant

public static TProjet DonnerProjetCourant()
Renvoie l'instance du projet courant


DonnerComposantCourant

public static TComposant DonnerComposantCourant()
Donne le composant courant


RangerProjetCourant

public static void RangerProjetCourant(TProjet proj)
Mise à jour du projet courant

Parameters:
proj - un projet à utiliser

RangerComposantCourant

public static void RangerComposantCourant(TComposant comp)
Pour initialiser le composant courant
Pour les calculs dans certaines substitutions, cette variable doit être impérativement à jour (exemple, s'il faut avoir la liste des variables de l'espace d'état : calcul du prd)

Parameters:
comp - le composant courant

RangerNom

public void RangerNom(java.lang.String st)
initialisation de l'attribut Nom

Parameters:
st - la chaine de caractères du nom du projet

RangerListeFichiers

public void RangerListeFichiers(java.util.Vector<java.lang.String> lf)
initialisation de l'attribut ListeFichiers

Parameters:
lf - la liste de fichiers

RangerListeComposants

public void RangerListeComposants(java.util.Vector<TComposant> lc)
initialisation de l'attribut ListeComposants

Parameters:
lc - la liste des composants

DonnerNom

public java.lang.String DonnerNom()
Donne le nom du projet

Returns:
Le nom du projet

DonnerListeFichiers

public java.util.Vector<java.lang.String> DonnerListeFichiers()
donne la liste des fichiers du projet

Returns:
La liste des fichers du projet

DonnerListeComposants

public java.util.Vector<TComposant> DonnerListeComposants()
Returns:
La liste des composants du projet

analyser_composant

public boolean analyser_composant(java.lang.String fichier_src,
                                  java.io.PrintStream outerr)
Cette méthode analyse un fichier source de composant B et, s'il n'y a pas d'erreur, ajoute le composant produit dans le projet.

Parameters:
fichier_src - le nom du fichier source
outerr - le stream de sortie des erreurs
Returns:
vrai si pas d'erreur, faux sinon.

AjouterFichier

public void AjouterFichier(java.lang.String fich)
ajouter un fichier (en queue)

Parameters:
fich - le fichier à ajouter

AjouterComposant

public void AjouterComposant(TComposant comp)
ajouter un composant (en queue)

Parameters:
comp - le composant à ajouter

SupprimerFichier

public void SupprimerFichier(java.lang.String fich)
supprimer un fichier de nom "fich". Si le nom n'existe pas, il ne se passe rien.

Parameters:
fich - le nom du fichier à supprimer

SupprimerComposant

public void SupprimerComposant(TComposant comp)
supprimer un composant comp d'après son nom. Si le nom de ce composant n'existe pas, il ne se passe rien.

Parameters:
comp - le nom du composant

RemplacerFichier

public void RemplacerFichier(java.lang.String comp)
remplacer un fichier de nom "comp" par le nom "comp". L'intéret de cette méthode m'échappe !!

Parameters:
comp - le nom d'un fichier de composant

RemplacerComposant

public void RemplacerComposant(TComposant comp)
remplacer un composant dont le nom est "nom" par un composant "comp" de meme nom. Si le nom du composant n'existe pas, il ne se passe rien.

Parameters:
comp - le nouveau composant qui remplace l'ancien de même nom

ComposantDeRef

public TComposant ComposantDeRef(java.lang.String path)
trouve le composant associé à un chemin. Si le chemin n'existe pas (dans les fichiers), le composant retourné est "null".

Parameters:
path - la chaine de caratères d'un nom de fichier
Returns:
le composant associé à ce fichier dans le projet

ComposantDeNom

public TComposant ComposantDeNom(java.lang.String nom)
trouve le composant de nom "nom". Si le composant n'existe pas, le composant retourné est "null"

Parameters:
nom - le nom d'un composant
Returns:
le composant de nom "nom"

AfficherChemins

public void AfficherChemins(java.io.Writer f)
                     throws java.io.IOException,
                            java.io.FileNotFoundException
affiche les chemins des composants d'un projet

Throws:
java.io.IOException
java.io.FileNotFoundException

AfficherComposants

public void AfficherComposants(java.io.Writer f)
                        throws java.io.IOException,
                               java.io.FileNotFoundException
affiche les composants d'un projet

Throws:
java.io.IOException
java.io.FileNotFoundException


Copyright OB.