Class interfacageAB

java.lang.Object
  extended by interfacageAB

public class interfacageAB
extends java.lang.Object

Classe permettant d'utiliser l'atelier B.

La méthode implantée ici conserve un processus en mémoire contenant l'atelier B toujours ouvert jusqu'à ce que l'utilisateur demande de l'arreter.

Version:
20/01/2004
Author:
Nicolas Stouls en Mai 2003
Révision en Janvier 2004 pour readapter la class au changement de serveur (Horus->bastet)

Field Summary
static boolean Debugage
          Vrai ssi on veut les traces de DEBUGAGE
private  java.io.InputStream Err
           
 java.io.PrintWriter FichierTrace
          Fichier de Trace (de log)
private  java.io.OutputStream in
           
(package private) static java.lang.String MessageIntrouvableDansLaTrace
           
static java.lang.String[][] MessagesErreurAtelierBPossibles
          Liste des messages d'erreur trouvable lors de l'execution de l'atelier
static boolean NeTraitePasLesErreurs
           
static boolean NeVerifiePasQueLaCommandeEstBienPassee
           
private  boolean NiveauMachine
          Il n'existe que 2 niveaux de hierarchie : machine et projet Savoir dans quel niveau on se trouve est important pour le remplissage buffer et l'interdiction des commandes dans le mauvais niveau.
private static int NombreRequetteOfficielMaxiAvantAbandon
           
 java.lang.String NomFichierTrace
          Nom du fichier de trace (avec son préfixe si nécessaire)
private  java.io.InputStream out
           
private  java.lang.Process ProcessusParalleleCourant
          Variable contenant le thread appelé si l'on conserve la main
private static int TailleOfficielleDesGroupeDeRequettes
           
private static int TempsAttenteOfficielEntreGroupes
           
private static int TempsAttenteOfficielReponse
          Variables servant a factoriser les donnees de recuperation sale des traces
static java.io.PrintWriter terminal
          Terminal de sortie du texte
 java.lang.String TraceAvantErreur
          Trace de l'atelier d'avant une erreur
static boolean TraiteLesErreurs
           
static boolean VerifieQueLaCommandeEstBienPassee
           
 
Constructor Summary
interfacageAB()
           
 
Method Summary
 boolean Add_component(java.lang.String Nom, boolean Verification)
          Permet d'ajouter un composant dans le projet courant sous l'atelier B.
(package private)  void AfficheDebug(java.lang.String S)
          Affiche la chaiune S passée en parametre si et seulement si la variable Debugage est a VRAI.
 int ChercheMessageErreur(java.lang.String Chaine)
          Fonction dont le role est de dire si l'une des balises d'erreur est presente dans la chaine donnee.
 boolean ChercheMessageErreur(java.lang.String Chaine, int CodeErreur)
          Fonction dont le role est de dire si l'erreur specifiee est presente dans Chaine.
 boolean ChercheMessageErreur(java.lang.String Chaine, java.lang.String MessageErreur)
          Fonction dont le role est de dire si l'erreur specifiee est presente dans Chaine.
 boolean Close_Project(boolean Verification)
          Ferme le projet spécifié sous l'atelier B.
 java.lang.String Create_Project_Securise(java.lang.String Nom, java.lang.String BDP, java.lang.String Lang)
          Retourne une chaine de caracteres correspondant au nom du projet cree.
 boolean Create_Project(java.lang.String Nom, java.lang.String BDP, java.lang.String Lang)
          Méthode permettant de créer un projet sous l'atelier B.
 boolean EffaceFichierTrace()
          Efface le fichier de Trace
