bob.substitution
Class TSubSelection

java.lang.Object
  extended by bob.elementB.TElementB
      extended by bob.substitution.TSubstitution
          extended by bob.substitution.TSubSelection

public class TSubSelection
extends TSubstitution

La classe TSubSelection contient les informations sur les sélections. Si elle contient au moins une clause WHEN, alors c'est une substitution non primitive. Sinon, il s'agit d'une substitution primitive.

Syntaxe B:

SELECT TPredicat THEN
    TSubstitution
[WHEN TWhen THEN
     TSubstitution]
[ELSE
    TSubstitution]
END

Version:
1.0 du 13/06/2001
Author:
Frédéric Chatel
See Also:
TSubstitution, TPredicat, TWhen

Field Summary
 
Fields inherited from class bob.substitution.TSubstitution
Primitive
 
Constructor Summary
TSubSelection(TPredicat p, TSubstitution s, java.util.Vector<TWhen> w)
          Constructeur paramétré qui initialise les attributs avec les informations données par l'utilisateur.
 
Method Summary
 void Afficher(java.io.Writer flux_sortie)
          Affiche une sélection.
 void Afficher(java.io.Writer flux_sortie, int niveau)
          Affiche une sélection avec presentation.
 TPredicat CalculerWP(TPredicat post_cond)
          Calcule la plus faible précondition [P==>S]R pour une sélection simple.
 tatibouet.bparser.Noeud ConstruireNoeud()
          Construit un Noeud Tatibouet à partir d'une sélection.
 TSubstitution Convertir()
          Convertit la substitution incluse dans la sélection si cette dernière est primitive ou convertie la sélection en choix borné si elle est non primitive.
 TPredicat DonnerSelect()
          Donne le prédicat d'une sélection.
 TSubstitution DonnerThen()
          Donne le corps d'une sélection.
 java.util.Vector<TWhen> DonnerWhen()
          Donne la liste des alternatives d'une sélection.
 TElementB Dupliquer()
          Renvoie la copie conforme de l'element courant clone sur toute sa hauteur.
 boolean EstSubMachine()
          Teste si le SELECT est une substitution de machine
 java.util.Vector<TExprIdentificateur> ListeDesNomsLibres()
          Renvoie la liste des identificateurs libres dans un predicat, une expression ou une substitution.
 TElementB Remplacer(TExprIdentificateur Id, TExpression e)
          Remplace un identificateur non libre dans l'élément B courant par une expression donnee.
 TSubstitution RemplacerAppelOp()
          Remplace les appels d'opération.
 TSubstitution Simplifier()
          Simplifie la substitution.
 TSubstitution TraiterAssertSansRenommage(java.util.Vector<TExprIdentificateur> vv, java.util.Vector<TPredicat> PP)
          Aplatissement pour traiter AssertSansRenommage
Auteur Didier BERT
 
Methods inherited from class bob.substitution.TSubstitution
CalculerGarde, CalculerTermin, EstPrimitive
 
Methods inherited from class bob.elementB.TElementB
RemplacerMultiple
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TSubSelection

public TSubSelection(TPredicat p,
                     TSubstitution s,
                     java.util.Vector<TWhen> w)
Constructeur paramétré qui initialise les attributs avec les informations données par l'utilisateur.

Parameters:
p - Prédicat introduit par lle mot-clé SELECT.
s - Subsitution introduite par le mot-clé THEN.
w - Liste alternatives d'une sélection (mettre null pour initialiser une sélection primitive).
Method Detail

DonnerSelect

public TPredicat DonnerSelect()
Donne le prédicat d'une sélection.

Returns:
Le prédicat d'une sélection.

DonnerThen

public TSubstitution DonnerThen()
Donne le corps d'une sélection.

Returns:
Le corps d'une sélection.

DonnerWhen

public java.util.Vector<TWhen> DonnerWhen()
Donne la liste des alternatives d'une sélection.

Returns:
La liste des alternatives d'une sélection.

Dupliquer

public TElementB Dupliquer()
Renvoie la copie conforme de l'element courant clone sur toute sa hauteur.

Overrides:
Dupliquer in class TElementB
Returns:
un clone integral de l'element B courant

