NetBeansプラットフォームアプリケーション内でプロジェクトタイプを取得するより良い方法はありますか?
-
27-10-2019 - |
質問
私は、標準的なMaven Javaプロジェクトに取り組むべきNetBeansモジュールを作成しようとしています。それを行うためのより良い方法はありますか? NetBeansプラットフォームでプロジェクトタイプを入手するにはどうすればよいですか? これは、インプルメンテーションにかなり依存しているようです(ルックアップで見つかった実装クラスのempl postfixに注意してください)。プロジェクトAPIに標準メソッドが見つかりませんでした。何か案は?それとも、「nbmavenprojectimpl」文字列に頼ることは安全ですか?
現在、私はこのように進んでいます:
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
}
解決
1つのアプローチはそうです
if (mainProject.getLookup().lookup(NbMavenProject.class) != null) {
// do stuff
}
もう1つは、お好みのものが、ビジネスロジックをMaven Project Lookup Egに登録することです。注釈を使用します
@ProjectServiceProvider(service=MyService.class, projectType="org-netbeans-modules-maven")
public class MyServiceImpl implements MyService {
@Override
public void doit() {
}
}
次に、ようなビジネスロジックにアクセスします
MyService ms = mainProject.getLookup().lookup(MyService.class);
if (ms != null) {
ms.doit()
}
そうすれば、実装からAPIを切り離すことができ、ボーナスとして、必要に応じて、より多くのプロジェクトタイプ間で同じビジネスロジックを共有できます。
所属していません StackOverflow