0

私のモデルでは、インターフェイスを宣言しました:

Interface('IMovement') {
    date_time 'etd'
    date_time 'rtd'
}

そして、私はこのインターフェースを拡張する多くのエンティティを持っています:

Entity('Entity1', extend:'IMovement') {
...
}

日付間の差を計算する計算プロパティを追加して、インターフェイスを強化したいと思います: rtd-etd.

インターフェイスに計算されたプロパティを追加し、拡張機能を生成しました。

public class IMovementExtension extends AbstractComponentExtension<IMovement> {

    public IMovementExtension(IMovement component) {
        super(component);

        //registerNotificationForwarding(component, IMovement.FIELD, IMovement.COMPUTED_FIELD);
    } ...

しかし、次のエラーが Eclipse によって発生します。

境界の不一致: タイプ IMovement は、タイプ AbstractComponentExtension の境界パラメーターの有効な代替ではありません

Interface で計算されたプロパティを宣言する方法はありますか?

4

1 に答える 1

1

Jspresso インターフェイスで計算されたプロパティを確実に使用できますがIComponent、拡張メカニズムを使用できるように、インターフェイスが実装 (拡張) することをフレームワークに伝える必要があります。

これは、以下に示すように services エントリを使用して簡単に実現できます。

Interface('IMovement',
  extension:'IMovementExtension',
  services:['org.jspresso.framework.model.component.IComponent':null]) {
    ...
}
于 2015-10-13T08:17:47.713 に答える