我的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);
};
我在Server上创建ManageDemand分布式对象,我使其持久化,并且可以通过CORBALOC地址访问。
我想在客户端上创建一个通用方法来检测它是哪个资源(如果它是CreateAccount或manageDemand)。
public TransactionResource getResource(String url){
Object obj = orb.string_to_object(url.toString());
如果我必须使用ManageDemandHelper或CreateAccountHelper缩小此obj,我该如何判断呢?
Ex: ManageDemand transactionResource = ManageDemandHelper.narrow(obj);
return transactionResource;
}
答案 0 :(得分:0)
我找到了这个问题的答案。我只需要验证一下:
if(obj._is_a(“IDL:transaction / ManageDemand:1.0”)){..} else if(obj._is_a(“IDL:transaction / CreateAccount:1.0”)){..}
- Saad Lamarti 2013年12月19日12:48