(package private)  void FermeFichierTrace()
          Ferme le fichier de Trace
 void FlushFichierTrace()
          Vide le tampon mémoire dans le fichier de trace.
 void GenerationMessageErreur(int CodeErreur, java.lang.String MessageComplementaire)
          Fonction dont le role est de generer les messages d'erreur
 boolean Get_AssertionLemmas_V2(java.lang.String NomSansExt, java.lang.String Chemin)
          Renvoie si oui ou non l'assertion de la machine donnée est complètement prouvée.
 java.lang.String Get_AssertionLemmas(java.lang.String Nom)
          La fonction Get_AssertionLemmas renvoie une chaines de caracteres qui est le pourcentage de preuve de la clause AssertionLemmas.
 java.lang.String[] Get_Machines_List_In_Array()
          La fonction Get_Machines_List_In_Array renvoie un tableau de chaines de caracteres dont chacune d'elle est le nom d'une machine visible par l'utilisateur dans le projet courrant.
 java.lang.String Get_Machines_List()
          Cette chaine comencera toujours par : "Printing machine list ..."
 java.lang.String[] Get_Projects_List_In_Array()
          La fonction Get_Projects_List_In_Array renvoie un tableau de chaines de caracteres dont chacune d'elle est le nom d'un projet visible par l'utilisateur courrant
 java.lang.String Get_Projects_List()
          La fonction Get_Projects_List renvoie une chaine de caracteres correspondant a celle renvoiee par l'atelier B lors de la commande show_project_list.
 java.lang.String[][] Get_Status_Global_In_Array()
          La fonction Get_Status_Global_In_Array renvoie un tableau a 2 dimensions de chaines de caracteres dont chacune d'elle est le nom d'une machine pour la premiere colonne et le pourcentage de preuve dans la seconde.
 java.lang.String Get_Status_Global()
          La fonction Get_Status_Global renvoie une chaine de caracteres correspondant a celle renvoyee par l'atelier B lors de la commande status_global.
 java.lang.String[][] Get_Status_Machine_In_Array(java.lang.String Nom)
          La fonction Get_Status_Machine_In_Array renvoie un tableau a 2 dimensions de chaines de caracteres dont chacune d'elle est le nom d'une clause ou methode de la machine pour la premiere colonne et le pourcentage de preuve dans la seconde.
 java.lang.String Get_Status_Machine(java.lang.String Nom)
          Cette chaine comencera toujours par : "Printing the status of"
et finira toujours par "End of Printing the status".
 void InitFichierTrace(java.lang.String nomFichier)
          Ouvre un fichier, dont le nom est précisé, pour sauvegarder les traces d'exécution de l'interface avec l'atelierB.
 int LancerAB()
          Cette méthode sert à lancer l'atelier B.
 boolean Open_Project(java.lang.String Nom, boolean Verification)
          Ouvre le projet dont le nom est précisé
 int Prove_component(java.lang.String Nom, int force, boolean Verification, boolean GestionDesErreurs)
          Permet de prouver un composant dans le projet courant sous l'atelier B.
 void Quitter_AB()
          Cette méthode permet de quitter l'atelier B tournant dans le processus parallèle.
 int RelancerAB()
          relance l'AB.
 boolean Remove_component(java.lang.String Nom, boolean Verification)
          Permet de supprimer un composant dans le projet courant sous l'atelier B.
 boolean Remove_Project(java.lang.String Nom)
          Methode permettant d'effacer un projet de l'atelier B.
 java.lang.String TraiterCommande(java.lang.String Commande, java.lang.String DebutCommande, java.lang.String FinCommande, boolean TraiterLesErreurs, boolean Verification)
          Méthode simplifiée permettant d'émettre une commande vers l'atelier B puis d'attendre ou non une réponse.
 java.lang.String TraiterCommande(java.lang.String Commande, java.lang.String DebutCommande, java.lang.String FinCommande, java.lang.String AutreFinCommande, boolean AttenteInfinie, boolean TraiterLesErreurs, boolean Verification)
          Méthode permettant d'émettre une commande vers l'atelier B puis d'attendre ou non une réponse.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

terminal

public static java.io.PrintWriter terminal
Terminal de sortie du texte


Debugage

public static boolean Debugage
Vrai ssi on veut les traces de DEBUGAGE


FichierTrace

public java.io.PrintWriter FichierTrace
Fichier de Trace (de log)


NomFichierTrace

public java.lang.String NomFichierTrace
Nom du fichier de trace (avec son préfixe si nécessaire)


