⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctunion.java

📁 UCS (Ultra Corba Simulator) is one more powerful corba client/servant simulator tool than other simi
💻 JAVA
字号:
package com.corba.mnq.tool.idl.type;

import com.corba.mnq.tool.CorbaFacility;
import com.corba.mnq.tool.Warehouse;
import com.corba.mnq.ui.ArgsTable;
import com.corba.mnq.ui.MNQMutableTreeNode;

import java.util.Enumeration;
import java.util.List;
import java.util.Vector;

import org.omg.CORBA.Any;
import org.omg.CORBA.TypeCode;
import org.omg.CORBA.portable.OutputStream;

public class CTUnion extends TypeBase {

    public CTUnion() {
        super();
        // TODO Auto-generated constructor stub
        valType = "java.util.List";
    }

    public List mems = new Vector();

    public List memType = new Vector();

    public List disType = new Vector();

    public TypeBase cloneType() {
        CTUnion t = new CTUnion();
        t.disName = disName;
        t.dmtn = dmtn;
        t.dn = dn;
        t.id = id;
        t.rdn = rdn;
        t.val = val;
        t.disType = disType;
        t.mems = mems;
        t.memType = new Vector();
        for (int i = 0; i < memType.size(); i++) {
            t.memType.add(((TypeBase) memType.get(i)).cloneType());
        }
        return t;
    }

    public TypeCode type() {
        // TODO Auto-generated method stub
        TypeCode _disTypeCode0;
        _disTypeCode0 = ((TypeBase) disType.get(0)).type();
        org.omg.CORBA.UnionMember[] _members0 = new org.omg.CORBA.UnionMember[disType.size()];
        org.omg.CORBA.TypeCode _tcOf_members0;
        org.omg.CORBA.Any _anyOf_members0;
        TypeBase tmp;

        for (int i = 0; i < disType.size(); i++) {
            _anyOf_members0 = orb.create_any();
            tmp = (TypeBase) disType.get(i);
            if (tmp.val instanceof CTDefaultValue) {
                _anyOf_members0.insert_octet((byte) 0); // default
                // member
                // label
            } else {
                tmp.insert(_anyOf_members0, tmp.val);
            }
            _tcOf_members0 = ((TypeBase) memType.get(i)).type();
            _members0[i] = new org.omg.CORBA.UnionMember((String) mems.get(i), _anyOf_members0,
                    _tcOf_members0, null);
        }
        TypeCode __typeCode = orb.create_union_tc(id, rdn, _disTypeCode0, _members0);

        return __typeCode;
    }

    /**
     * Method: "read"
     * 
     * @param istream
     * @return
     */
    public Object read(org.omg.CORBA.portable.InputStream istream) {
        List val = new Vector();

        val.add(((TypeBase) disType.get(0)).read(istream));

        for (int i = 0; i < mems.size(); i++) {
            if (val.get(0).equals(((TypeBase) disType.get(i)).val)) {
                val.add(((TypeBase) memType.get(i)).read(istream));
                return val;
            }
        }

        for (int i = 0; i < mems.size(); i++) {
            if (((TypeBase) disType.get(i)).val instanceof CTDefaultValue) {
                val.add(((TypeBase) memType.get(i)).read(istream));
                return val;
            }
        }

        return val;
    }

    public void write(OutputStream ostream, Object value) {
        // TODO Auto-generated method stub
        List val = (List) value;
        ((TypeBase) disType.get(0)).write(ostream, val.get(0));

        for (int i = 0; i < mems.size(); i++) {
            if (val.get(0).equals(((TypeBase) disType.get(i)).val)) {
                ((TypeBase) memType.get(i)).write(ostream, val.get(1));
                return;
            }
        }

        for (int i = 0; i < mems.size(); i++) {
            if (((TypeBase) disType.get(i)).val instanceof CTDefaultValue) {
                ((TypeBase) memType.get(i)).write(ostream, val.get(1));
                return;
            }
        }
    }

    public boolean compare(TypeBase t) {
        if (!selected)
            return true;
        if (!type().equal(t.type()))
            return false;

        if (!match(strval, t.strval))
            return false;

        return true;
    }

