使用openfusion,例子是grid,IDL编译后产生7个java文件。其中_MyServerStub.java类的作用如下:
在helper类的narrow()方法实现中, 返回的是一个_stub类的实例,也就是说,客户端所有的方法调用,实际调用的是_stub类的方法。
public static demo.grid.MyServer narrow(final org.omg.CORBA.Object obj)
{
if (obj == null)
{
return null;
}
else if (obj instanceof demo.grid.MyServer)
{
return (demo.grid.MyServer)obj;
}
else if (obj._is_a("IDL:demo/grid/MyServer:1.0"))
{
demo.grid._MyServerStub stub;
stub = new demo.grid._MyServerStub();
stub._set_delegate(((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate());
return stub;
}
else
{
throw new org.omg.CORBA.BAD_PARAM("Narrow failed");
}
}
类图: