Eclipse:保存后获取资源集

Eclipse: Getting a resource set after saving

这是我的代码的一段代码(在 xtext 中工作) (在文件中保存模型)

generatedModel.save(null)    //here generatedModel is an object of resource

然后当我尝试使用

检索有关此模型的信息时
...getResource(...)

我得到以下资源未找到的错误 但是当我在两者之间添加 Thread.sleep(3000) 时,它起作用了。因此,当资源在保存到文件中之前被访问时,就会发生这种情况。 我试图添加一个监听器来检查文件何时被保存。这是代码:

var listener = new IResourceChangeListener() {

            override resourceChanged(IResourceChangeEvent event) {

                if (event.type === IResourceChangeEvent.POST_CHANGE) {
                    delta = event.delta
                }
                if (delta.kind === IResourceDelta.CHANGED) {
                    delta.accept(
                        new IResourceDeltaVisitor() {

                            override visit(IResourceDelta innerdelta) throws CoreException {
                                if (innerdelta.resource.type === IResource.FILE)
                                    println("YESYESYEYESYEYESYSY")
                                    else if(innerdelta.resource.type === IResource.FOLDER)
                                    println("PPPPPPPPPPPPPPPPPP")
                                    else if (innerdelta.resource.type === IResource.PROJECT)
                                    println("WWWWWWWWWWWWWWWWWWWW")
                                else
                                    println("NONONONONO")
                                    return false
                            }

                        }
                    )
                }
            }

        }
        var workspace = ResourcesPlugin.workspace
        workspace.addResourceChangeListener(listener)

但这没有帮助。它正在打印 NONONO.. 总是在变化时。我将文件保存在同一作品的其他文件夹中 space。 b(项目)-> scr-gen(文件夹)->代码(文件夹)-> 文件...

您的访问方法应该return true 以便访问增量中的所有资源。

资源更改事件可以包含多个嵌套增量,您需要查看它们。 delta 通常在顶层 delta 有工作区,在下一层有项目,然后是任何文件夹,最后是文件。