有没有办法在接口上声明计算属性?
Is there a way to declare computed properties on Interface?
在我的模型中,我声明了一个接口:
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 引发了以下错误:
Bound mismatch: The type IMovement is not a valid substitute for the
bounded parameter of the type
AbstractComponentExtension
有没有办法在接口上声明计算属性?
您绝对可以在 Jspresso 接口上使用计算属性,但您必须告诉框架您的接口实现(扩展)IComponent
以便您可以使用扩展机制。
这可以通过使用服务条目轻松实现,如下所示:
Interface('IMovement',
extension:'IMovementExtension',
services:['org.jspresso.framework.model.component.IComponent':null]) {
...
}
在我的模型中,我声明了一个接口:
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 引发了以下错误:
Bound mismatch: The type IMovement is not a valid substitute for the bounded parameter of the type AbstractComponentExtension
有没有办法在接口上声明计算属性?
您绝对可以在 Jspresso 接口上使用计算属性,但您必须告诉框架您的接口实现(扩展)IComponent
以便您可以使用扩展机制。
这可以通过使用服务条目轻松实现,如下所示:
Interface('IMovement',
extension:'IMovementExtension',
services:['org.jspresso.framework.model.component.IComponent':null]) {
...
}