如何根据列表引用元素的条件返回列表

时间:2015-01-30 05:16:42

标签: xtend xpand

我想返回' ListOfObjects'的元素列表。由SomeOtherObject'引用的。用它(SomeOtherObject' s)属性满足条件。 我正在尝试这段代码:

ParentObj.ListOfObjects.select(e|e.referencingContainers.typeSelect(SomOtherObject).attr.isValid());

' ListOfObjects'从' ParentObj中提取特定对象的列表。但是上面的代码没有给我任何东西。请帮我弄清楚这里有什么问题。

2 个答案:

答案 0 :(得分:0)

这是因为,在上面的代码中,select中的表达式的结果返回一个列表而不是一个布尔值。要使它成为布尔值,我必须以这种方式重写代码:

ParentObj.ListOfObjects.select(e|e.referencingContainers.typeSelect(SomOtherObject).select(el|el.attr.isValid()).size > 0);

选择内部的选择以及尺寸检查是产生差异的原因。

答案 1 :(得分:0)

有一个扩展名来查找引用特定对象的对象:org::eclipse::xtend::util::stdlib::crossref

您也可以用同样的方式指定条件。 Here是有关Cross References Extensions的更多信息。