如何过滤 类 的相同命名属性
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
使用 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