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,以便您可以使用扩展机制。

这可以通过使用如下所示的服务条目轻松实现:

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