我们正在使用 Rational Software Architect 来建模和生成 java 工件。截至目前,我们正在手动运行转换。
我们现在的要求是自动化转换。我的意思是要一起运行多个转换并记录错误(如果有)。
我试图从下面的代码运行转换。但是当我运行它时,它显示了一个错误:
我正在尝试加载当前工作区中不存在的 service.tc。
IPath path = new Path("**D://RSA_NewWorkSpace//UML_MODEL_POC/service.tc**");
IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
System.out.println("file >> "+file);
ITransformConfig config = TransformConfigUtil.loadConfiguration(file);
System.out.println("inside testExecute 3 config >> "+config);
IStatus status = TransformController.getInstance().execute(config, null, false, null);
System.out.println("status >> "+status);
错误 :
file >> L/RSA_NewWorkSpace/UML_MODEL_POC/service.tc
IOException >>java.io.FileNotFoundException: The transformation configuration file /RSA_NewWorkSpace/UML_MODEL_POC/service.tc does not exist. Verify the correct file path was specified.
是否可以从其他工作区(而不是当前工作区)引用转换文件并加载和执行?
我正在尝试从D://RSA_NewWorkSpace//UML_MODEL_POC/service.tc 加载转换文件。
下面是我一直在尝试从外部工作区以及 SOP 加载转换文件 (service.tc) 的最新代码
for.eg 工作区目录结构
D:\RSA_NewWorkSpace\UML_MODEL_POC\ 。项目
D:\RSA_NewWorkSpace\UML_MODEL_POC\service.tc
我得到config is null。你能帮我如何获得配置的价值吗?
公共静态无效获取链接(){
try {
String projectName = "UML_MODEL_POC";
IProject project = getIProject(getWorkspaceFullPath() + IPath.SEPARATOR + projectName,projectName);
IFile linkFile = project.getFile("service.tc");
if(linkFile.exists())
linkFile.refreshLocal(1, null);
else {
createLink(project, linkFile);
}
**ITransformConfig config = TransformConfigUtil.loadConfiguration(linkFile);**
IStatus status = TransformController.getInstance().execute(config, null, false, null);
System.out.println("status >> "+status);
}
catch(Exception e) {
throw new WrappedException(e);
}
}
公共静态 IProject getIProject(String projectFullPath, String projectName) {
IProjectDescription 描述;
try {
File projectFile = new File(projectFullPath + IPath.SEPARATOR + ".project");
if (projectFile.exists()) {
description = ResourcesPlugin.getWorkspace().loadProjectDescription(new Path(getWorkspaceFullPath() + IPath.SEPARATOR + projectName + IPath.SEPARATOR + ".project"));
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(description.getName());
return project;
}
} catch (CoreException e) {
MessageDialog.openError(null, "Project already exists", "Issue when trying to add project \"" + projectName + "\" to workspace.");
e.printStackTrace();
}
return null;
}
公共静态字符串 getWorkspaceFullPath() {
return ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString();
}
标准操作程序:
项目 = P/UML_MODEL_POC
链接文件 = L/UML_MODEL_POC/service.tc
配置=空
状态 = 状态取消:未知代码 = 1 空