public <Result> Result useTemporaryResource(
ResourceSet resourceSet, Grammar language,
AbstractRule rootRule, String content, IUnitOfWork<Result, XtextResource> runnable) {
XtextResource resource = languageRegistry.createTemporaryResourceIn(language, resourceSet);
if (rootRule != null)
PartialParser.assignRootRule(resource, (ParserRule) rootRule);
try {
resource.load(new StringInputStream(content, resource.getEncoding()), null);
return runnable.exec(resource);
} catch(Exception e) {
throw new RuntimeException(e);
} finally {
if (resource != null) {
if (resource.isLoaded())
resource.unload();
resourceSet.getResources().remove(resource);
}
}
}