我正在将Java与StringTemplate库一起使用以生成配置文件。 配置文件表示一种系统体系结构,其中一个具有一组组件,每个组件可以具有一组端口,从而这些端口可以是输入或输出端口。它实际上要复杂一些(端口可以排队和采样),但可以从中进行抽象。 所以可以说我有三个模板:
1)config.st:
<configuration>
<component_list>
$components:component(); separator="\n"$
</component_list>
</configuration>
2)component.st
<component name="it.name">
<ports>
$ports:port_list(); separator"\n"$
</ports>
3)port.st
<port name="it.name" direction="it.direction"/>
所以我的Java代码看起来像这样:
StringTemplate configST = templates.getInstanceOf("config");
configST.setAttribute("components", sys_architecture.getComponents())
String config_out = configST.toString();
System.out.println(config_out);
因此,此代码将迭代系统体系结构中的所有组件。到目前为止,一切都很好。但是现在我想在所有端口上的每个组件中进行迭代。有可能吗?