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