有没有办法在Interface上声明计算属性?

时间:2015-10-12 10:24:25

标签: java groovy jspresso

在我的模型中,我声明了一个界面:

:first-child

我有很多实体扩展这个界面:

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

我想通过添加计算属性来增强界面,该属性计算日期之间的差异:rtd-etd。

我在Interface上添加了一个计算属性并生成了扩展名。

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

但是Eclipse引发了以下错误:

  

绑定不匹配:类型IMovement不是有效替代   有界参数的类型   AbstractComponentExtension

有没有办法在Interface上声明计算属性?

1 个答案:

答案 0 :(得分:1)

你绝对可以在Jspresso接口上使用计算属性,但你必须告诉框架你的接口实现(扩展)IComponent,以便你可以使用扩展机制。

使用服务条目很容易实现,如下所示:

Interface('IMovement',
  extension:'IMovementExtension',
  services:['org.jspresso.framework.model.component.IComponent':null]) {
    ...
}
相关问题