?? ctexcept.java
字號:
package com.corba.mnq.tool.idl.type;
import com.corba.mnq.tool.CorbaFacility;
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 CTExcept extends TypeBase {
public CTExcept() {
super();
// TODO Auto-generated constructor stub
valType = "java.util.List";
}
public List mems = new Vector();
public List memType = new Vector();
public TypeBase cloneType() {
CTExcept t = new CTExcept();
t.disName = disName;
t.dmtn = dmtn;
t.dn = dn;
t.id = id;
t.rdn = rdn;
t.val = val;
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 __typeCode;
org.omg.CORBA.StructMember[] _members0 = new org.omg.CORBA.StructMember[mems.size()];
for (int i = 0; i < mems.size(); i++) {
_members0[i] = new org.omg.CORBA.StructMember((String) mems.get(i), ((TypeBase) memType
.get(i)).type(), null);
}
__typeCode = orb.create_exception_tc(id, rdn, _members0);
return __typeCode;
}
/**
* Method: "read"
*
* @param istream
* @return
*/
public Object read(org.omg.CORBA.portable.InputStream istream) {
// read and discard the repository ID
istream.read_string();
List value = new Vector();
for (int i = 0; i < mems.size(); i++) {
value.add(((TypeBase) memType.get(i)).read(istream));
}
return value;
}
public void write(OutputStream ostream, Object value) {
// TODO Auto-generated method stub
// write the repository ID
ostream.write_string(id);
List val = (List) value;
// if (val.size() != mems.size()) { throw new IdlExcept(
// "Wrong Struct Size!!!"); }
for (int i = 0; i < mems.size(); i++) {
((TypeBase) memType.get(i)).write(ostream, val.get(i));
}
}
public boolean compare(TypeBase t) {
if (!selected)
return true;
if (!type().equal(t.type()))
return false;
for (int i = 0; i < mems.size(); i++) {
if (!((TypeBase) memType.get(i)).compare((TypeBase) ((CTExcept) t).memType.get(i))) { return false; }
}
return true;
}
public void getValueFromTree() {
List tmp = new Vector();
for (Enumeration e = dmtn.children(); e.hasMoreElements();) {
TypeBase tn = (TypeBase) (((MNQMutableTreeNode) e.nextElement()).getUserObject());
tn.getValueFromTree();
tmp.add(tn.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);
CTExcept t6 = new CTExcept();
t6.id = "IDL:3gppsa5.org/AlarmIRPConstDefs/Six:1.0";
t6.rdn = "Six";
t6.mems.add("reason");
t6.memType.add(t0);
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(3.3));
t6.insert(a, val1);
System.out.println(CorbaFacility.toString(a, true));
} catch (Exception e) {
e.printStackTrace();
}
}
}
/* EOF */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -