当前位置: 首页 > 知识库问答 >
问题:

Acceleo:根据模型结构在路径中创建文件

齐承泽
2023-03-14
[file ((c.allOwningPackages().name.->sep('/')).concat(c.name.concat('.hpp')),false,'UTF-8')]
 Cannot find operation (concat(String)) for the type (OclAny)

共有1个答案

单于阳
2023-03-14

并不强制在与文件块相同的行上执行该操作。完成你要做的事情的两种常用方法是

  • 将文件块嵌套到let块或
  • 将逻辑提取到另一个模板或查询中。

对于你的例子,b)会给出这样的东西:

[template public myMainTemplate(c : uml::Class)]
    [file (getpackage(c), false, 'UTF-8')]
        ...
    [/file]
[/template]

[template private getPackage(c : uml::Class) post(trim())]
    [c.ancestors()->reverse()->sep('/')->including(c.name.concat('.hpp'))/]
[/template]
[template private getPackage(c : uml::Class) post(trim())]
    [c.ancestors()->reverse()->sep('/')/]/[c.name/].hpp
[/template]
 类似资料:
  • 路径文字是指沿着开放或封闭的路径排列的文字。当您水平输入文本时,字符的排列会与基线平行。当您垂直输入文本时,字符的排列会与基线垂直。无论是哪种情况,文本都会沿路径点添加到路径上的方向来排列 沿路径输入文本 1执行下列操作之一: •要沿路径创建横排文本,请选择文字工具 或路径文字工具 。 •要沿路径创建直排文本,请选择直排文字工具 或直排路径文字工具 。 2(可选)在 “控制 ”面板、 “字符 ”面

  • 我想创建一个程序,它从一个路径的输入生成一个MD5-hash。下面的代码只根据路径的名称创建一个哈希。如何从路径的输入生成MD5-hash?谢谢!

  • 问题内容: 我需要将文件路径名传递给模块。如何从目录名称,基本文件名和文件格式字符串构建文件路径? 呼叫时目录可能存在也可能不存在。 例如: 我需要创建一个字符串 手动连接片段似乎不是一个好方法。我想: 但它给 问题答案: 这很好用: 请记住,这种存在仅是因为不同的操作系统使用不同的路径分隔符。它可以消除这种差异,因此跨平台代码不必因每种操作系统的特殊情况而混乱。无需对文件名“扩展名”执行此操作(

  • 路径文字是指沿着开放或封闭的路径排列的文字。当您水平输入文本时,字符的排列会与基线平行。当您垂直输入文本时,字符的排列会与基线垂直。无论是哪种情况,文本都会沿路径点添加到路径上的方向来排列。 在路径上输入文本 执行下列操作之一: 要沿路径创建横排文本,请选择文字工具 或路径文字工具 。 要沿路径创建直排文本,请选择直排文字工具 或直排路径文字工具 。 (可选)在“控制”面板、“字符”面板或“段落”

  • 问题内容: 我是Java的新手,我试图找到一种方法来在C语言中存储诸如结构之类的信息。例如,说我想让一名程序雇用员工。它将从用户那里获得一个名字,姓氏和ID号并将其存储起来。然后,用户可以根据条件查看该信息(例如,如果数据库有多于1名员工)。有没有人建议这样做的最佳方法? 问题答案: C中的结构就像Java中的类一样,功能更强大,因为Java中的类可以包含方法,而C ++可以。您创建一个新类。例如

  • 问题内容: 我一直在努力解决这个问题,所以也许有些人可以帮助我。我有一个带有完整路径的文件列表(这些只是文件 在另一台机器上的字符串),例如: 我想创建一个Jtree来显示目录结构,如下所示: I’ve been spliting the string on the seperator so I end up with a list of arrays like: 现在,我想一次为它们添加一个索引