ProcessusParalleleCourant

private java.lang.Process ProcessusParalleleCourant
Variable contenant le thread appelé si l'on conserve la main


TempsAttenteOfficielReponse

private static final int TempsAttenteOfficielReponse
Variables servant a factoriser les donnees de recuperation sale des traces

See Also:
Constant Field Values

TempsAttenteOfficielEntreGroupes

private static final int TempsAttenteOfficielEntreGroupes
See Also:
Constant Field Values

NombreRequetteOfficielMaxiAvantAbandon

private static final int NombreRequetteOfficielMaxiAvantAbandon
See Also:
Constant Field Values

TailleOfficielleDesGroupeDeRequettes

private static final int TailleOfficielleDesGroupeDeRequettes
See Also:
Constant Field Values

NeTraitePasLesErreurs

public static final boolean NeTraitePasLesErreurs
See Also:
Constant Field Values

TraiteLesErreurs

public static final boolean TraiteLesErreurs
See Also:
Constant Field Values

VerifieQueLaCommandeEstBienPassee

public static final boolean VerifieQueLaCommandeEstBienPassee
See Also:
Constant Field Values

NeVerifiePasQueLaCommandeEstBienPassee

public static final boolean NeVerifiePasQueLaCommandeEstBienPassee
See Also:
Constant Field Values

in

private java.io.OutputStream in

out

private java.io.InputStream out

Err

private java.io.InputStream Err

NiveauMachine

private boolean NiveauMachine
Il n'existe que 2 niveaux de hierarchie : machine et projet Savoir dans quel niveau on se trouve est important pour le remplissage buffer et l'interdiction des commandes dans le mauvais niveau.


MessagesErreurAtelierBPossibles

public static final java.lang.String[][] MessagesErreurAtelierBPossibles
Liste des messages d'erreur trouvable lors de l'execution de l'atelier


TraceAvantErreur

public java.lang.String TraceAvantErreur
Trace de l'atelier d'avant une erreur


MessageIntrouvableDansLaTrace

static final java.lang.String MessageIntrouvableDansLaTrace
Constructor Detail

interfacageAB

public interfacageAB()
Method Detail

AfficheDebug

void AfficheDebug(java.lang.String S)
Affiche la chaiune S passée en parametre si et seulement si la variable Debugage est a VRAI.

Parameters:
S - Chaine à afficher

FermeFichierTrace

void FermeFichierTrace()
Ferme le fichier de Trace


EffaceFichierTrace

public boolean EffaceFichierTrace()
Efface le fichier de Trace


GenerationMessageErreur

public void GenerationMessageErreur(int CodeErreur,
                                    java.lang.String MessageComplementaire)
Fonction dont le role est de generer les messages d'erreur

Parameters:
CodeErreur - Code de l'erreur à générer
MessageComplementaire - Message à afficher en complément de l'erreur

ChercheMessageErreur

public int ChercheMessageErreur(java.lang.String Chaine)
Fonction dont le role est de dire si l'une des balises d'erreur est presente dans la chaine donnee.

Parameters:
Chaine - Chaine de caractère dans laquelle on cherche la présence de message d'erreur connu
Returns:
le code de l'erreur trouvée ou 0 s'il n'y en a pas.

ChercheMessageErreur

public boolean ChercheMessageErreur(java.lang.String Chaine,
                                    int CodeErreur)
Fonction dont le role est de dire si l'erreur specifiee est presente dans Chaine.

Parameters:
Chaine - Texte dans lequel on cherche l'erreur
CodeErreur - Code de l'erreur que l'on recherche
Returns:
Vrai si et seulement si la chaine définissant l'erreur précisée a été trouvée.

ChercheMessageErreur

public boolean ChercheMessageErreur(java.lang.String Chaine,
                                    java.lang.String MessageErreur)
Fonction dont le role est de dire si l'erreur specifiee est presente dans Chaine.

Parameters:
Chaine - Texte dans lequel on cherche l'erreur
MessageErreur - Message que l'on recherche dans chaine
Returns:
Vrai si et seulement si le message d'erreur a été trouvé.

