]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA9/SD/sd_table_container.py
Salome HOME
CCAR: merge de la version 1.14 dans la branche principale
[tools/eficas.git] / Aster / Cata / cataSTA9 / SD / sd_table_container.py
1 #@ MODIF sd_table_container SD  DATE 12/02/2008   AUTEUR REZETTE C.REZETTE 
2 # -*- coding: iso-8859-1 -*-
3 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2008  EDF R&D                  WWW.CODE-ASTER.ORG
6 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
7 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
9 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
10 #                                                                       
11 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
12 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
13 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
14 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
15 #                                                                       
16 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
17 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
19 # ======================================================================
20
21 from SD import *
22
23 from SD.sd_table import sd_table, Colonne
24 from SD.sd_vect_elem import sd_vect_elem
25 from SD.sd_matr_elem import sd_matr_elem
26 from SD.sd_cham_elem import sd_cham_elem
27 # --------------------------------------------------------------------
28 # sd_table contenant les colonnes nommée "NOM_OBJET","TYPE_OBJET",
29 # et "NOM_SD"
30 # --------------------------------------------------------------------
31
32
33
34 class sd_table_container(sd_table):
35 #-------------------------------------
36     nomj = SDNom(fin=19)
37
38     def check_table_container(self, checker):
39
40         # vérification de l'existence de la table     
41         if not self.exists() : 
42            checker.err(self,"La sd_table_container %s ne semble"
43                              +"pas exister" %(nomj))
44
45         # on vérifie la présence des paramètres 
46         # 'NOM_OBJET','TYPE_OBJET','NOM_SD'
47         param=['NOM_OBJET','TYPE_OBJET','NOM_SD']
48         shape = self.TBNP.get()
49         assert 3,shape[0] # la table a exactement 3 paramètres
50         for n in param:
51           col=self.get_column_name(n)
52           if col == None:
53              checker.err(self,"Paramètre %s manquant!" %(n))
54
55           # on vérifie que les colonnes ne sont pas vides 
56           data = col.data.get()
57           if data is not None:
58              if col.data.lonuti != shape[1]:
59                   checker.err(self,"Taille inconsitante %d!=%d" %
60                                 (col.data.lonuti,shape[1]))
61
62         
63         # on vérifie le contenu de la colonne NOM_SD
64         col1=self.get_column_name('TYPE_OBJET')
65         col2=self.get_column_name('NOM_SD')
66         nbli=col1.data.lonuti
67         lnom1=col1.data.get_stripped()
68         lnom2=col2.data.get_stripped()
69         for k in range(nbli):
70           if lnom1[k][:9]=='VECT_ELEM':
71              sd5=sd_vect_elem(lnom2[k])
72              sd5.check(checker)
73           elif lnom1[k][:9]=='MATR_ELEM':
74              sd5=sd_matr_elem(lnom2[k])
75              sd5.check(checker)
76           elif lnom1[k][:9]=='CHAM_ELEM':
77              sd5=sd_cham_elem(lnom2[k])
78              sd5.check(checker)
79           else:
80              assert 0,lnom1[k]
81