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 |
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 |
|
|
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 |
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 |
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. |