mirror of
https://github.com/FreeOpcUa/opcua-asyncio
synced 2025-10-29 17:07:18 +08:00
Fix WhereClauseEvauluator by einarmo
This commit is contained in:
parent
31db049abf
commit
f5e678e444
|
|
@ -256,30 +256,30 @@ class WhereClauseEvaluator:
|
|||
# ops = [self._eval_op(op, event) for op in el.FilterOperands]
|
||||
ops = el.FilterOperands # just to make code more readable
|
||||
if el.FilterOperator == ua.FilterOperator.Equals:
|
||||
return self._eval_op(ops[0], event) == self._eval_el(ops[1], event)
|
||||
return self._eval_op(ops[0], event) == self._eval_op(ops[1], event)
|
||||
if el.FilterOperator == ua.FilterOperator.IsNull:
|
||||
return self._eval_op(ops[0], event) is None # FIXME: might be too strict
|
||||
if el.FilterOperator == ua.FilterOperator.GreaterThan:
|
||||
return self._eval_op(ops[0], event) > self._eval_el(ops[1], event)
|
||||
return self._eval_op(ops[0], event) > self._eval_op(ops[1], event)
|
||||
if el.FilterOperator == ua.FilterOperator.LessThan:
|
||||
return self._eval_op(ops[0], event) < self._eval_el(ops[1], event)
|
||||
return self._eval_op(ops[0], event) < self._eval_op(ops[1], event)
|
||||
if el.FilterOperator == ua.FilterOperator.GreaterThanOrEqual:
|
||||
return self._eval_op(ops[0], event) >= self._eval_el(ops[1], event)
|
||||
return self._eval_op(ops[0], event) >= self._eval_op(ops[1], event)
|
||||
if el.FilterOperator == ua.FilterOperator.LessThanOrEqual:
|
||||
return self._eval_op(ops[0], event) <= self._eval_el(ops[1], event)
|
||||
return self._eval_op(ops[0], event) <= self._eval_op(ops[1], event)
|
||||
if el.FilterOperator == ua.FilterOperator.Like:
|
||||
return self._like_operator(self._eval_op(ops[0], event), self._eval_el(ops[1], event))
|
||||
return self._like_operator(self._eval_op(ops[0], event), self._eval_op(ops[1], event))
|
||||
if el.FilterOperator == ua.FilterOperator.Not:
|
||||
return not self._eval_op(ops[0], event)
|
||||
if el.FilterOperator == ua.FilterOperator.Between:
|
||||
return self._eval_el(ops[2], event) >= self._eval_op(ops[0], event) >= self._eval_el(ops[1], event)
|
||||
return self._eval_op(ops[2], event) >= self._eval_op(ops[0], event) >= self._eval_op(ops[1], event)
|
||||
if el.FilterOperator == ua.FilterOperator.InList:
|
||||
return self._eval_op(ops[0], event) in [self._eval_op(op, event) for op in ops[1:]]
|
||||
if el.FilterOperator == ua.FilterOperator.And:
|
||||
self.elements(ops[0].Index)
|
||||
return self._eval_op(ops[0], event) and self._eval_op(ops[1], event)
|
||||
if el.FilterOperator == ua.FilterOperator.Or:
|
||||
return self._eval_op(ops[0], event) or self._eval_el(ops[1], event)
|
||||
return self._eval_op(ops[0], event) or self._eval_op(ops[1], event)
|
||||
if el.FilterOperator == ua.FilterOperator.Cast:
|
||||
self.logger.warn("Cast operand not implemented, assuming True")
|
||||
return True
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user