真心求教!gef编程读取有向流程图有分支时hashmap是否适用?如是,该如何读取下一个节点,如否,改用什么方法?流程图没有分支的时候是可以正常读取的流程图有分支的时候只能来到if,后面的没有读下去
贴上部分代码,如需更多信息请留言
ReceiveModel receive = null;
ReplyModel myReply = null;
HashMap<String,InvokeModel> invokeModelHashMap = new HashMap<String,InvokeModel>();
HashMap<String,AssignModel> assignModelHashMap = new HashMap<String,AssignModel>();
HashMap<String,ReplyModel> replyModelHashMap = new HashMap<String,ReplyModel>();
HashMap<String,IfModel> ifModelHashMap = new HashMap<String,IfModel>();
HashMap<String,ElseModel> elseModelHashMap = new HashMap<String,ElseModel>();
HashMap<String,EndElseModel> endElseModelHashMap = new HashMap<String,EndElseModel>();
HashMap<String,EndIfModel> endIfModelHashMap = new HashMap<String,EndIfModel>();
HashMap<String,WhileModel> whileModelHashMap = new HashMap<String,WhileModel>();
HashMap<String,EndWhileModel> endWhileModelHashMap = new HashMap<String,EndWhileModel>();
HashMap<String,NodeModel> nodesModelHashMap = new HashMap<String,NodeModel>();
Iterator<NodeModel> i = diagram.getNodes().iterator();
while(i.hasNext()){
NodeModel nodeModel = i.next();
if(nodeModel instanceof ReceiveModel){
receive = (ReceiveModel)nodeModel;
}else if(nodeModel instanceof ReplyModel){
myReply = (ReplyModel)nodeModel;
replyModelHashMap.put(nodeModel.getName(),(ReplyModel)nodeModel);
}else if(nodeModel instanceof InvokeModel){
invokeModelHashMap.put(nodeModel.getName(),(InvokeModel)nodeModel);
}else if(nodeModel instanceof AssignModel){
assignModelHashMap.put(nodeModel.getName(),(AssignModel)nodeModel);
}else if(nodeModel instanceof IfModel){
ifModelHashMap.put(nodeModel.getName(),(IfModel)nodeModel);
}else if(nodeModel instanceof ElseModel){
elseModelHashMap.put(nodeModel.getName(),(ElseModel)nodeModel);
}else if(nodeModel instanceof EndElseModel){
endElseModelHashMap.put(nodeModel.getName(),(EndElseModel)nodeModel);
}else if(nodeModel instanceof WhileModel){
whileModelHashMap.put(nodeModel.getName(),(WhileModel)nodeModel);
}else if(nodeModel instanceof EndWhileModel){
endWhileModelHashMap.put(nodeModel.getName(),(EndWhileModel)nodeModel);
}else if(nodeModel instanceof EndIfModel){
endIfModelHashMap.put(nodeModel.getName(),(EndIfModel)nodeModel);
}
nodesModelHashMap.put(nodeModel.getName(),nodeModel);
} HashMap遍历Java
贴上部分代码,如需更多信息请留言
ReceiveModel receive = null;
ReplyModel myReply = null;
HashMap<String,InvokeModel> invokeModelHashMap = new HashMap<String,InvokeModel>();
HashMap<String,AssignModel> assignModelHashMap = new HashMap<String,AssignModel>();
HashMap<String,ReplyModel> replyModelHashMap = new HashMap<String,ReplyModel>();
HashMap<String,IfModel> ifModelHashMap = new HashMap<String,IfModel>();
HashMap<String,ElseModel> elseModelHashMap = new HashMap<String,ElseModel>();
HashMap<String,EndElseModel> endElseModelHashMap = new HashMap<String,EndElseModel>();
HashMap<String,EndIfModel> endIfModelHashMap = new HashMap<String,EndIfModel>();
HashMap<String,WhileModel> whileModelHashMap = new HashMap<String,WhileModel>();
HashMap<String,EndWhileModel> endWhileModelHashMap = new HashMap<String,EndWhileModel>();
HashMap<String,NodeModel> nodesModelHashMap = new HashMap<String,NodeModel>();
Iterator<NodeModel> i = diagram.getNodes().iterator();
while(i.hasNext()){
NodeModel nodeModel = i.next();
if(nodeModel instanceof ReceiveModel){
receive = (ReceiveModel)nodeModel;
}else if(nodeModel instanceof ReplyModel){
myReply = (ReplyModel)nodeModel;
replyModelHashMap.put(nodeModel.getName(),(ReplyModel)nodeModel);
}else if(nodeModel instanceof InvokeModel){
invokeModelHashMap.put(nodeModel.getName(),(InvokeModel)nodeModel);
}else if(nodeModel instanceof AssignModel){
assignModelHashMap.put(nodeModel.getName(),(AssignModel)nodeModel);
}else if(nodeModel instanceof IfModel){
ifModelHashMap.put(nodeModel.getName(),(IfModel)nodeModel);
}else if(nodeModel instanceof ElseModel){
elseModelHashMap.put(nodeModel.getName(),(ElseModel)nodeModel);
}else if(nodeModel instanceof EndElseModel){
endElseModelHashMap.put(nodeModel.getName(),(EndElseModel)nodeModel);
}else if(nodeModel instanceof WhileModel){
whileModelHashMap.put(nodeModel.getName(),(WhileModel)nodeModel);
}else if(nodeModel instanceof EndWhileModel){
endWhileModelHashMap.put(nodeModel.getName(),(EndWhileModel)nodeModel);
}else if(nodeModel instanceof EndIfModel){
endIfModelHashMap.put(nodeModel.getName(),(EndIfModel)nodeModel);
}
nodesModelHashMap.put(nodeModel.getName(),nodeModel);
} HashMap遍历Java
解决方案 »
- 文件上传。。。
- SSH 整合 报空指针错误 求高手解决
- 求助:PreparedStatemet和Statement的区别和使用说明,演示SQL注入的问题的实例?
- 请教一个struts2 redirectAction, action1转发到action2请问action2能获得action1里面的参数吗
- jstl自定义函数不支持EL语言的嵌套吗?${fn:substring(${user.describe},1,3)} 写法报错!!!为什么???
- java怎么写服务端
- tomcat 5.5.12如何配置ssl
- 特急!!!!!!!一段提交协议 两段提交协议
- 关于EJB1.0版和EJB2.0版的一些实用的问题
- java EE -Eclipse中怎样配置php 请赐教~~急急急
- struts2的ModelDriven<T>的问题
- 求助、提示异常内存溢出
就得到它的输出数据类型,如否就继续上一个。这个方法在没有分支的第一幅图那里没有报错,但
在第二幅图有分支的情况下就报错了。我现在没有想到更好的办法来解决这个问题。请问有没有更
好的建议?
Map<String 节点名称, List<String 节点名称>>寻找节点时,用广度优先遍历会更简单点。