C'è un modo migliore per ottenere il tipo di progetto nell'ambito di applicazione della piattaforma NetBeans?
-
27-10-2019 - |
Domanda
Sto cercando di creare netbeans modulo che opera whould su progetti Maven standard di Java. C'è qualche modo migliore per farlo che poi come è stato avvertita in: Come posso ottenere un tipo di progetto su Netbeans Platform ? Questo sembra essere abbastanza dipendente da implmenetation (notare il suffisso * Impl della classe che implementa trovato nella ricerca). Non riuscivo a trovare alcun metodo standard nell'API progetto. Qualche idea? O è sicuro di fare affidamento su qualche stringa "NbMavenProjectImpl"?
Al momento sto andando in questo modo:
Project mainProject = OpenProjects.getDefault().getMainProject();
if (mainProject == null) {
return;
}
String projectType = mainProject.getClass().getName();
if (projectType.equals("NbMavenProjectImpl")) {
// do some action with the project here
}
Soluzione
Un approccio potrebbe essere
if (mainProject.getLookup().lookup(NbMavenProject.class) != null) {
// do stuff
}
Un altro, che dovrebbe essere preferito, è quello di registrare la logica di business nel progetto Maven ricerca ad es. utilizzando un'annotazione
@ProjectServiceProvider(service=MyService.class, projectType="org-netbeans-modules-maven")
public class MyServiceImpl implements MyService {
@Override
public void doit() {
}
}
e quindi l'accesso alla logica di business come
MyService ms = mainProject.getLookup().lookup(MyService.class);
if (ms != null) {
ms.doit()
}
In questo modo è possibile separare la vostra API da implementazione e come bonus è possibile condividere la stessa logica di business tra più tipi di progetto, se. Del caso