如何过滤 类 的相同命名属性

How to filter identical named attributes of classes

使用 Xtend 文件,我正在生成一个包含输入对象属性的 hpp 文件 类。 以下代码片段写入与 类 相关的所有属性。

«FOR o : myClass.objectClasses»
    Test::ObjectClassHandle _class_«o.fullyQualifiedName.toString("_")»;
    «FOR a : o.attributes»
        Test::AttributeHandle «_attr_«a.fullyQualifiedName.toString("_")»;
    «ENDFOR»
«ENDFOR»

问题是某些 类 包含相同的属性。如何过滤相同的命名属性以便每个属性都被写入一次?

您可以将 attributes 转换为地图,使用属性名称作为键。 每个键只存储一个属性,因此地图的所有值都将是具有唯一名称的属性:

o.attributes.toMap[fullyQualifiedName.toString("_")].values