Programmazione:Java/Eclipse RCP/Leggere da un Extension Point

Da WikiSitech.
Vai alla navigazioneVai alla ricerca

<< Back to Eclipse RCP

Eclipse mette a disposizione per la lettura degli "Extension Point" delle classi generiche che fanno da wrapper della porzione di xml che li definiscono.

// Ottengo l'ExtensionPoint che mi serve tramite il suo ID
IExtensionPoint ep = Platform.getExtensionRegistry().getExtensionPoint(/*EXTPOINT_ID*/);
if(ep != null) {
   // Ottengo l'elenco delle estensioni
   IExtension[] extensions = ep.getExtensions();
   IExtension ex;
   IConfigurationElement[] configurations;
   IConfigurationElement conf;
   if(extensions != null && extensions.length > 0) {
      // scorro le estensioni
      for(int e = 0; e < extensions.length;) {
         ex = extensions[e];
         // Ottengo l'elenco delle configurazioni 
         configurations = ex.getConfigurationElements();
         if(configurations != null && configurations.length > 0) {
            // scorro le configurazioni
            for(int c = 0; c < configurations.length;) {
               conf = configurations[c];
               // Quando trovo la configurazione che mi interessa
               if(/*CONFIG_NAME*/.equals(conf.getName())) {
                  // Ottengo l'attributo o gli attributi che mi interessano
                  String attr = conf.getAttribute(/*ATTRIBUTE*/);							
                  break;
               }
               c++;
            }
         }
         e++;
      }
   }
}

La lettura degli EP può essere effettuata in ogni momento, per questo è consigliabile delegare ad una factory la lettura, in modo da non doverla effetuarla più volte e in modo da raggruppare in un unico punto la logica di spacchettamento.