InitFichierTrace

public void InitFichierTrace(java.lang.String nomFichier)
Ouvre un fichier, dont le nom est précisé, pour sauvegarder les traces d'exécution de l'interface avec l'atelierB.

Parameters:
nomFichier - nom du fichier de trace

FlushFichierTrace

public void FlushFichierTrace()
Vide le tampon mémoire dans le fichier de trace.


LancerAB

public int LancerAB()
Cette méthode sert à lancer l'atelier B. La valeur de retour vaut 0 si et seulement si tout c'est bien passé. Sinon un code erreur est renvoyé.

Returns:
Code de l'erreur qui est survenue ou 0 sinon.

RelancerAB

public int RelancerAB()
relance l'AB. Le resultat est le meme que celui de LancerAB.

Returns:
Code de l'erreur qui est survenue ou 0 sinon.

TraiterCommande

public java.lang.String TraiterCommande(java.lang.String Commande,
                                        java.lang.String DebutCommande,
                                        java.lang.String FinCommande,
                                        boolean TraiterLesErreurs,
                                        boolean Verification)
Méthode simplifiée permettant d'émettre une commande vers l'atelier B puis d'attendre ou non une réponse.

Parameters:
Commande - Contient la commande à passer
DebutCommande - Chaine de caractères qui, si elle est trouvée dans la trace de sortie de l'atelier B, confirme que la commande a bien été passée.
FinCommande - Chaine de caractères qui , si elle est trouvée dans la trace de sortie de l'atelier B, indique la fin du traitement de la commande par l'atelier.
TraiterLesErreurs - Si cette valeur est a vrai alors des messages d'erreurs peuvent survenir et quitter l'application. Sinon, les erreur trouvées sont renoyées en résultat. C'est une chaine de caractères contenant le code erreur qui est alors renvoyé.
Verification - Si ce paramètre est a vrai, alors on vérifiera qure la commande est bian passée à l'aide des paramètres DebutCommande, FinCommande et AutreFinCommande.
Returns:
Une chaine de caractère contenant le code erreur si TraiterLesErreur=vrai et qu'une erreur survient, Le résultat de la trace se trouvant entre DebutCommande et FinCommande si Vérification=vrai et une chaine vide sinon. Attention, pas de chaine null mais new String("").

TraiterCommande

public java.lang.String TraiterCommande(java.lang.String Commande,
                                        java.lang.String DebutCommande,
                                        java.lang.String FinCommande,
                                        java.lang.String AutreFinCommande,
                                        boolean AttenteInfinie,
                                        boolean TraiterLesErreurs,
                                        boolean Verification)
Méthode permettant d'émettre une commande vers l'atelier B puis d'attendre ou non une réponse.

Parameters:
Commande - Contient la commande à passer
DebutCommande - Chaine de caractères qui, si elle est trouvée dans la trace de sortie de l'atelier B, confirme que la commande a bien été passée.
FinCommande - Chaine de caractères qui , si elle est trouvée dans la trace de sortie de l'atelier B, indique la fin du traitement de la commande par l'atelier.
AutreFinCommande - Chaine de caractères qui , si elle est trouvée dans la trace de sortie de l'atelier B, indique la fin du traitement de la commande par l'atelier.
AttenteInfinie - Si ce paramètre vaut vrai alors on attend en boucle sans se soucier du temps d'attente. Afin d'éviter boucles vraiment infinies, le chronomètre DureeMaxi permet de brider la durée d'attente en nombre de secondes et non en quantité de remplissage buffer émis. Cette valeur n'est à vraie que dans le cas où la commande est une preuve.
TraiterLesErreurs - Si cette valeur est a vrai alors des messages d'erreurs peuvent survenir et quitter l'application. Sinon, les erreur trouvées sont renoyées en résultat. C'est une chaine de caractères contenant le code erreur qui est alors renvoyé.
Verification - Si ce paramètre est a vrai, alors on vérifiera qure la commande est bian passée à l'aide des paramètres DebutCommande, FinCommande et AutreFinCommande.
Returns:
Une chaine de caractère contenant le code erreur si TraiterLesErreur=vrai et qu'une erreur survient, Le résultat de la trace se trouvant entre DebutCommande et FinCommande ou AutreFinCommande si Vérification=vrai et une chaine vide sinon. Attention, pas de chaine null mais new String("").

