Interface Repository - tipi per il servizio

Autore: stefano.russo@unina.it C++

  1. public class IntrospezioneInRepository {
  2. public static void main(String args[]) {
  3. try{
  4. //inizializzazione della piattaforma
  5. org.omg.CORBA.ORB orb=ORB.init(args, null);
  6. //risoluzione del servizio
  7. org.omg.CORBA.Object objRep = orb.resolve_initial_reference(“InterfaceRepository”);
  8. //narrowing
  9. org.omg.CORBA.Repository repository = RepositoryHelper.narrow(objRep);
  10. //riferimento alle definizioni contenute in Repository
  11. org.omg.CORBA.Contained[] definizioniInterfacce=repository.contents(DefinitionKind._dk_interface,true);
  12. int size=definizioniInterfacce.length;
  13. //essendo anche degli oggetti di tipo container si possono estrarre contenuti (operation, attribute, ect). Occorre prima effettuare il casting verso Container
  14. org.omg.CORBA.Container container =( org.omg.CORBA.Container¸ )definizioniInterfacce[0];
  15. //estrazione di tutte le OperationDef
  16. org.omg.CORBA.Contained[] definizioniOperazioni=container.contents(DefinitionKind._dk_operation ,true);
  17. }