NetBeansプラットフォームアプリケーション内でプロジェクトタイプを取得するより良い方法はありますか?

StackOverflow https://stackoverflow.com/questions/5831396

質問

私は、標準的な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を切り離すことができ、ボーナスとして、必要に応じて、より多くのプロジェクトタイプ間で同じビジネスロジックを共有できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top