2013-12-19 26 views
2

我的IDL看起來像:如何檢測我必須使用的Helper類來縮小我的Corba對象?

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縮小此obj?

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

    return transactionResource;           
}     
+0

我發現了這個問題的答案。 (obj._is_a(「IDL:transaction/CreateAccount:1.0」))if(obj._is_a(「IDL:transaction/CreateAccount:1.0」)) if(obj._is_a(「IDL:transaction/CreateAccount:1.0」)){ } { .. } –

+0

你是對的。你可以創建一個答案並接受它嗎? – Makah

回答

0

我發現了這個問題的答案。我只需要驗證一下:

if(obj._is_a(「IDL:transaction/ManageDemand:1.0」)){..} else if(obj._is_a(「IDL:transaction/CreateAccount:1.0」)) {..}

- Saad Lamarti 13年12月19日在12:48

相關問題