我正计划将我一段时间前构建的工具移植到Jetbrains Mps上,我正在评估它,但也有一些疑问。
主要是如果Mps中的模型转换仅仅是一个模型到一个模型。或者我可以组合几个模型来生成其他的模型。
我想我有一种叫做“页面语言”的语言,它代表了页面结构。它允许您定义一种页面的总体布局。例如,我定义了两个模型“列表页”(给定实体的列表记录)和“实例页”(用于"crud“操作的页面)。
还有一种叫做“实体语言”的语言,这种语言可以让你定义实体。在一个解决方案中,我创建了3种这种语言的模型: Person、City和Country来代表3个实体。
我需要构建的生成过程必须将3个实体的模型和2个页面的模型结合起来,生成其他语言的6个模型,这些模型将代表每一个页面的完成,其中de来自page Model,实体的字段来自Entity Model。
这有可能发生在国会议员身上吗?
例如,我能否迭代实体模型,并为每个实体执行一个嵌套的页面模型迭代,然后触发一个模型转换,将当前实体与当前页面模型结合起来?
非常感谢。
发布于 2015-05-04 17:06:09
在MPS术语中,我们称这些实体为“根节点”而不是模型。当然,您可以生成这样的节点组合--我可能会使用一个预处理脚本来生成这六个组合,作为引用原始实体的新根节点。它的概念可能看起来有点像这样:
concept TemporaryCombination extends BaseConcept ... references: page:Page[1] entity:Entity[1] ...
--那么,TemporaryCombination概念的根映射规则可以驱动目标节点的生成。
https://stackoverflow.com/questions/29996667
复制相似问题