?? ctunion.java
字號(hào):
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 */
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -