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 + -
显示快捷键?