Aestate
XMLScriptBuilder.py
Go to the documentation of this file.
1 # -*- utf-8 -*-
2 from abc import ABC
3 from xml.dom.minidom import Element
4 
5 from aestate.exception import TagHandlerError
6 from aestate.util.Log import ALog
7 
8 
9 class NodeHandler(ABC):
10  """节点事件抽象"""
11 
12  def __init__(self, **kwargs):
13  for k, v in kwargs.items():
14  setattr(self, k, v)
15 
16  # 操作
17  def handleNode(self): ...
18 
19 
21  """if标签事件"""
22 
23  def handleNode(self, target_obj):
24  if self.initial_field != self.field:
25  # 转换成同类型
26  value = type(self.params[self.field])(self.value)
27  if self.symbol == '>=':
28  if self.params[self.field] >= value:
29  success = True
30  else:
31  success = False
32  elif self.symbol == '<=':
33  if self.params[self.field] <= value:
34  success = True
35  else:
36  success = False
37  elif self.symbol == '==':
38  if self.params[self.field] == value:
39  success = True
40  else:
41  success = False
42  elif self.symbol == '>':
43  if self.params[self.field] > value:
44  success = True
45  else:
46  success = False
47  elif self.symbol == '<':
48  if self.params[self.field] < value:
49  success = True
50  else:
51  success = False
52  else:
53  ALog.log_error(
54  msg=f'The node rule parsing failed and did not conform to the grammatical structure.{self.symbol}',
55  obj=TagHandlerError, LogObject=target_obj.log_obj, raise_exception=True)
56  else:
57  if self.symbol == '>=':
58  if self.field >= self.value:
59  success = True
60  else:
61  success = False
62  elif self.symbol == '<=':
63  if self.field <= self.value:
64  success = True
65  else:
66  success = False
67  elif self.symbol == '==':
68  if self.field == self.value:
69  success = True
70  else:
71  success = False
72  elif self.symbol == '>':
73  if self.field > self.value:
74  success = True
75  else:
76  success = False
77  elif self.symbol == '<':
78  if self.field < self.value:
79  success = True
80  else:
81  success = False
82  else:
83  ALog.log_error(
84  msg=f'The node rule parsing failed and did not conform to the grammatical structure.{self.symbol}',
85  obj=TagHandlerError, LogObject=target_obj.log_obj, raise_exception=True)
86  success = False
87  return success
88 
89  def checking_mark(self, node: Element):
90  if node.nextSibling:
91  if node.nextSibling.nodeName == '#text':
92  return self.checking_mark(node.nextSibling)
93  else:
94  if node.nextSibling.nodeName == 'else':
95  return True
96  else:
97  return False
98  return False
aestate.work.xmlhandler.XMLScriptBuilder.IfHandler.field
field
Definition: XMLScriptBuilder.py:68
aestate.work.xmlhandler.XMLScriptBuilder.IfHandler.symbol
symbol
Definition: XMLScriptBuilder.py:27
aestate.work.xmlhandler.XMLScriptBuilder.IfHandler
Definition: XMLScriptBuilder.py:20
aestate.work.xmlhandler.XMLScriptBuilder.NodeHandler
Definition: XMLScriptBuilder.py:9
aestate.util.Log
Definition: Log.py:1
aestate.exception
Definition: __init__.py:1
aestate.work.xmlhandler.XMLScriptBuilder.IfHandler.handleNode
def handleNode(self, target_obj)
Definition: XMLScriptBuilder.py:23
aestate.work.xmlhandler.XMLScriptBuilder.NodeHandler.__init__
def __init__(self, **kwargs)
Definition: XMLScriptBuilder.py:12
aestate.work.xmlhandler.XMLScriptBuilder.IfHandler.checking_mark
def checking_mark(self, Element node)
Definition: XMLScriptBuilder.py:89
aestate.work.xmlhandler.XMLScriptBuilder.NodeHandler.handleNode
def handleNode(self)
Definition: XMLScriptBuilder.py:17