def __build_on_condition(parameter_joint: ParameterJoint, topic, data,
                         context):
    if parameter_joint.filters:
        joint_type = parameter_joint.jointType
        condition_result = ConditionResult(logicOperator=joint_type)
        for filter_condition in parameter_joint.filters:
            if filter_condition.jointType is not None:
                condition_result.resultList.append(
                    __build_on_condition(filter_condition, topic, data,
                                         context))
            else:
                left_value_list = get_source_value_list(topic,
                                                        data,
                                                        filter_condition.left,
                                                        target_factor=None,
                                                        context=context)
                log.info("left_value_list:{0}".format(left_value_list))
                factor = __get_condition_factor(filter_condition.left, topic)
                right_value_list = get_source_value_list(
                    topic, data, filter_condition.right, factor, context)
                log.info("right_value_list:{0}".format(right_value_list))
                result: bool = check_condition(filter_condition.operator,
                                               left_value_list,
                                               right_value_list)
                condition_result.resultList.append(result)
        log.info("condition_result:{0}".format(condition_result))
        return condition_result
def __build_on_condition(parameter_joint: ParameterJoint, topic, data):
    if parameter_joint.filters:
        joint_type = parameter_joint.jointType
        condition_result = ConditionResult(logicOperator=joint_type)
        for filter_condition in parameter_joint.filters:
            if filter_condition.jointType is not None:
                condition_result.resultList.append(__build_on_condition(filter_condition, topic, data))
            else:
                left_value_list = get_source_value_list(topic, data, filter_condition.left)
                right_value_list = get_source_value_list(topic, data, filter_condition.right)
                result: bool = check_condition(filter_condition.operator, left_value_list, right_value_list)
                condition_result.resultList.append(result)
    return condition_result