M2DOC:如何传递对象集合

M2DOC : How to pass a collection of objects

是否可以将对象列表 (PhysicalComponent) 传递到我的自定义服务以阻止我遍历所有 PhysicalComponent ?

实际上我在我的 M2DOC 模板中是这样迭代的:

{m:for pc | self.eAllContents(pa::PhysicalComponent)}
{m:pc.MatrixFlow()}
{m:endfor}

您可以创建具有以下签名的服务:

public SomeReturnType myService(List<PhysicalComponent> components) {
...
}

public SomeReturnType myService(Set<PhysicalComponent> components) {
...
}

public SomeReturnType myService(Collection<PhysicalComponent> components) {
...
}

那你可以这样调用比如:

{m:self.eAllContents(pa::PhysicalComponent)->myService()}

箭头表示将集合传递给服务,点表示对集合的每个元素调用服务。

如果您使用集合列表作为第一个参数,您可能需要使用 asSequence() 或 asOrderedSet():

{m:self.eAllContents(pa::PhysicalComponent)->asSequence()->myService()}

{m:self.eAllContents(pa::PhysicalComponent)->asOrderedSet()->myService()}