Как я могу определить класс Helper, который мне нужно использовать, чтобы сузить мой объект 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;                                        
}                  

1 ответ

Я нашел ответ на эту проблему. Я просто должен проверить это:

if (obj._is_a("IDL: транзакция /ManageDemand:1.0")){ .. } иначе if (obj._is_a("IDL: транзакция /CreateAccount:1.0")){ .. }

- Саад Ламарти 19 декабря 13 в 12:48

Другие вопросы по тегам