]> SALOME platform Git repositories - tools/eficas.git/blob - Noyau/N_REGLE.py
Salome HOME
3166f629a81e5f2b625ea8022f4ae3c052d3b03b
[tools/eficas.git] / Noyau / N_REGLE.py
1 #@ MODIF N_REGLE Noyau  DATE 07/09/2009   AUTEUR COURTOIS M.COURTOIS 
2 # -*- coding: iso-8859-1 -*-
3 # RESPONSABLE COURTOIS M.COURTOIS
4 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5 # ======================================================================
6 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
7 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
10 # (AT YOUR OPTION) ANY LATER VERSION.                                 
11 #
12 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
13 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
16 #
17 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20 #                                                                       
21 #                                                                       
22 # ======================================================================
23
24
25 """
26     Ce module contient la classe mere pour les classes de definition des regles d exclusion.
27
28     La classe REGLE est la classe de base : elle est virtuelle, elle ne doit pas etre instanciee.
29
30     Les classes regles dérivées qui seront instanciées doivent implementer la methode verif
31     dont l argument est le dictionnaire des mots cles effectivement presents
32     sur lesquels sera operee la verification de la regle
33
34     A la creation de l'objet regle on lui passe la liste des noms de mots cles concernes
35
36     Exemple ::
37
38     # Création de l'objet règle UNPARMI
39     r=UNPARMI("INFO","AFFE")
40     # Vérification de la règle r sur le dictionnaire passé en argument
41     r.verif({"INFO":v1,"AFFE":v2)
42 """
43
44 import types
45
46 class REGLE:
47    def __init__(self,*args):
48       """
49           Les classes dérivées peuvent utiliser cet initialiseur par défaut ou
50           le surcharger
51       """
52       self.mcs=args
53
54    def verif(self,args):
55       """
56          Les classes dérivées doivent implémenter cette méthode
57          qui doit retourner une paire dont le premier élément est une chaine de caractère
58          et le deuxième un entier.
59  
60          L'entier peut valoir 0 ou 1. -- s'il vaut 1, la règle est vérifiée
61           s'il vaut 0, la règle n'est pas vérifiée et le texte joint contient
62          un commentaire de la non validité.
63       """
64       raise "NotImplemented : class REGLE should be derived"
65
66    def liste_to_dico(self,args):
67       """
68          Cette méthode est utilitaire pour les seuls besoins
69          des classes dérivées. 
70
71          Elle transforme une liste de noms de mots clés en un 
72          dictionnaire équivalent dont les clés sont les noms des mts-clés
73
74          Ceci permet d'avoir un traitement identique pour les listes et les dictionnaires
75       """
76       if type(args) == types.DictionaryType:
77         return args
78       elif type(args) == types.ListType:
79         dico={}
80         for arg in args :
81           dico[arg]=0
82         return dico
83       else :
84         raise "Erreur ce n'est ni un dictionnaire ni une liste",args
85
86