1 # -*- coding: utf-8 -*-
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.
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.
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.
20 # ======================================================================
23 Ce module contient la classe JDC_INCLUDE qui sert a inclure
24 dans un jeu de commandes une partie de jeu de commandes
25 au moyen de la fonctionnalite INCLUDE ou INCLUDE_MATERIAU
26 Quand l'utilisateur veut inclure un fichier il faut versifier
27 que le jeu de commandes inclus est valide et compatible
28 avec le contexte avant et apres l'insertion
30 from Accas import JDC,ASSD,AsException,JDC_CATA
33 class JDC_POURSUITE(JDC):
34 def __init__(self,definition=None,procedure=None,cata=None,
35 cata_ord_dico=None,parent=None,
36 nom='SansNom',appli=None,context_ini=None,
37 jdc_pere=None,etape_include=None,prefix_include=None,
38 recorded_units=None,old_recorded_units=None,**args):
40 JDC.__init__(self, definition=definition,
43 cata_ord_dico=cata_ord_dico,
47 context_ini=context_ini,
50 self.jdc_pere=jdc_pere
51 self.etape_include=etape_include
52 self.prefix_include=prefix_include
53 if recorded_units is not None:self.recorded_units=recorded_units
54 if old_recorded_units is not None:self.old_recorded_units=old_recorded_units
56 def NommerSdprod(self,sd,sdnom,restrict='non'):
58 Nomme la SD apres avoir verifie que le nommage est possible : nom
60 Ajoute un prefixe s'il est specifie (INCLUDE_MATERIAU)
61 Si le nom est deja utilise, leve une exception
62 Met le concept créé dans le concept global g_context
64 if self.prefix_include:
65 if sdnom != self.prefix_include:sdnom=self.prefix_include+sdnom
66 o=self.sds_dict.get(sdnom,None)
67 if isinstance(o,ASSD):
68 raise AsException("Nom de concept deja defini : %s" % sdnom)
70 # Il faut verifier en plus que le jdc_pere apres l'etape etape_include
71 # ne contient pas deja un concept de ce nom
72 #if self.jdc_pere.get_sd_apres_etape(sdnom,etape=self.etape_include):
73 # Il existe un concept apres self => impossible d'inserer
74 # raise AsException("Nom de concept deja defini : %s" % sdnom)
76 # ATTENTION : Il ne faut pas ajouter sd dans sds car il s y trouve deja.
77 # Ajoute a la creation (appel de reg_sd).
78 self.sds_dict[sdnom]=sd
81 # En plus si restrict vaut 'non', on insere le concept dans le contexte du JDC
83 self.g_context[sdnom]=sd
85 class JDC_INCLUDE(JDC_POURSUITE):
86 def active_etapes(self):
90 class JDC_CATA_INCLUDE(JDC_CATA):
91 class_instance=JDC_INCLUDE
93 class JDC_CATA_POURSUITE(JDC_CATA):
94 class_instance=JDC_POURSUITE
96 from Accas import AU_MOINS_UN,A_CLASSER
98 JdC_include=JDC_CATA_INCLUDE(code='ASTER', execmodul=None)
100 JdC_poursuite=JDC_CATA_POURSUITE(code='ASTER', execmodul=None,
101 regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
103 A_CLASSER(('DEBUT','POURSUITE'),'FIN')