使用if else和notEmpty()在OCL中进行计算

时间:2018-06-21 11:35:33

标签: boolean ocl

我试图使此计算在OCL中起作用,必须说,如果存在取消,则应给出“ geannuleerd”,如果存在Betaaldatum,则应给出“ definitief”。 我的问题是:我需要为if-else-then语句提供一个布尔值,但是我无法确定self.annuleringsdatum-> notEmpty()是否足够,或者后面是否应该有一个= TRUE。

我现在拥有的是下面的内容,如果您知道这是否应该工作或布尔语句是否还不正确,请回答:)

ontext Reservering::status
derive:     if  self.annuleringsdatum -> notEmpty() 
then    self.status = 'geannuleerd'
if  self.betaaldatum -> notEmpty()
then    self.status = 'definitief'
else    self.status = 'voorlopig'
endif

1 个答案:

答案 0 :(得分:0)

除非您的元模型定义了“ TRUE”,否则肯定不是“ = TRUE”。如果您喜欢键入,可以执行“ = true”,但这是多余的,因为notEmpty()具有布尔返回类型。我怀疑您对嵌套的“ if”感到困惑,因为每个“ if”都需要自己的“ endif”。 (Eclipse OCL原型化了一个“ elseif”,使您的示例更具可读性,而不必使用多个“ endif”。)