Как я могу определить класс 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