指令数据采集(五)--指令的条件的执行判断
指令在执行的时候,执行当前的指令前,需要进行判断当前的指令是否需要执行,则需要对条件进行判断,根据前面设计的条件判断方式和对象,则现在的条件执行需要嵌套递归执行,也就是(条件组(条件组(条件组(条件组))))
1 public class GroupConditionExector { 2 private List<Param> paramList; 3 public GroupConditionExector(List<Param> paramList){ 4 this.paramList = paramList; 5 } 6 public GroupConditionExector(){} 7 public boolean execute(GroupCondition groupCondition){ 8 //组成员的判断 9 IConditionOperation iConditionOperation = groupCondition.getiConditionOperation(); 10 IConditionOperation iConditionOperationGroup; 11 Param paramA = groupCondition.getParamA(); 12 Param paramB = groupCondition.getParamB(); 13 //组成员 14 if(paramList!=null&&!paramList.isEmpty()){ 15 for(Param param:paramList){ 16 if(paramA!=null){ 17 if(param.getParamKey()!=null 18 &¶mA.getParamKey()!=null 19 &¶m.getParamKey().getKeyId()!=null 20 &¶mA.getParamKey().getKeyId()!=null 21 &¶m.getParamKey().getKeyId().equals(paramA.getParamKey().getKeyId())){ 22 //将当前的值复制给 判断的值 23 if(param.getParamValue()!=null) { 24 paramA.setParamValue(param.getParamValue()); 25 } 26 } 27 } 28 } 29 } 30 boolean paramFlag; 31 //组属性的判断 32 boolean groupFlag; 33 boolean groupResult; 34 /** 35 * 如果设置了组判断的条件就进行判断 36 * 如果没有设置组判断条件则直接返回 37 * 递归处理条件 38 */ 39 if(groupCondition.getGroupCondition()!=null) { 40 groupFlag = execute(groupCondition.getGroupCondition()); 41 if(paramA!=null&¶mB!=null) { 42 //如果当前组的条件是存在的则进行处理 43 paramFlag= iConditionOperation.operation(paramA, paramB); 44 }else { 45 //如果不存在则使用组的结果直接进行判断 46 paramFlag = groupFlag; 47 } 48 iConditionOperationGroup = groupCondition.getiConditionOperationGroup(); 49 groupResult = iConditionOperationGroup.operationLogic(paramFlag,groupFlag); 50 /** 51 * 经过组判断 返回组判断的结果 52 */ 53 return groupResult; 54 }else { 55 //没有组进行判断 56 paramFlag= iConditionOperation.operation(paramA, paramB); 57 /** 58 * 没有经过组判断 返回结果 59 * 递归判断返回的结果 60 */ 61 return paramFlag; 62 } 63 64 } 65 }
View Code
递归判断执行对象 能够决定是否执行当前的指令,设置的是Instruction当中的isCondition属性,true为执行,false为否
转载于:https://www.cnblogs.com/binarysheep/p/7441884.html
指令数据采集(五)--指令的条件的执行判断相关推荐
- 深入理解操作系统(10)第四章:处理器体系结构(2)Y86-64的顺序实现(包括:SEQ/指令的各阶段操作:取指,解码,执行,访存,回写,更新PC/序列指令/硬件结构/时序/阶段的实现/SEQ+)
深入理解操作系统(10)第四章:处理器体系结构(2)Y86-64的顺序实现(包括:SEQ/指令的各阶段操作:取指,解码,执行,访存,回写,更新PC/序列指令/硬件结构/时序/阶段的实现/SEQ+) 1 ...
- 【ABB】ABB机器人\RAPID中FOR重复执行判断指令
1.FOR指令结构定义 (1)FOR指令结构 FOR <ID> FROM <EXP> TO <EXP> STEP <EXP> DO <SMT> ...
- 抗去除花指令(一)——花指令基础
转自 http://blog.csdn.net/yangbostar/article/details/6194133 入门知识,高手勿读 一. 概述 花指令是对抗反汇编的有效手段之一,正常代码添加了花 ...
- ISA——x86指令、ARM指令、、
ISA(instruction set architecture)指令集维基定义https://en.wikipedia.org/wiki/Instruction_set_architecture 无 ...
- ARM指令和Thumb指令的区别
一.现在先区分下ARM指令集与Thumb指令集 Thumb 指令可以看作是 ARM 指令压缩形式的子集,是针对代码密度的问题而提出的,它具有 16 位的代码密度但是它不如ARM指令的效率 ...
- std在汇编语言是什么指令_汇编语言指令
汇编指令英文全称 1.通用数据传送指令 MOV----> move MOV dest,src ;dest←src MOV指令把一个字节或字的操作数从源地址src传送至目的地址dest. MOVS ...
- scp命令 二进制_plc中scl指令和scp指令的作用与应用案例
一.plc scl指令和scp指令的作用 1.RSLOGIX 500中的SCL和SCP的作用是什么? 2.这二个指令作用相同,但是可支持的SLC型号有区别. SCL是通过计算偏移来整定,就相当于一次方 ...
- 2020-12-4((ARM汇编)mov指令,LDR指令,LDR伪指令)
首先说明一下 ARM是RISC("reduced instruction set computer",即"精简指令集计算机")结构 x86是CISC(" ...
- mo汇编指令_汇编指令大全
一.数据传输指令 ─────────────────────────────────────── 它们在存贮器和寄存器.寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字 ...
最新文章
- ACM_模拟——数学问题
- 新书问答:Company-Wide Agility
- 你值得拥有:25个Linux性能监控工具
- 网站优化之如何提升快照的更新时间?
- 电动力学每日一题 2021/10/14
- python 读grid 数据_科学网—Python_机器学习_总结14:Grid search - 李军的博文
- 2.3.4 操作系统之信号量机制(整型信号量、记录型信号量P、V)
- 怎么恢复oracle的包,【学习笔记】使用dbms_backup_restore包恢复数据库
- vue 实现瀑布流布局的 组件/插件总汇:vue-waterfall、vue-waterfall-easy、vue-virtual-collection、vue-grid-layout
- 这些道理,未必正确,一定准确
- 华为机试HJ3:明明的随机数
- 判断是否是质数 c++java
- idea 中 配置tomcat 启动 jsp项目
- Symantec Endpoint Protection v14.2企业版介绍
- .net学科-杨中科-Unity3D视频教程
- 深度学习在内窥镜图像方面的研究:
- 如何将excel转换成word文档图文教程
- 如何测试服务器端口是否打开?
- sodo 赋予非管理员用户临时权限
- 不知道如何分析选择基金、股票?Python来教你
热门文章
- syslog和syslog-ng详解
- mysql mongodb插件_FLinkX的Mongodb插件优化(三)
- php proc open 返回,PHP proc_open多次打开
- go调用ffmpeg
- 安装工程造价课程设计_安装工程造价课程设计的图纸-上海装修报价
- coreboot学习4:启动流程跟踪之romstage阶段
- 点阵字体显示系列之一:ASCII码字库的显示
- 【java】java JVM如何科学的设置内存参数 虚拟机调优案例
- 【clickhouse】clickhouse表引擎之 kafka 表引擎 卡死
- 【Spring】Unable to start ServletWebServerApplicationContext due to miss ServletWebServerFactory bean