xlsutil.java

来自「UCS (Ultra Corba Simulator) is one more 」· Java 代码 · 共 1,287 行 · 第 1/4 页

JAVA
1,287
字号
                }
                if (str.equals("tk_char")) {
                    str = r.getNextParXXX(col, lin++);
                    str = r.getNextParXXX(col, lin++);
                    any.insert_char(str.charAt(0));
                }
                if (str.equals("tk_wchar")) {
                    str = r.getNextParXXX(col, lin++);
                    str = r.getNextParXXX(col, lin++);
                    any.insert_wchar(str.charAt(0));
                }
                if (str.equals("tk_boolean")) {
                    str = r.getNextParXXX(col, lin++);
                    str = r.getNextParXXX(col, lin++);
                    any.insert_boolean(new Boolean(str).booleanValue());
                }
                if (str.equals("tk_octet")) {
                    str = r.getNextParXXX(col, lin++);
                    str = r.getNextParXXX(col, lin++);
                    any.insert_octet(new Byte(str).byteValue());
                }
                if (str.equals("tk_any")) {
                    tmp = readObjectFromXXX(r, col, lin);
                    str = r.getNextParXXX(col, lin++);
                    lin = ((Integer) tmp.get(0)).intValue();
                    any.insert_any((org.omg.CORBA.Any) tmp.get(1));
                }
                if (str.equals("tk_void")) {
                    // nothing to do TODO check later whether it's
                    // useful
                }
                if (str.equals("tk_string")) {
                    str = r.getNextParXXX(col, lin++);
                    str = r.getNextParXXX(col, lin++);
                    any.insert_string(str);
                }
                if (str.equals("tk_wstring")) {
                    str = r.getNextParXXX(col, lin++);
                    str = r.getNextParXXX(col, lin++);
                    any.insert_wstring(str);
                }
            }

            ret.add(new Integer(lin));
            ret.add(any);
            return ret;
        } else if (str.equals("java.lang.Float")) {
            str = r.getNextParXXX(col, lin++);
            ret.add(new Integer(lin));
            ret.add(new Float(str));
            return ret;
        } else if (str.equals("java.lang.Double")) {
            str = r.getNextParXXX(col, lin++);
            ret.add(new Integer(lin));
            ret.add(new Double(str));
            return ret;
        } else if (str.equals("java.lang.Short")) {
            str = r.getNextParXXX(col, lin++);
            ret.add(new Integer(lin));
            ret.add(new Short(str));
            return ret;
        } else if (str.equals("java.lang.Integer")) {
            str = r.getNextParXXX(col, lin++);
            ret.add(new Integer(lin));
            ret.add(new Integer(str));
            return ret;
        } else if (str.equals("java.lang.Long")) {
            str = r.getNextParXXX(col, lin++);
            ret.add(new Integer(lin));
            ret.add(new Long(str));
            return ret;
        } else if (str.equals("java.lang.Character")) {
            str = r.getNextParXXX(col, lin++);
            ret.add(new Integer(lin));
            ret.add(new Character(str.charAt(0)));
            return ret;
        } else if (str.equals("java.lang.Boolean")) {
            str = r.getNextParXXX(col, lin++);
            ret.add(new Integer(lin));
            ret.add(new Boolean(str));
            return ret;
        } else if (str.equals("java.lang.Byte")) {
            str = r.getNextParXXX(col, lin++);
            ret.add(new Integer(lin));
            ret.add(new Byte(str));
            return ret;
        } else if (str.equals("java.lang.String")) {
            str = r.getNextParXXX(col, lin++);
            ret.add(new Integer(lin));
            ret.add(str);
            return ret;
        }

        return null;
    }

    // private static boolean readArgs

    private static int saveObjectToXXX(OpWriter w, Object o, int col, int lin) {
        if (o instanceof java.lang.Object[]) {
            // CTArray , CTSequence
            Object[] oo = (Object[]) o;
            w.writeNextParXXX(col, lin, "java.lang.Object[]");
            lin++;
            w.writeNextParXXX(col, lin, "" + oo.length);
            lin++;
            for (int i = 0; i < oo.length; i++) {
                lin = saveObjectToXXX(w, oo[i], col, lin);
            }
            return lin;
        } else if (o instanceof java.util.List) {
            // CTStruct , CTUnion , CTExcept
            List list = (List) o;
            w.writeNextParXXX(col, lin, "java.util.List");
            lin++;
            w.writeNextParXXX(col, lin, "" + list.size());
            lin++;
            for (int i = 0; i < list.size(); i++) {
                lin = saveObjectToXXX(w, list.get(i), col, lin);
            }
            return lin;
        } else if (o instanceof org.omg.CORBA.Object) {
            org.omg.CORBA.Object obj = (org.omg.CORBA.Object) o;
            w.writeNextParXXX(col, lin, "java.lang.String");
            lin++;
            String str = "";
            try {
                str = CorbaFacility.orb.object_to_string(obj);
            } catch (Exception ex) {
                // nothing to do
            }
            w.writeNextParXXX(col, lin, str);
            lin++;
            return lin;
        } else if (o instanceof org.omg.CORBA.Any) {
            // CTBasic, "any"
            org.omg.CORBA.Any any = (org.omg.CORBA.Any) o;
            w.writeNextParXXX(col, lin, "org.omg.CORBA.Any");
            lin++;
            List list = anyToObject(any, w, col, lin);
            lin = saveObjectToXXX(w, list.get(0), col, ((Integer) list.get(1)).intValue());

            return lin;
        } else if (o instanceof java.lang.Float) {
            w.writeNextParXXX(col, lin, "java.lang.Float");
            lin++;
            w.writeNextParXXX(col, lin, o.toString());
            lin++;
            return lin;
        } else if (o instanceof java.lang.Double) {
            w.writeNextParXXX(col, lin, "java.lang.Double");
            lin++;
            w.writeNextParXXX(col, lin, o.toString());
            lin++;
            return lin;
        } else if (o instanceof java.lang.Short) {
            w.writeNextParXXX(col, lin, "java.lang.Short");
            lin++;
            w.writeNextParXXX(col, lin, o.toString());
            lin++;
            return lin;
        } else if (o instanceof java.lang.Integer) {
            w.writeNextParXXX(col, lin, "java.lang.Integer");
            lin++;
            w.writeNextParXXX(col, lin, o.toString());
            lin++;
            return lin;
        } else if (o instanceof java.lang.Long) {
            w.writeNextParXXX(col, lin, "java.lang.Long");
            lin++;
            w.writeNextParXXX(col, lin, o.toString());
            lin++;
            return lin;
        } else if (o instanceof java.lang.Character) {
            w.writeNextParXXX(col, lin, "java.lang.Character");
            lin++;
            w.writeNextParXXX(col, lin, o.toString());
            lin++;
            return lin;
        } else if (o instanceof java.lang.Boolean) {
            w.writeNextParXXX(col, lin, "java.lang.Boolean");
            lin++;
            w.writeNextParXXX(col, lin, o.toString());
            lin++;
            return lin;
        } else if (o instanceof java.lang.Byte) {
            w.writeNextParXXX(col, lin, "java.lang.Byte");
            lin++;
            w.writeNextParXXX(col, lin, o.toString());
            lin++;
            return lin;
        } else if (o instanceof java.lang.String) {
            w.writeNextParXXX(col, lin, "java.lang.String");
            lin++;
            w.writeNextParXXX(col, lin, o.toString());
            lin++;
            return lin;
        }
        return lin;
    }

    public static boolean saveOpFlow(MNQMutableTreeNode root, String file) {
        OpFlowWriter w = new OpFlowWriter();
        if (!w.open(file))
            return false;
        w.writeFlowType(OpFlowWriter.CLIENT_FLOW);
        for (Enumeration e = root.children(); e.hasMoreElements();) {
            MNQMutableTreeNode mtn = (MNQMutableTreeNode) e.nextElement();

            OpFlowNode cn = (OpFlowNode) mtn.getUserObject();
            if (!w.writeNextItem(OpFlowWriter.FILE_ITEM, cn.file, cn.iter))
                return false;

            // write replace
            List rls = ReplaceUtil.getRepList(mtn);
            if (rls != null && rls.size() > 0) {
                for (int i = 0; i < rls.size(); i++) {
                    RepNode rn = (RepNode) rls.get(i);
                    if (!w.writeNextItem(OpFlowWriter.REPLACE_ITEM, rn.sid, rn.tid))
                        return false;
                }
            }
            // write pattern
            List pls = MatchUtil.getPatternList(mtn);
            if (pls != null && pls.size() > 0) {
                for (int i = 0; i < pls.size(); i++) {
                    PatternNode pn = (PatternNode) pls.get(i);
                    if (!w.writeNextItem(OpFlowWriter.PATTERN_ITEM, pn.nodeid, pn.pattern))
                        return false;
                }
            }
        }
        return w.close();
    }

    public static boolean saveResult(IdlOperation op, List out, Any ret, Exception e, JTree tree,
            MNQMutableTreeNode topPara) {
        if (!saveResult)
            return true;

        MNQMutableTreeNode top_ParaTree = topPara;
        // before save result, the top_ParaTree should exist already
        /*
         * if( tree != MNQmainFrame.caseTree ){ Object o =
         * Warehouse.node2table.get(op); DefaultTreeModel treeModel =
         * (DefaultTreeModel) o; top_ParaTree = (MNQMutableTreeNode)
         * treeModel .getRoot(); } else { top_ParaTree= }
         */
        // MNQmainFrame.commonPane.appendln("saveResult to tree...");
        LOG.info("saveResult to tree...");

        int order = 0;
        for (Enumeration it = top_ParaTree.children(); it.hasMoreElements();) {
            MNQMutableTreeNode tmp = (MNQMutableTreeNode) it.nextElement();
            // System.out.println("tmp="+tmp.toString());
            if (tmp.toString().startsWith("return ")) {
                if (e == null) {
                    writeElementFromAny(tmp, ret, ret.type(), tree);
                }
                // refresh the node
                else {
                    tmp.removeAllChildren(true);
                    MNQmainFrame.buildParaSibling(tmp, ((Args) tmp.getUserObject()).pt, tree);
                }
            } else if (tmp.toString().startsWith("Exceptions")) {
                if (e != null) {
                    try {
                        org.omg.CORBA.UnknownUserException ue = (UnknownUserException) e;
                        writeElementFromAny(tmp, ue.except, ue.except.type(), tree);
                    } catch (Exception ex) {
                        MNQmainFrame.commonPane.appendln("Can not save Except to tree: "
                                + e.getMessage());
                    }
                } else {
                    TypeBase et = ((Args) tmp.getUserObject()).pt;
                    et.setValueToTree("None");
                    ((DefaultTreeModel) MNQmainFrame.paraTree.getModel()).reload(tmp);
                }
            } else if (tmp.toString().startsWith("in ")) {
                if (e == null) {
                    if (order < out.size()) {
                        Any a = (Any) out.get(order);
                        writeElementFromAny(tmp, a, a.type(), tree);
                    }
                }
            } else {// for inout & out
                if (e == null) {
                    if (order < out.size()) {
                        Any a = (Any) out.get(order);
                        writeElementFromAny(tmp, a, a.type(), tree);
                    }
                }
                // refresh the node
                else {
                    tmp.removeAllChildren(true);
                    MNQmainFrame.buildParaSibling(tmp, ((Args) tmp.getUserObject()).pt, tree);
                }
            }
            order++;
        }

        // MNQmainFrame.commonPane.appendln("saveResult success");
        LOG.info("saveResult success");
        return true;
    }

    private static void writeElementFromAny(MNQMutableTreeNode w, Any a, TypeCode tc, JTree tree) {
        try {
            MNQMutableTreeNode currentMtn = w;
            Object o = currentMtn.getUserObject();
            TypeBase currentType;
            if (o instanceof Args)
                currentType = ((Args) o).pt;
            else
                currentType = (TypeBase) o;

            while (currentType instanceof CTDeclaration) {
                // alias node only has one child node
                currentMtn = (MNQMutableTreeNode) currentMtn.getFirstChild();
                // the getUserObject should only be Type since it is
                // sub node of Args
                currentType = (TypeBase) currentMtn.getUserObject();

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?