    public void getValueFromTree() {
        List tmp = new Vector();

        ArgsTable table = (ArgsTable) Warehouse.node2table.get(dmtn);
        String text = table.getInputValue();
        strval = text;

        TypeBase tn = ((TypeBase) disType.get(0));

        TypeBase sn = tn.cloneType();
        sn.setStrValue(text);

        tmp.add(sn.val);

        for (Enumeration e = dmtn.children(); e.hasMoreElements();) {
            TypeBase ttn = (TypeBase) (((MNQMutableTreeNode) e.nextElement()).getUserObject());
            ttn.getValueFromTree();
            tmp.add(ttn.val);
        }

        val = tmp;
    }

    /**
     * @param args
     */
    public static void main_(String[] args) {
        // TODO Auto-generated method stub
        try {
            // TODO Auto-generated method stub

            CTBasic t0 = new CTBasic();
            t0.rdn = "double";

            CTDeclaration t1 = new CTDeclaration();
            t1.t_in = t0;
            t1.id = "IDL:3gppsa5.org/AlarmIRPConstDefs/One:1.0";
            t1.rdn = "One";

            CTDeclaration t2 = new CTDeclaration();
            t2.t_in = t1;
            t2.id = "IDL:3gppsa5.org/AlarmIRPConstDefs/Two:1.0";
            t2.rdn = "Two";

            CTSequence t3 = new CTSequence();
            t3.t_in = t2;
            t3.id = "IDL:3gppsa5.org/AlarmIRPConstDefs/Three:1.0";
            t3.rdn = "Three";

            CTDeclaration t4 = new CTDeclaration();
            t4.t_in = t3;
            t4.id = "IDL:3gppsa5.org/AlarmIRPConstDefs/Four:1.0";
            t4.rdn = "Four";

            CTStruct t5 = new CTStruct();
            t5.id = "IDL:3gppsa5.org/AlarmIRPConstDefs/Five:1.0";
            t5.rdn = "Five";
            t5.mems.add("old");
            t5.mems.add("new");
            t5.memType.add(t2);
            t5.memType.add(t3);

            CTEnum t6 = new CTEnum();
            t6.id = "IDL:3gppsa5.org/AlarmIRPConstDefs/Six:1.0";
            t6.rdn = "Six";
            t6.mems.add("UP");
            t6.mems.add("Down");
            t6.mems.add("Unknown");
            CTEnum t66 = new CTEnum();
            t66.id = "IDL:3gppsa5.org/AlarmIRPConstDefs/Six:1.0";
            t66.rdn = "Six";
            t66.mems.add("UP");
            t66.mems.add("Down");
            t66.mems.add("Unknown");
            t66.val = new Integer(0);
            CTEnum t77 = new CTEnum();
            t77.id = "IDL:3gppsa5.org/AlarmIRPConstDefs/Six:1.0";
            t77.rdn = "Six";
            t77.mems.add("UP");
            t77.mems.add("Down");
            t77.mems.add("Unknown");
            t77.val = new Integer(1);
            CTBasic t00 = new CTBasic();
            t00.rdn = "boolean";
            t00.val = Boolean.TRUE;

            CTUnion t7 = new CTUnion();
            t7.id = "IDL:3gppsa5.org/AlarmIRPConstDefs/Seven:1.0";
            t7.rdn = "Seven";
            // t7.disType.add(t66);
            // t7.disType.add(t77);
            // t7.mems.add("school");
            // t7.mems.add("home");
            // t7.memType.add(t0);
            // t7.memType.add(t5);
            t7.disType.add(t00);
            t7.mems.add("school");
            t7.memType.add(t5);

            Any a = t0.orb.create_any();
            Double[] val = new Double[2];
            val[0] = new Double(1.1);
            val[1] = new Double(2.2);

            List val1 = new Vector();
            val1.add(new Double(5.5));
            val1.add(val);
            List val2 = new Vector();
            val2.add(Boolean.FALSE);
            val2.add(val1);

            t7.insert(a, val2);

            System.out.println(CorbaFacility.toString(a, true));

            List d1 = new Vector();
            byte[] d2 = new byte[2];
            Object d3 = d2;

            if (d3 instanceof java.util.List) {
                System.out.println("java.util.List");
            }
            if (d3 instanceof byte[]) {
                System.out.println("byte[]");
            }
            System.out.println("End");

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
/* EOF */

⌨️ 快捷键说明

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