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

Da WikiSitech.
Vai alla navigazioneVai alla ricerca

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.