X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Noyau%2FN_OBJECT.py;h=8765539fa91a44d93224a6c988de53efc375b508;hb=2712997ef9fbe9d855d9f292db9327af611cc1c0;hp=27876396c07ec306e97ef4b0e44350f8fa9d19ca;hpb=dbe648488708009d86ca09a606bd60b274fdd6f6;p=tools%2Feficas.git diff --git a/Noyau/N_OBJECT.py b/Noyau/N_OBJECT.py index 27876396..8765539f 100644 --- a/Noyau/N_OBJECT.py +++ b/Noyau/N_OBJECT.py @@ -1,98 +1,147 @@ -#@ MODIF N_OBJECT Noyau DATE 04/02/2004 AUTEUR CAMBIER S.CAMBIER -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. +# coding=utf-8 +# Copyright (C) 2007-2017 EDF R&D # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -""" - Ce module contient la classe OBJECT classe mère de tous les objets - servant à controler les valeurs par rapport aux définitions +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com + + """ + Ce module contient la classe OBJECT classe mère de tous les objets + servant à controler les valeurs par rapport aux définitions +""" +from __future__ import absolute_import +try : + from builtins import object +except : + pass +from .N_CR import CR + + +class OBJECT(object): + + """ + Classe OBJECT : cette classe est virtuelle et sert de classe mère + aux classes de type ETAPE et MOCLES. + Elle ne peut etre instanciée. + Une sous classe doit obligatoirement implémenter les méthodes : + + - __init__ + + """ + + def getEtape(self): + """ + Retourne l'étape à laquelle appartient self + Un objet de la catégorie etape doit retourner self pour indiquer que + l'étape a été trouvée + XXX double emploi avec self.etape ??? + """ + if self.parent == None: + return None + return self.parent.getEtape() + + def supprime(self): + """ + Méthode qui supprime les références arrières suffisantes pour + que l'objet puisse etre correctement détruit par le + garbage collector + """ + self.parent = None + self.etape = None + self.jdc = None + self.niveau = None + + def getVal(self): + """ + Retourne la valeur de l'objet. Cette méthode fournit + une valeur par defaut. Elle doit etre dérivée pour chaque + type d'objet + """ + return self + + + def getJdcRoot(self): + """ + Cette méthode doit retourner l'objet racine c'est à dire celui qui + n'a pas de parent + """ + if self.parent: + return self.parent.getJdcRoot() + else: + return self + + def GETVAL(self, val): + """ + Retourne la valeur effective du mot-clé en fonction + de la valeur donnée. Defaut si val == None + """ + if (val is None and hasattr(self.definition, 'defaut')): + return self.definition.defaut + else: + return val + + def reparent(self, parent): + """ + Cette methode sert a reinitialiser la parente de l'objet + """ + self.parent = parent + self.jdc = parent.jdc + + def isBLOC(self): + """ + Indique si l'objet est un BLOC + surcharge dans MCBLOC + """ + return 0 + + def longueurDsArbre(self): + return 1 + + +class ErrorObj(OBJECT): + + """Classe pour objets errones : emule le comportement d'un objet tel mcsimp ou mcfact + """ + + def __init__(self, definition, valeur, parent, nom="err"): + self.nom = nom + self.definition = definition + self.valeur = valeur + self.parent = parent + self.mcListe = [] + if parent: + self.jdc = self.parent.jdc + # self.niveau = self.parent.niveau + # self.etape = self.parent.etape + else: + # Pas de parent + self.jdc = None + # self.niveau = None + # self.etape = None + + def isValid(self, cr='non'): + return 0 + + def report(self): + """ génère le rapport de validation de self """ + self.cr = CR() + self.cr.debut = u"Mot-clé invalide : " + self.nom + self.cr.fin = u"Fin Mot-clé invalide : " + self.nom + self.cr.fatal(_(u"Type non autorisé pour le mot-clé %s : '%s'"), + self.nom, self.valeur) + return self.cr -class OBJECT: - """ - Classe OBJECT : cette classe est virtuelle et sert de classe mère - aux classes de type ETAPE et MOCLES. - Elle ne peut etre instanciée. - Une sous classe doit obligatoirement implémenter les méthodes : - - - __init__ - - """ - - def get_etape(self): - """ - Retourne l'étape à laquelle appartient self - Un objet de la catégorie etape doit retourner self pour indiquer que - l'étape a été trouvée - XXX double emploi avec self.etape ??? - """ - if self.parent == None: return None - return self.parent.get_etape() - - def supprime(self): - """ - Méthode qui supprime les références arrières suffisantes pour - que l'objet puisse etre correctement détruit par le - garbage collector - """ - self.parent = None - self.etape = None - self.jdc = None - self.niveau = None - - def get_val(self): - """ - Retourne la valeur de l'objet. Cette méthode fournit - une valeur par defaut. Elle doit etre dérivée pour chaque - type d'objet - """ - return self - - def isBLOC(self): - """ - Indique si l'objet est un BLOC - """ - return 0 - - def get_jdc_root(self): - """ - Cette méthode doit retourner l'objet racine c'est à dire celui qui - n'a pas de parent - """ - if self.parent: - return self.parent.get_jdc_root() - else: - return self - - def GETVAL(self,val): - """ - Retourne la valeur effective du mot-clé en fonction - de la valeur donnée. Defaut si val == None - """ - if (val is None and hasattr(self.definition,'defaut')) : - return self.definition.defaut - else: - return val - - def reparent(self,parent): - """ - Cette methode sert a reinitialiser la parente de l'objet - """ - self.parent=parent - self.jdc=parent.jdc