RemplacerAppelOp

public TSubstitution RemplacerAppelOp()
Remplace les appels d'opération. Auteur: Olivier BERT

Overrides:
RemplacerAppelOp in class TSubstitution
Returns:
La substitution obtenue. ATTENTION !!! ATTENTION !!! : pour l'instant cette méthode prend seulement en charge les substitutions que l'on peut trouver au niveau spécification. Si il y a des ';', une exception sera levée.
Auteur: Olivier Bert

TraiterAssertSansRenommage

public TSubstitution TraiterAssertSansRenommage(java.util.Vector<TExprIdentificateur> vv,
                                                java.util.Vector<TPredicat> PP)
Aplatissement pour traiter AssertSansRenommage
Auteur Didier BERT

Overrides:
TraiterAssertSansRenommage in class TSubstitution

Simplifier

public TSubstitution Simplifier()
Simplifie la substitution.

Overrides:
Simplifier in class TSubstitution
Returns:
la substitution this simplifiee
See Also:
TSubPrecondition

EstSubMachine

public boolean EstSubMachine()
Teste si le SELECT est une substitution de machine

Overrides:
EstSubMachine in class TSubstitution

ListeDesNomsLibres

public java.util.Vector<TExprIdentificateur> ListeDesNomsLibres()
Renvoie la liste des identificateurs libres dans un predicat, une expression ou une substitution.

Overrides:
ListeDesNomsLibres in class TElementB
Returns:
un vecteur dont chaque element est un Tidentificateur libre.

Remplacer

public TElementB Remplacer(TExprIdentificateur Id,
                           TExpression e)
Remplace un identificateur non libre dans l'élément B courant par une expression donnee.

Overrides:
Remplacer in class TElementB
Parameters:
Id - : l'identificateur a remplacer
e - : la nouvelle expression
Returns:
Si Id est non libre dans l'element B courant alors toutes ses iterations sont remplacees par e Sinon : L'element B courant est renvoye non modifie

Convertir

public TSubstitution Convertir()
Convertit la substitution incluse dans la sélection si cette dernière est primitive ou convertie la sélection en choix borné si elle est non primitive.

Syntaxe B de la sélection généralisée convertie:

CHOICE
SELECT TPredicat THEN
TSubstitution
END
[OR
SELECT TPredicat THEN
TSubstitution
END]
END

Overrides:
Convertir in class TSubstitution
Returns:
La sélection primitive avec la substitution incluse convertie ou le choix borné obtenu.

CalculerWP

public TPredicat CalculerWP(TPredicat post_cond)
Calcule la plus faible précondition [P==>S]R pour une sélection simple. Dans le cas de la sélection non primitive, la conversion est réalisée automatiquement avant le calcul.

Overrides:
CalculerWP in class TSubstitution
Parameters:
post_cond - Postcondition vérifiée après la fin de la substitution "sélection".
Returns:
Le prédicat P=>[S]R pour une sélection primitive.
Le prédicat P1=>[S1]R & P2=>[S2]R ... pour une sélection généralisée.

Afficher

public void Afficher(java.io.Writer flux_sortie)
              throws java.io.IOException,
                     java.io.FileNotFoundException
Affiche une sélection.

Overrides:
Afficher in class TElementB
Parameters:
flux_sortie - Flux de sortie: fichier de type FileWriter ou terminal(new PrintWriter(System.out)).
Throws:
java.io.IOException
java.io.FileNotFoundException

Afficher

public void Afficher(java.io.Writer flux_sortie,
                     int niveau)
              throws java.io.IOException,
                     java.io.FileNotFoundException
Affiche une sélection avec presentation.

Overrides:
Afficher in class TElementB
Parameters:
flux_sortie - Flux de sortie: fichier de type FileWriter ou terminal(new PrintWriter(System.out)).
niveau - : un entier qui indique le niveau de tabulation.
Throws:
java.io.IOException
java.io.FileNotFoundException

ConstruireNoeud

public tatibouet.bparser.Noeud ConstruireNoeud()
Construit un Noeud Tatibouet à partir d'une sélection.

Overrides:
ConstruireNoeud in class TElementB
Returns:
Noeud


Copyright OB.