Salome HOME
CCAR: Mise a niveau Noyau avec Aster 7.2.11 + correction bug sur les blocs
[tools/eficas.git] / Noyau / N_OBJECT.py
1 #@ MODIF N_OBJECT Noyau  DATE 27/03/2002   AUTEUR DURAND C.DURAND 
2 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3 # ======================================================================
4 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
5 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
8 # (AT YOUR OPTION) ANY LATER VERSION.                                 
9 #
10 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
11 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
13 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14 #
15 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
16 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18 #                                                                       
19 #                                                                       
20 # ======================================================================
21 """ 
22     Ce module contient la classe OBJECT classe mère de tous les objets
23     servant à controler les valeurs par rapport aux définitions
24 """
25
26 class OBJECT:
27    """
28       Classe OBJECT : cette classe est virtuelle et sert de classe mère
29       aux classes de type ETAPE et MOCLES.
30       Elle ne peut etre instanciée.
31       Une sous classe doit obligatoirement implémenter les méthodes :
32
33       - __init__
34
35    """
36
37    def get_etape(self):
38       """
39          Retourne l'étape à laquelle appartient self
40          Un objet de la catégorie etape doit retourner self pour indiquer que
41          l'étape a été trouvée
42          XXX double emploi avec self.etape ???
43       """
44       if self.parent == None: return None
45       return self.parent.get_etape()
46
47    def supprime(self):
48       """ 
49          Méthode qui supprime les références arrières suffisantes pour
50          que l'objet puisse etre correctement détruit par le 
51          garbage collector
52       """
53       self.parent = None
54       self.etape = None
55       self.jdc = None
56       self.niveau = None
57
58    def get_val(self):
59       """
60           Retourne la valeur de l'objet. Cette méthode fournit
61           une valeur par defaut. Elle doit etre dérivée pour chaque 
62           type d'objet
63       """
64       return self
65
66    def isBLOC(self):
67       """
68           Indique si l'objet est un BLOC
69       """
70       return 0
71
72    def get_jdc_root(self):
73       """
74           Cette méthode doit retourner l'objet racine c'est à dire celui qui
75           n'a pas de parent
76       """
77       if self.parent:
78          return self.parent.get_jdc_root()
79       else:
80          return self
81
82    def GETVAL(self,val):
83       """
84           Retourne la valeur effective du mot-clé en fonction
85           de la valeur donnée. Defaut si val == None
86       """
87       if (val is None and hasattr(self.definition,'defaut')) :
88         return self.definition.defaut
89       else:
90         return val
91
92    def reparent(self,parent):
93       """
94          Cette methode sert a reinitialiser la parente de l'objet
95       """
96       self.parent=parent
97       self.jdc=parent.jdc
98