如何检测我必须使用的帮助程序类,以缩小我的 Corba 对象



我的 IDL 看起来像:

interface TransactionResource {
    void prepare() raises (NotPreparedException);
    void commit() raises(TransactionException);
    void rollback() raises(TransactionException);
};
interface ManageDemand : TransactionResource {
    string createDemand(in string demand);
};
interface CreateAccount : TransactionResource {
    string createAccount(in string account);
};

我在服务器上创建ManageDemand分布式对象,使其持久化,并且可以通过CORBALOC地址访问它。

我想在客户端上创建一个通用方法来检测它是哪个资源(如果是 CreateAccount 或 manageDemand)。

public TransactionResource getResource(String url){                    
  Object obj = orb.string_to_object(url.toString());                 

如果我必须使用 ManageDemandHelper 或 CreateAccountHelper 来缩小此对象范围,我该如何决定?

  Ex: ManageDemand transactionResource = ManageDemandHelper.narrow(obj); 
  return transactionResource;                                        
}                  

我找到了这个问题的响应。我只需要验证这一点:

if (obj._is_a("IDL:transaction/ManageDemand:1.0")){ .. }

else if (obj._is_a("IDL:transaction/CreateAccount:1.0")){ .. }

– 萨阿德·拉马蒂 12 月 19 '13 在 12:48

相关内容

  • 没有找到相关文章

最新更新