Quitter_AB

public void Quitter_AB()
Cette méthode permet de quitter l'atelier B tournant dans le processus parallèle.


Get_Projects_List

public java.lang.String Get_Projects_List()

La fonction Get_Projects_List renvoie une chaine de caracteres correspondant a celle renvoiee par l'atelier B lors de la commande show_project_list.

Cette chaine comencera toujours par : "Printing Project list ..."
et finira toujours par "End of Project list".

Returns:
chaine de caracteres correspondant a celle renvoiee par l'atelier B lors de la commande show_project_list

Get_Projects_List_In_Array

public java.lang.String[] Get_Projects_List_In_Array()
La fonction Get_Projects_List_In_Array renvoie un tableau de chaines de caracteres dont chacune d'elle est le nom d'un projet visible par l'utilisateur courrant

Returns:
Tableau de chaines de caractères contenant les noms des projets visibles par l'utilisateur

Create_Project

public boolean Create_Project(java.lang.String Nom,
                              java.lang.String BDP,
                              java.lang.String Lang)
Méthode permettant de créer un projet sous l'atelier B.

Parameters:
Nom - Nom du projet à créer
BDP - Chemin vers le dossier à utiliser pour le BDP
Lang - Chemin vers le dossier à utiliser pour le lang
Returns:
Retourne true si le projet a bien ete cree et false si le nom de projet est deja utilise. Dans tous les autres cas d'erreur, le programme est quitte.

Create_Project_Securise

public java.lang.String Create_Project_Securise(java.lang.String Nom,
                                                java.lang.String BDP,
                                                java.lang.String Lang)
Retourne une chaine de caracteres correspondant au nom du projet cree. Cette fonction, si elle termine, garantie la creation dun projet (aux bug près :o/).

Parameters:
Nom - Nom du projet à créer
BDP - Chemin vers le dossier à utiliser pour le BDP
Lang - Chemin vers le dossier à utiliser pour le lang
Returns:
Retourne true si le projet a bien ete cree et false sinon.

Remove_Project

public boolean Remove_Project(java.lang.String Nom)
Methode permettant d'effacer un projet de l'atelier B.

Parameters:
Nom - Nom du projet à effacer
Returns:
true ssi le projet a bien ete effacé.

Open_Project

public boolean Open_Project(java.lang.String Nom,
                            boolean Verification)
Ouvre le projet dont le nom est précisé

Parameters:
Nom - Nom du projet à ouvrir
Verification - vérifie le passage effectif de la commande si ce paramètre est a vrai
Returns:
true ssi le projet specifie a bien ete ouvert.

Close_Project

public boolean Close_Project(boolean Verification)
Ferme le projet spécifié sous l'atelier B.

Parameters:
Verification - Vérifie le passage de la commande si ce paramètre est à vrai
Returns:
Retourne true ssi le projet courant a bien ete ferme.

Add_component

public boolean Add_component(java.lang.String Nom,
                             boolean Verification)
Permet d'ajouter un composant dans le projet courant sous l'atelier B.

Parameters:
Nom - Nom du composant à ajouter
Verification - Vérifie le passage de la commande si ce paramètre est à vrai
Returns:
Retourne true ssi le composant a bien ete ajoute. Dans tous les autres cas d'erreur, le programme est quitte.

Remove_component

public boolean Remove_component(java.lang.String Nom,
                                boolean Verification)
Permet de supprimer un composant dans le projet courant sous l'atelier B.

Parameters:
Nom - Nom du composant à supprimer
Verification - Vérifie le passage de la commande si ce paramètre est à vrai
Returns:
Retourne true ssi le composant a bien ete enleve.

Prove_component

public int Prove_component(java.lang.String Nom,
                           int force,
                           boolean Verification,
                           boolean GestionDesErreurs)
