runopflow.java
来自「UCS (Ultra Corba Simulator) is one more 」· Java 代码 · 共 150 行
JAVA
150 行
package com.corba.mnq.xls;
import com.corba.mnq.main.MNQmainFrame;
import com.corba.mnq.skelstub.DiiImpl;
import com.corba.mnq.tool.EtcProperties;
import com.corba.mnq.tool.GetEtcTool;
import com.corba.mnq.tool.idl.Args;
import com.corba.mnq.tool.idl.IdlExcept;
import com.corba.mnq.tool.idl.InArgs;
import com.corba.mnq.tool.idl.InoutArgs;
import com.corba.mnq.tool.idl.OutArgs;
import com.corba.mnq.ui.MNQMutableTreeNode;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeModel;
import java.util.Enumeration;
import java.util.List;
import java.util.Vector;
public class RunOpFlow implements Runnable {
private MNQMutableTreeNode root;
private JTree tree;
public static boolean ignoreFailureCase = true;
public static boolean outputInClient = true;
private static EtcProperties props;
public RunOpFlow(MNQMutableTreeNode root, JTree tree) {
super();
this.root = root;
this.tree = tree;
props = GetEtcTool.getProperties();
outputInClient = props.getProperty("CorbaMNQ.testcase.outputInClientWindow", "true")
.equalsIgnoreCase("true");
}
public void run() {
if (!root.isLeaf()) {
int caseid = 0;
int passcase = 0;
int failurecase = 0;
Enumeration e = root.children();
while (e.hasMoreElements()) {
MNQMutableTreeNode opmtn = (MNQMutableTreeNode) e.nextElement();
ReplaceUtil.replace(opmtn);
OpFlowNode cn = (OpFlowNode) opmtn.getUserObject();
// if in is not existed, then getIor will assign it
cn.op.getIor();
cn.op.in.setior(cn.ior);
// ----------
// all argument List
List allArg = new Vector();
List excep = new Vector();
// insert the value in the TypeBase.val
for (Enumeration e1 = opmtn.children(); e1.hasMoreElements();) {
Args o = (Args) (((MNQMutableTreeNode) e1.nextElement()).getUserObject());
if (o instanceof InArgs) {
o.pt.getValueFromTree();
o.pt.argModes = "in";
allArg.add(o.pt);
} else if (o instanceof OutArgs) {
o.pt.argModes = "out";
allArg.add(o.pt);
} else if (o instanceof InoutArgs) {
o.pt.getValueFromTree();
o.pt.argModes = "inout";
allArg.add(o.pt);
}
}
List ens = cn.op.getExceptions();
for (int i = 0; i < ens.size(); i++) {
IdlExcept en = (IdlExcept) ens.get(i);
excep.add(en.toType());
}
List allRes = new Vector();
// TypeBase rt = null;
// TypeBase except = null;
for (Enumeration enu = opmtn.children(); enu.hasMoreElements();) {
Args o = (Args) (((MNQMutableTreeNode) enu.nextElement()).getUserObject());
if (o instanceof InArgs) {
// o.pt.getValueFromTree();
// o.pt.argModes = "in";
// allRes.add(o.pt);
} else if (o instanceof OutArgs) {
// o.pt.getValueFromTree();
o.pt.argModes = "out";
allRes.add(o.pt);
} else if (o instanceof InoutArgs) {
// o.pt.getValueFromTree();
o.pt.argModes = "inout";
allRes.add(o.pt);
}
// else if (o instanceof ReturnArgs) {
// rt = o.pt;
// rt.getValueFromTree();
// } else if (o instanceof ExceptSequence) {
// except = ((CTExceptList) o.pt).selectedExcept;
// if (except != null)
// except.getValueFromTree();
// }
}
MNQmainFrame.commonPane.appendln("Execute Case" + caseid + ":" + cn.toString(),
"Input");
boolean iter = false;
do {
iter = DiiImpl.invokeWithoutCompare(cn.op, allArg, excep, allRes,
MNQmainFrame.caseTree, opmtn, outputInClient, cn.iter);
} while (iter);
caseid++;
// String matchinfo = "";
boolean isOk = MatchUtil.matchOp(opmtn);
// MNQmainFrame.commonPane.appendln("Result:" +
// matchinfo);
if (isOk) {
passcase++;
MNQmainFrame.commonPane.appendln("\tOK!--:)", "Output");
} else {
failurecase++;
MNQmainFrame.commonPane.appendln("\tFailed!!!--:(((", "Output");
if (!ignoreFailureCase)
break;
}
// -----------
}
MNQmainFrame.commonPane.appendln("Test Report:", "Output");
MNQmainFrame.commonPane.appendln("\tTotal Case Num:" + caseid);
MNQmainFrame.commonPane.appendln("\t Passed:" + passcase);
MNQmainFrame.commonPane.appendln("\t Failed:" + failurecase);
((DefaultTreeModel) tree.getModel()).reload(root);
}
// DiiImpl.invoke(op, allArg, excep, allRes, rt,
// except,MNQmainFrame.caseTree);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?