/[ambar]/ambar/requisito.py
ViewVC logotype

Diff of /ambar/requisito.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2.5 by amoyav, Sun Aug 31 12:07:38 2003 UTC revision 2.6 by amoyav, Sun Aug 31 20:43:27 2003 UTC
# Line 167  class Requisito(object): Line 167  class Requisito(object):
167              nombre != None              nombre != None
168              parametros != None              parametros != None
169              len(parametros) > 0              len(parametros) > 0
             cumplido != None  
             cumplido[i] != None  
             no_cumplido != None  
             no_cumplido[i] != None  
170          """          """
171          req = Requisito()          req = Requisito()
172          req.__base = base          req.__base = base
# Line 230  class Requisito(object): Line 226  class Requisito(object):
226      def __leer_cumplido(self): return self.__cumplido      def __leer_cumplido(self): return self.__cumplido
227    
228      cumplido = property(__leer_cumplido,      cumplido = property(__leer_cumplido,
229                          doc="""(Requisito|Accion[]): contenido de la sección <cumplido> del requisito.                          doc="""(Guion): contenido de la sección <cumplido> del requisito.
230    
231                              Contiene una lista con los requisitos que se evalúan o las acciones que                              Contiene el guion que se ejecuta si este requisito se cumple. Puede
232                              se ejecutan si este requisito se cumple.                              ser None si no se debe ejecutar nada.
   
                             Invariantes:  
                                 cumplido != None  
                                 cumplido[i] != None  
233                              """)                              """)
234    
235      def __leer_no_cumplido(self): return self.__no_cumplido      def __leer_no_cumplido(self): return self.__no_cumplido
236    
237      no_cumplido = property(__leer_no_cumplido,      no_cumplido = property(__leer_no_cumplido,
238                             doc="""(Requisito|Accion[]): contenido de la sección <no_cumplido> del requisito.                             doc="""(Guion): contenido de la sección <no_cumplido> del requisito.
   
                                Contiene una lista con los requisitos que se evalúan o las acciones que  
                                se ejecutan si este requisito no se cumple.  
239    
240                                 Invariantes:                                 Contiene el guion que se ejecuta si este requisito no se cumple.
241                                     no_cumplido != None                                 Puede ser None si no se debe ejecutar nada.
                                    no_cumplido[i] != None  
242                                 """)                                 """)
243            
244    
# Line 315  class Requisito(object): Line 303  class Requisito(object):
303          if len(elems_cumplido) > 0:          if len(elems_cumplido) > 0:
304              self.__cumplido = Guion(elems_cumplido[0], macros_tipos)              self.__cumplido = Guion(elems_cumplido[0], macros_tipos)
305          else:          else:
306              self.__cumplido = []              self.__cumplido = None
307    
308          elems_no_cumplido = elem_requisito.getElementsByTagName('no_cumplido')          elems_no_cumplido = elem_requisito.getElementsByTagName('no_cumplido')
309          if len(elems_no_cumplido) > 0:          if len(elems_no_cumplido) > 0:
310              self.__no_cumplido = Guion(elems_no_cumplido[0], macros_tipos)              self.__no_cumplido = Guion(elems_no_cumplido[0], macros_tipos)
311          else:          else:
312              self.__no_cumplido = []              self.__no_cumplido = None
313    
314    
315      # Métodos normales      # Métodos normales
# Line 341  class Requisito(object): Line 329  class Requisito(object):
329                              "$objeto": <instancia pocion01>}                              "$objeto": <instancia pocion01>}
330    
331          Además, devuelve si la acción que originó el suceso dentro del cual está este requisito          Además, devuelve si la acción que originó el suceso dentro del cual está este requisito
332          debe ser aceptada (1) o cancelada (0), o None si no se especifica.          debe ser aceptada (True) o cancelada (False), o None si no se especifica.
333    
334          Invariantes:          Invariantes:
335              macros_valores != None              macros_valores != None
# Line 451  class Requisito(object): Line 439  class Requisito(object):
439                  expresion = str(valor_requisito)                  expresion = str(valor_requisito)
440                  # Convertir la expresion regular de tipo ?* al estilo del módulo sre.                  # Convertir la expresion regular de tipo ?* al estilo del módulo sre.
441                  expresion = "^" + expresion.replace("?", ".").replace("*", ".*") + "$"                  expresion = "^" + expresion.replace("?", ".").replace("*", ".*") + "$"
442                  comparacion = sre.match(expresion, valor_propiedad)                  comparacion_verdadera = sre.match(expresion, valor_propiedad)
443              else:              else:
444                  comparacion = eval("valor_propiedad " + str(comparador) + " " + str(valor_requisito))                  comparacion_verdadera = eval("valor_propiedad " + str(comparador) + " " + str(valor_requisito))
445          else:          else:
446              comparacion = 0              comparacion_verdadera = False
447    
448          if comparacion:          if comparacion_verdadera:
449              return self.__cumplido.ejecutar(macros_valores)              guion = self.__cumplido
450          else:          else:
451              return self.__no_cumplido.ejecutar(macros_valores)              guion = self.__no_cumplido
452    
453            if guion != None:
454                return guion.ejecutar(macros_valores)
455            else:
456                return comparacion_verdadera
457                    
458    
459  # Código para pruebas unitarias del módulo.  # Código para pruebas unitarias del módulo.

Legend:
Removed from v.2.5  
changed lines
  Added in v.2.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26