Permet de prouver un composant dans le projet courant sous l'atelier B.

Parameters:
Nom - Nom du composant à prouver
force - niveau de force de la preuve
Verification - Vérifie le passage de la commande si ce paramètre est à vrai
GestionDesErreurs - indique le mode de gestion des erreurs
Returns:
Retourne 0 ssi la preuve du composant a bien ete effectuee. Sinon, renvoie le code erreur.

Get_Machines_List

public java.lang.String Get_Machines_List()
Cette chaine comencera toujours par : "Printing machine list ..."
et finira toujours par "End of machine list".

Returns:
renvoie une chaine de caracteres correspondant a celle renvoiee par l'atelier B lors de la commande show_machines_list.

Get_Machines_List_In_Array

public java.lang.String[] Get_Machines_List_In_Array()
La fonction Get_Machines_List_In_Array renvoie un tableau de chaines de caracteres dont chacune d'elle est le nom d'une machine visible par l'utilisateur dans le projet courrant.

Returns:
renvoie un tableau de chaines de caracteres dont chacune d'elle est le nom d'une machine visible par l'utilisateur dans le projet courrant

Get_Status_Machine

public java.lang.String Get_Status_Machine(java.lang.String Nom)

Cette chaine comencera toujours par : "Printing the status of"
et finira toujours par "End of Printing the status".

Parameters:
Nom - Nom du composant dont on veut le status
Returns:
renvoie une chaine de caracteres correspondant a celle renvoyee par l'atelier B lors de la commande status .

Get_Status_Machine_In_Array

public java.lang.String[][] Get_Status_Machine_In_Array(java.lang.String Nom)
La fonction Get_Status_Machine_In_Array renvoie un tableau a 2 dimensions de chaines de caracteres dont chacune d'elle est le nom d'une clause ou methode de la machine pour la premiere colonne et le pourcentage de preuve dans la seconde.

Parameters:
Nom - Nom du composant dont on veut le status
Returns:
renvoie un tableau a 2 dimensions de chaines de caracteres dont chacune d'elle est le nom d'une clause ou methode de la machine pour la premiere colonne et le pourcentage de preuve dans la seconde.

Get_AssertionLemmas

public java.lang.String Get_AssertionLemmas(java.lang.String Nom)
La fonction Get_AssertionLemmas renvoie une chaines de caracteres qui est le pourcentage de preuve de la clause AssertionLemmas.

Parameters:
Nom - Nom du composant dont on veux le niveau de preuve des assertions
Returns:
renvoie une chaines de caracteres qui est le taux de preuve (en pourcentage) de la clause AssertionLemmas.

Get_AssertionLemmas_V2

public boolean Get_AssertionLemmas_V2(java.lang.String NomSansExt,
                                      java.lang.String Chemin)

Renvoie si oui ou non l'assertion de la machine donnée est complètement prouvée. Cette version de la méthode passe par la lecture du fichier .PMI

Parameters:
NomSansExt - Nom du composant, sans son extension, dont on veut le status.
Chemin - Chemin d'accès du composant auquel on veut accèder, avec un slash terminal.
Returns:
vrai ssi l'assertion est entièrement prouvée.

Get_Status_Global

public java.lang.String Get_Status_Global()
La fonction Get_Status_Global renvoie une chaine de caracteres correspondant a celle renvoyee par l'atelier B lors de la commande status_global.

Returns:
renvoie une chaine de caracteres correspondant a celle renvoyee par l'atelier B lors de la commande status_global.

Get_Status_Global_In_Array

public java.lang.String[][] Get_Status_Global_In_Array()
La fonction Get_Status_Global_In_Array renvoie un tableau a 2 dimensions de chaines de caracteres dont chacune d'elle est le nom d'une machine pour la premiere colonne et le pourcentage de preuve dans la seconde.

Returns:
renvoie un tableau a 2 dimensions de chaines de caracteres dont chacune d'elle est le nom d'une machine pour la premiere colonne et le pourcentage de preuve dans la seconde.