私は、データセットで利用できないデータに基づいて「推定」列を含める必要があるレポートを作成しています。外部依存関係で計算されたデータを表示
理想的には、私はJavaインターフェイスを定義できるようにしたいと思い
public int getEstimate(int foo_id, int bar_id, int quantity);
どこfoo_id
、bar_id
とquantity
は、私は推定値が提示する行でご利用いただけます。
見積もりを作成するための複数の戦略がありますので、必要に応じてインターフェイスを使用してスワップすることをお勧めします。
BIRTドキュメントを見ると、イベントハンドラのメカニズムを使用する必要があるかもしれませんが、それはクラスの定義のみを許可するようですが、設定された見積もりを注入したいと思っています。
難解でない例として、IPアドレス列を含むデータセットがあり、IPアドレスから国を解決するためにGeoIPサービスを使用できるようにしたいと考えています。その場合、私はインターフェイスpublic String getCountryName(String address)
を持っていて、実際の実装ではMaxMind、ローカルキャッシュまたは他のシステムを使用することがあります。
どうすればいいですか?
または.. BIRTに配信する前に計算されたデータを統合できるスクリプト化されたデータソースを作成する方がよいでしょうか?
または何らかの種類のスクリプト化されたデータソースを使用して結合データセットを作成しますか?
あなたの例では、redwood.HelloWordインスタンスがBIRTスクリプトからではなく、事前に設定されたプロパティをどのように持つことができるかを確認しようとしています。たとえば、BIRTを実行しようとしている私のSpringコンテキストでは、見積もり者が使用する必要のあるサービスインタフェース実装があるかもしれません。HelloWorldをインスタンス化することは、直接設定する必要があることを意味します。たぶん、私はSpring AOPを動的に注入する必要があるかもしれませんが、BIRT OSGIビットが途中で入るかもしれないと思われます。 イベントハンドラは素晴らしく見えますが、私はちょうど既存の外部からバットのインスタンスへの参照を取得する方法を知りません。 – ptomli
イベントハンドラの例では、既存のインスタンスを取得して(同じVM内で実行している)必要がある場合は、シングルトンパターンを実装するために「何か」が必要になる可能性があります。プライベートコンストラクタとパブリック "getInstance()"メソッド。これにより、POJOから簡単に取得できます。 – MystikSpiral
OK、私はいくつかの変種を試して、何が落ちるのかを見てみましょう。私はイベントハンドラがそれに対して良い感じを持っていますが(特定の目的のための特定のクラス)、データソースがSpring内でより良い制御メカニズムを提供すると考えています(インスタンスを挿入でき、Singletonを避けることができます)。ありがとう – ptomli