如何检测我必须使用的Helper类,以缩小我的Corba对象?

时间:2013-12-19 12:33:18

标签: java corba idl distributed-transactions jacorb

我的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;                                        
}                  

1 个答案:

答案 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